mirror of
https://github.com/zhigang1992/react-native-code-push.git
synced 2026-05-19 19:39:54 +08:00
reduce readme.md size * move android and ios parts of the multi-deployment testing chapter into the separate files * improve navigation tree
45 lines
3.0 KiB
Markdown
45 lines
3.0 KiB
Markdown
### iOS
|
|
|
|
Xcode allows you to define custom build settings for each "configuration" (e.g. debug, release), which can then be referenced as the value of keys within the `Info.plist` file (e.g. the `CodePushDeploymentKey` setting). This mechanism allows you to easily configure your builds to produce binaries, which are configured to synchronize with different CodePush deployments.
|
|
|
|
To set this up, perform the following steps:
|
|
|
|
1. Open up your Xcode project and select your project in the `Project navigator` window
|
|
|
|
2. Ensure the project node is selected, as opposed to one of your targets
|
|
|
|
3. Select the `Info` tab
|
|
|
|
4. Click the `+` button within the `Configurations` section and select `Duplicate "Release" Configuration`
|
|
|
|

|
|
|
|
5. Name the new configuration `Staging` (or whatever you prefer)
|
|
|
|
6. Select the `Build Settings` tab
|
|
|
|
7. Go to `Build Location -> Per-configuration Build Products Path -> Staging` and change `Staging` value from `$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)` to `$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)`
|
|
|
|

|
|
|
|
*NOTE: Due to https://github.com/facebook/react-native/issues/11813, we have to do this step to make it possible to use other configurations than Debug or Release on RN 0.40.0 or higher.*
|
|
|
|
8. Click the `+` button on the toolbar and select `Add User-Defined Setting`
|
|
|
|

|
|
|
|
9. Name this new setting something like `CODEPUSH_KEY`, expand it, and specify your `Staging` deployment key for the `Staging` config and your `Production` deployment key for the `Release` config.
|
|
|
|

|
|
|
|
*NOTE: As a reminder, you can retrieve these keys by running `code-push deployment ls <APP_NAME> -k` from your terminal.*
|
|
|
|
10. Open your project's `Info.plist` file and change the value of your `CodePushDeploymentKey` entry to `$(CODEPUSH_KEY)`
|
|
|
|

|
|
|
|
And that's it! Now when you run or build your app, your staging builds will automatically be configured to sync with your `Staging` deployment, and your release builds will be configured to sync with your `Production` deployment.
|
|
|
|
*Note: If you encounter the error message `ld: library not found for ...`, please consult [this issue](https://github.com/Microsoft/react-native-code-push/issues/426) for a possible solution.*
|
|
|
|
Additionally, if you want to give them seperate names and/or icons, you can modify the `Product Bundle Identifier`, `Product Name` and `Asset Catalog App Icon Set Name` build settings, which will allow your staging builds to be distinguishable from release builds when installed on the same device. |