NOTE
Complete demos configured with "multi-deployment testing" feature are [here]:
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:
Open up your Xcode project and select your project in the Project navigator
window
Ensure the project node is selected, as opposed to one of your targets
Select the Info
tab
Click the +
button within the Configurations
section and select Duplicate "Release" Configuration
Name the new configuration Staging
(or whatever you prefer)
Select the Build Settings
tab
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.
Click the +
button on the toolbar and select Add User-Defined Setting
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.
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: CocoaPods users may need to run pod install
before building with their new release configuration.
Note: If you encounter the error message ld: library not found for ...
, please consult this issue 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.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。