iOS Setup
Once you've installed @deploypulseio/react-native-code-push, you need to integrate it into your Xcode project. If you are using Expo managed workflow, see Expo Setup instead — no native file editing required.
Install CocoaPods dependencies
cd ios && pod install && cd ..
Patch AppDelegate
Swift (recommended)
Open AppDelegate.swift and add the import:
import CodePush
Then find and replace the bundleURL() method:
override func bundleURL() -> URL? {
#if DEBUG
RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index")
#else
CodePush.bundleURL()
#endif
}
Objective-C
Open AppDelegate.m and add the import:
#import <CodePush/CodePush.h>
Then find and replace the sourceURLForBridge method:
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
#else
return [CodePush bundleURL];
#endif
}
Add keys to Info.plist
Add your deployment key and the DeployPulse server URL to Info.plist:
<key>CodePushDeploymentKey</key>
<string>YOUR_IOS_DEPLOYMENT_KEY</string>
<key>CodePushServerURL</key>
<string>https://api.deploypulse.io</string>
Retrieve your deployment key with:
dpctl deployment list <AppName>
HTTP exception domains (ATS)
The CodePush plugin makes HTTPS requests to the following domains. If you need to configure ATS exceptions, add them to Info.plist:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>api.deploypulse.io</key>
<dict><!-- ATS options --></dict>
</dict>
</dict>
Domains in use: api.deploypulse.io, codepush.blob.core.windows.net, codepushupdates.azureedge.net.
Code Signing (optional)
To verify bundle integrity before applying updates, add your public key to Info.plist:
<key>CodePushPublicKey</key>
<string>-----BEGIN PUBLIC KEY-----
YOUR_PUBLIC_KEY_HERE
-----END PUBLIC KEY-----</string>
See the Code Signing guide for full setup instructions.
Next step
Return to the React Native SDK page for usage and notifyAppReady instructions.
