{"_id":"@dexical/expo-store-signing","_rev":"3-c6e4a6dde39b61ab2708c85ae50c2801","name":"@dexical/expo-store-signing","dist-tags":{"latest":"1.0.14"},"versions":{"1.0.12":{"name":"@dexical/expo-store-signing","version":"1.0.12","keywords":["expo","expo-plugin","android","signing","keystore"],"author":{"name":"dexical30"},"license":"ISC","_id":"@dexical/expo-store-signing@1.0.12","maintainers":[{"name":"dexical30dev","email":"dexical30@gmail.com"}],"homepage":"https://github.com/dexical30/expo-tools#readme","bugs":{"url":"https://github.com/dexical30/expo-tools/issues"},"dist":{"shasum":"b620930add1c3f692f74c92d4c6c4d90535ac095","tarball":"https://registry.npmjs.org/@dexical/expo-store-signing/-/expo-store-signing-1.0.12.tgz","fileCount":6,"integrity":"sha512-uh00tcJbQk+LXpbQ90Ngj09ck4slFoKeS9zPZ24Qd0qM2u92H28iUCf7g5+a1RznKYAVP/7H08TmlIgmkSflRg==","signatures":[{"sig":"MEUCIG/dx2gXM8DnmhQJ4Yn3fZd4ybDaMZqb4f90ey3uo4OqAiEArbEHE1VlkI2j2x4bPVE00YcoaXFywxOAoP6Zq1lgnQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12462},"jest":{"preset":"jest-expo"},"main":"app.plugin.js","gitHead":"22fea41e1c03955ff38636adf3f8a850863aa933","scripts":{"test":"cd plugin && jest","build":"cd plugin && tsc","clean":"rm -rf plugin/build","prepare":"npm run build","prepublishOnly":"pnpm build"},"_npmUser":{"name":"dexical30dev","email":"dexical30@gmail.com"},"repository":{"url":"git+https://github.com/dexical30/expo-tools.git","type":"git"},"_npmVersion":"11.6.4","description":"Expo config plugin for Android store signing","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@expo/config-plugins":"^9.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","jest-expo":"^52.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","expo-module-scripts":"^5.0.7"},"peerDependencies":{"expo":">=49.0.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-store-signing_1.0.12_1765270961305_0.29377443929649316","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@dexical/expo-store-signing","version":"1.0.13","keywords":["expo","expo-plugin","android","signing","keystore"],"author":{"name":"dexical30"},"license":"ISC","_id":"@dexical/expo-store-signing@1.0.13","maintainers":[{"name":"dexical30dev","email":"dexical30@gmail.com"}],"homepage":"https://github.com/dexical30/expo-tools#readme","bugs":{"url":"https://github.com/dexical30/expo-tools/issues"},"dist":{"shasum":"b323c4bfc0ec4d25c5af171f8c6f46c01577b0fd","tarball":"https://registry.npmjs.org/@dexical/expo-store-signing/-/expo-store-signing-1.0.13.tgz","fileCount":6,"integrity":"sha512-me4T2y739qlmxzF1O0NYJjQ7izws/ieWC9prkSSdYdgBzTHNdQBcc6Gy2RKELgR0T3fVDvW38gz7WDn+8ViuzQ==","signatures":[{"sig":"MEQCIEABS55LUbnh41f5UP2w8KHIFoCcNnJ5WxNyLoAt201JAiB6JkgXdlscVE6my4aRrtHoKhTX/6ass/ExGFVk6RFQDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dexical%2fexpo-store-signing@1.0.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12557},"jest":{"preset":"jest-expo"},"main":"app.plugin.js","gitHead":"fba21620daf2720626d645d3033248a707e22b1b","scripts":{"test":"cd plugin && jest","build":"cd plugin && tsc","clean":"rm -rf plugin/build","prepublishOnly":"pnpm build","publish:trusted":"npm publish --provenance --access public --yes"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d93e184-89a4-4fa5-b03b-0d7e41e87c47"}},"repository":{"url":"git+https://github.com/dexical30/expo-tools.git","type":"git"},"_npmVersion":"11.6.4","description":"Expo config plugin for Android store signing","directories":{},"_nodeVersion":"24.11.1","dependencies":{"@expo/config-plugins":"^9.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","jest-expo":"^52.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","expo-module-scripts":"^5.0.7"},"peerDependencies":{"expo":">=49.0.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-store-signing_1.0.13_1765273615313_0.9404814329643865","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@dexical/expo-store-signing","version":"1.0.14","description":"Expo config plugin for Android store signing","main":"app.plugin.js","scripts":{"build":"cd plugin && tsc","clean":"rm -rf plugin/build","test":"cd plugin && jest","prepublishOnly":"pnpm build","publish:trusted":"npm publish --provenance --access public --yes"},"publishConfig":{"access":"public","provenance":true},"keywords":["expo","expo-plugin","android","signing","keystore"],"repository":{"type":"git","url":"git+https://github.com/dexical30/expo-tools.git"},"author":{"name":"dexical30"},"license":"ISC","dependencies":{"@expo/config-plugins":"^9.0.0"},"devDependencies":{"@types/node":"^20.0.0","expo-module-scripts":"^5.0.7","jest":"^29.0.0","jest-expo":"^52.0.0","typescript":"^5.0.0"},"peerDependencies":{"expo":">=49.0.0"},"jest":{"preset":"jest-expo"},"gitHead":"7f4dcd40275a56a1e8bbff4473e8141dc838b9ed","_id":"@dexical/expo-store-signing@1.0.14","bugs":{"url":"https://github.com/dexical30/expo-tools/issues"},"homepage":"https://github.com/dexical30/expo-tools#readme","_nodeVersion":"24.12.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-rMdeWRTFqyZOlB7nJBH4wx95LlApWt5e6lQ34W9rMkyxzFX/1zDhyLG9eNDJDPuRG+NqqnHXvEb8sAZTeoHG5Q==","shasum":"a9805384a06227c68225d214bb0f46297bc08a74","tarball":"https://registry.npmjs.org/@dexical/expo-store-signing/-/expo-store-signing-1.0.14.tgz","fileCount":6,"unpackedSize":12472,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dexical%2fexpo-store-signing@1.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBqsWKa9nCMmIktljAwl1WpeSkSgZhhkkNY2wjdAMM2RAiACj320ecItBtIkLOeQ5/aO93qxPIfUQPEs97INNfdB8g=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d93e184-89a4-4fa5-b03b-0d7e41e87c47"}},"directories":{},"maintainers":[{"name":"dexical30dev","email":"dexical30@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/expo-store-signing_1.0.14_1769072675832_0.615581195326915"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-09T09:02:41.252Z","modified":"2026-01-22T09:04:36.248Z","1.0.12":"2025-12-09T09:02:41.440Z","1.0.13":"2025-12-09T09:46:55.449Z","1.0.14":"2026-01-22T09:04:35.966Z"},"bugs":{"url":"https://github.com/dexical30/expo-tools/issues"},"author":{"name":"dexical30"},"license":"ISC","homepage":"https://github.com/dexical30/expo-tools#readme","keywords":["expo","expo-plugin","android","signing","keystore"],"repository":{"type":"git","url":"git+https://github.com/dexical30/expo-tools.git"},"description":"Expo config plugin for Android store signing","maintainers":[{"name":"dexical30dev","email":"dexical30@gmail.com"}],"readme":"# @dexical/expo-store-signing\n\nExpo config plugin for Android store signing. This plugin automatically configures your Android app's signing configuration by modifying the `build.gradle` file.\n\nThis plugin is designed for Expo CNG (Continuous Native Generation), allowing you to configure Android signing settings through the Expo config plugin system without manually editing native files.\n\n**한국어 문서**: [README.ko.md](./README.ko.md)\n\n## Installation\n\n```bash\nnpm install @dexical/expo-store-signing\n# or\npnpm add @dexical/expo-store-signing\n# or\nyarn add @dexical/expo-store-signing\n```\n\n## Usage\n\n### 1. Add the plugin to app.config.js or app.json\n\n```javascript\nexport default {\n  expo: {\n    // ... other config\n    plugins: [\n      [\n        \"@dexical/expo-store-signing\",\n        {\n          storeFile: \"./credentials/prod.keystore\",\n          storePassword: process.env.ANDROID_KEYSTORE_PASSWORD,\n          keyAlias: process.env.ANDROID_KEY_ALIAS,\n          keyPassword: process.env.ANDROID_KEY_PASSWORD,\n        },\n      ],\n    ],\n  },\n};\n```\n\n### 2. Set up environment variables\n\nAdd the following environment variables to your `.env` file:\n\n```env\nANDROID_KEYSTORE_PASSWORD=your_keystore_password\nANDROID_KEY_ALIAS=your_key_alias\nANDROID_KEY_PASSWORD=your_key_password\n```\n\n### 3. Prepare keystore file\n\nPlace your keystore file in the project root. Example: `./credentials/prod.keystore`\n\n## Configuration Options\n\n| Option          | Type     | Required | Description                                          |\n| --------------- | -------- | -------- | ---------------------------------------------------- |\n| `storeFile`     | `string` | ✅       | Path to the keystore file (relative to project root) |\n| `storePassword` | `string` | ✅       | Keystore password                                    |\n| `keyAlias`      | `string` | ✅       | Key alias name                                       |\n| `keyPassword`   | `string` | ✅       | Key password                                         |\n\n## How It Works\n\nThis plugin performs the following operations:\n\n1. **Keystore file validation**: Verifies that the keystore file exists at the specified path.\n2. **build.gradle modification**:\n   - Adds a `release` configuration to the `signingConfigs` block.\n   - Sets `signingConfig signingConfigs.release` in the `release` build type.\n\n### Example: build.gradle Changes\n\n**Before:**\n\n```gradle\nandroid {\n    signingConfigs {\n        debug {\n            // debug config\n        }\n    }\n    buildTypes {\n        release {\n            signingConfig signingConfigs.debug\n        }\n    }\n}\n```\n\n**After:**\n\n```gradle\nandroid {\n    signingConfigs {\n        debug {\n            // debug config\n        }\n        release {\n            storeFile file('/path/to/your/keystore')\n            storePassword 'your_store_password'\n            keyAlias 'your_key_alias'\n            keyPassword 'your_key_password'\n        }\n    }\n    buildTypes {\n        release {\n            signingConfig signingConfigs.release\n        }\n    }\n}\n```\n\n## Important Notes\n\n- ⚠️ Never commit keystore files and passwords to version control systems.\n- ⚠️ It is strongly recommended to use environment variables to manage passwords.\n- ⚠️ Verify that the keystore file is in the correct location before production builds.\n\n## Requirements\n\n- Expo SDK 49 or higher\n- React Native project (bare workflow or using prebuild)\n\n## License\n\nISC\n\n## Contributing\n\nContributions are very welcome! Please refer to guidelines described in the [contributing guide](https://github.com/expo/expo#contributing).\n","readmeFilename":"README.md"}