ReactNativeのハイブリッドをリリースしようと思うと、jsをバンドルし、Xcodeに埋め込む必要がある。
また、開発時点だと以下のようになっているが、localhostからjsを読み込んでいるので、ここも修正する必要がある。
NSURL *jsCodeLocation; jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.bundle?platform=ios"];
まず、XcodeのBuild Phasesで、New Run Script Phaseをし、そこに下記のスクリプトを書く
export NODE_BINARY=node ../node_modules/react-native/scripts/react-native-xcode.sh
これで、リリースビルドしたときに、Xcodeにindex.bundleやImageファイルが追加される。
ReactNativeの呼び出すときのコードは以下のように変更すると便利だ。
#import <React/RCTBundleURLProvider.h> NSURL *jsCodeLocation; jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
これで、デバッグビルドのときはlocalhostからリソースを読み込んでくれて、リリースビルドのときはXcodeにバンドルファイルから読み込まれ、ローカルファイルから読み込まれる。