{"_id":"@acertijosapps/react-native-in-app-store-review","name":"@acertijosapps/react-native-in-app-store-review","dist-tags":{"latest":"1.1.0"},"versions":{"1.1.0":{"name":"@acertijosapps/react-native-in-app-store-review","version":"1.1.0","description":"Ask users to rate and review your React Native app in-app — native iOS (SKStoreReviewController) and Android (Play In-App Review) prompts, with an App Store / Play Store fallback.","main":"lib/commonjs/index.js","module":"lib/module/index.js","types":"lib/typescript/index.d.ts","react-native":"src/index.tsx","source":"src/index.tsx","scripts":{"prepare":"bob build","typecheck":"tsc --noEmit"},"keywords":["react-native","react-native-in-app-store-review","react-native-in-app-review","react-native-store-review","ios","android","expo","review","reviews","rating","ratings","rate","rate-app","rate-us","app-review","app-rating","in-app-review","in-app-rating","store-review","app-store","appstore","play-store","google-play","storekit","SKStoreReviewController","play-core"],"repository":{"type":"git","url":"git+https://gitlab.com/acertijoslibs/rninappstorereview.git"},"author":{"name":"bgoswaldo","email":"bgoswaldo@gmail.com"},"license":"MIT","homepage":"https://gitlab.com/acertijoslibs/rninappstorereview#readme","bugs":{"url":"https://gitlab.com/acertijoslibs/rninappstorereview/-/issues"},"publishConfig":{"access":"public"},"peerDependencies":{"react":"*","react-native":"*"},"devDependencies":{"@react-native/babel-preset":"0.86.0","@types/react":"^19.0.0","react":"19.2.3","react-native":"0.86.0","react-native-builder-bob":"^0.35.0","typescript":"^5.8.3"},"react-native-builder-bob":{"source":"src","output":"lib","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]},"_id":"@acertijosapps/react-native-in-app-store-review@1.1.0","gitHead":"4490436407d3db7da924b81703f7ea8331054edc","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-uI9arVCDA6wTtcfaB+mGbhLAoJ8S+bJbI5ywuCWunJVIxZmt0YJYh5G15yBeCN6qzZtRIApvPV1e6HRhO76HWg==","shasum":"5e207d942369d8c94bcce3b14cd024c2ee11c039","tarball":"https://registry.npmjs.org/@acertijosapps/react-native-in-app-store-review/-/react-native-in-app-store-review-1.1.0.tgz","fileCount":20,"unpackedSize":23597,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCB2jj1SBMTiNyhK/N4BbLtY1Zthpo77ziMTYggzFPW6gIhANg6DzGS0cV3fR1pc7VqVLNDjAMl4CcyzRpQ3bCa9ojQ"}]},"_npmUser":{"name":"bgoswaldo","email":"bgoswaldo@gmail.com"},"directories":{},"maintainers":[{"name":"bgoswaldo","email":"bgoswaldo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-in-app-store-review_1.1.0_1789173184701_0.7580034867931671"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-12T00:33:04.538Z","1.1.0":"2026-09-12T00:33:04.808Z","modified":"2026-09-12T00:33:05.033Z"},"maintainers":[{"name":"bgoswaldo","email":"bgoswaldo@gmail.com"}],"description":"Ask users to rate and review your React Native app in-app — native iOS (SKStoreReviewController) and Android (Play In-App Review) prompts, with an App Store / Play Store fallback.","homepage":"https://gitlab.com/acertijoslibs/rninappstorereview#readme","keywords":["react-native","react-native-in-app-store-review","react-native-in-app-review","react-native-store-review","ios","android","expo","review","reviews","rating","ratings","rate","rate-app","rate-us","app-review","app-rating","in-app-review","in-app-rating","store-review","app-store","appstore","play-store","google-play","storekit","SKStoreReviewController","play-core"],"repository":{"type":"git","url":"git+https://gitlab.com/acertijoslibs/rninappstorereview.git"},"author":{"name":"bgoswaldo","email":"bgoswaldo@gmail.com"},"bugs":{"url":"https://gitlab.com/acertijoslibs/rninappstorereview/-/issues"},"license":"MIT","readme":"# @acertijosapps/react-native-in-app-store-review\n\nAsk users to rate your app **without leaving it**, using each platform's native\nin-app review flow:\n\n- **iOS** → [`SKStoreReviewController`](https://developer.apple.com/documentation/storekit/skstorereviewcontroller)\n- **Android** → [Play In-App Review](https://developer.android.com/guide/playcore/in-app-review) (`com.google.android.play:review-ktx`)\n\nIf the native module isn't available (e.g. Expo Go, or before you rebuild), it\nfalls back to opening the store listing.\n\n![In-app review prompt on iOS and Android](https://gitlab.com/acertijoslibs/rninappstorereview/-/raw/main/assets/demo.png)\n\n> Illustration of the native review prompt: iOS `SKStoreReviewController` (left)\n> and Android Play In-App Review (right).\n\n## Install\n\n```bash\nnpm install @acertijosapps/react-native-in-app-store-review\n# or\nyarn add @acertijosapps/react-native-in-app-store-review\n```\n\n### iOS\n\n```bash\ncd ios && pod install\n```\n\n### Android\n\nNo manual steps — the module is autolinked.\n\n> Minimum: iOS 13+, `minSdkVersion` 21+. Uses a legacy bridge module, which works\n> under both the old and the New Architecture (via the interop layer).\n\n## Usage\n\n```ts\nimport { requestReview } from '@acertijosapps/react-native-in-app-store-review';\n\n// Call it after a positive moment in your app (task completed, level cleared…),\n// never on app launch, and don't gate a feature behind it.\nawait requestReview({\n  iosAppId: '1234567890',      // used only by the store fallback\n  androidPackage: 'com.acme.app', // used only by the store fallback\n});\n```\n\n### API\n\n```ts\nfunction requestReview(options?: RequestReviewOptions): Promise<void>;\nfunction openStoreReview(options: RequestReviewOptions): Promise<void>;\nfunction isReviewSupported(): boolean;\n\ninterface RequestReviewOptions {\n  iosAppId?: string;       // numeric App Store id\n  androidPackage?: string; // Android application id / package name\n}\n```\n\n- **`requestReview(options?)`** — Shows the native in-app prompt. If the native\n  module is not linked, falls back to `openStoreReview(options)`.\n- **`openStoreReview(options)`** — Explicitly opens the store listing\n  (App Store \"write review\" sheet on iOS, Play Store listing on Android).\n- **`isReviewSupported()`** — `true` when the native module is linked.\n\n## Important notes\n\nThe OS controls whether the prompt actually appears — you can call it, but there\nis no guarantee it shows:\n\n- **iOS**: the prompt **never** appears in debug builds or via TestFlight. Test\n  it in a production/App Store build. Apple also rate-limits it (a few times per\n  365 days per device).\n- **Android**: Play rate-limits and may show nothing (quota). Test with an\n  internal testing track / a license-tester account. The call resolves either\n  way — treat a resolved promise as \"attempted\", not \"shown\".\n\nBecause the flow can silently do nothing, don't rely on a callback to know the\nuser reviewed, and don't block UI on it.\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-80b985b7e0193e8409bb87884812232c"}