2017-03-08 8 views
0

以前のバージョンから少し前にアップグレードしたRN 0.39を使用しています。Xcodeビルドはオフラインバンドルを無視し、毎回RNパッケージャを開きます

xcodebuildを使用してCI環境でアプリケーションを構築したいと考えています。

まず、私はRN-cliのオフラインバンドルを取得するを実行します。

react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle

その後、私は単に可能nimblest方法でxcodebuildを実行している:

xcodebuild -scheme MyAppScheme -configuration Release

をどんなにをどのスキーム、ターゲット、構成であれ、常にCI環境で回避する必要があるRN Packagerを開きます。

最新のAppDelegate.mのバージョンは、オフラインバンドルが存在する場合、そのバンドルを取得することになっています。なぜ私が行っていないのでしょうか。

どのような考えですか?

+0

なぜxcodeでビルドしないのですか? –

+0

@AakashSigdel私はTeamCityを使って自動ビルドを設定しています。コミットごとに新しいビルドが必要です。そして、各ビルドがRN Packagerを開くと、前のビルドからのポート8081を使用しているパッケージャのために、後続のビルドが失敗します。また、オフラインバンドルが存在する場合、RNパッケージャが最初に実行されるべきではありません。何が起こっているのか分かりません。 – Fernando

+0

このコマンドではできませんか? 'react-native run-ios --configurationリリース--no-packager' –

答えて

2

最新のAppDelegate.mファイルは、0.41を使用していて、常にサーバーをロードしていたので、バンドルされたファイルを受け取るとは思われません。

これは、デバッグまたはリリースビルドを実行しているかどうかによって、サーバーまたはローカルファイルを動的に取得します。 (あなたのxCodeにDEBUG = 1のコンパイル済フラグがあることを確認してください):

#if DEBUG 
    jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; 
#else 
    jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 
#endif 
+0

興味深い!私はこれが好き。つまり、私はまだXcodeに堪能ではありません。これらのプリコンパイル済みフラグを設定するにはどうすればよいですか? – Fernando

+1

ビルド設定 - Apple LLVM 8.0前処理 - プリプロセッサマクロを探し、デバッグ設定ではDEBUG = 1のようなものが必要です。私はRNがすでにあなたのためにこれをしていると信じていますが、確認してください。 – sfratini

関連する問題