項目名我們設定爲:iotApp
1、在ios
目錄下新建bundle
目錄。後面編譯打包離線資源,也會生成bundle目錄,提前建,是爲了防止某些情況下報錯。
2、進行編譯,離線打包資源。命令如下:
react-native bundle
--entry-file index.js //entry-file,ios或者android入口的js名稱,比如index.js
--platform ios //platform ,平臺名稱(ios或者android)
--dev false //設置爲false時會對JavaScript代碼進行優化處理
--bundle-output ./ios/bundle/index.ios.jsbundle //生成的jsbundle文件的名稱
--assets-dest ./ios/bundle //圖片以及其他資源存放的目錄,比如./ios/bundle
爲了方便操作,在package.json
中添加編譯命令(node node_modules/react-native/local-cli/cli.js爲腳本,固定寫就行)
"scripts": {
...,
"bundle-ios":"node node_modules/react-native/local-cli/cli.js bundle --entry-file index.js --platform ios --dev false --bundle-output ./ios/bundle/index.ios.jsbundle --assets-dest ./ios/bundle"
}
這樣每次執行npm run bundle-ios,即可離線打包資源。離線包生成完成之後,可以在ios目錄下看到一個bundle
目錄,這個目錄就是bundle
生成的離線資源。(每次打包前都執行一次,類似於webpack的clean-wepack-plugin,可以清空bundle下的舊文件)
3、打開Xcode引入項目文件,.xcodeProj,RN 0.60.0以後的版本有不一樣的後綴
4、右鍵打開項目同名的iotApp的菜單,Add Files to "RNIos"
5、選擇bundle
文件,在option中選擇Create folder references
6、添加到項目中的文件夾必須是藍色
7、設置AppDelegate.m
文件
修改ios目錄下與項目同名的文件目錄裏邊的AppDelegate.m: jsCodeLocation
在開發的過程中可以在這裏配置Debug Server的地址,當發佈上線的時候,就需要使用離線的jsbundle文件,因此需要設置jsCodeLocation爲本地的離線jsbundle。
NSURL *jsCodeLocation;
//測試
#if DEBUG
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
//正式
#else
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#endif
8、修改debug狀態
Xcode——
Product——Schema——Edit Scheme,查看run選擇的模式,將項目由debug狀態改成release狀態(debug爲內測,release爲發佈App Store)
9、確保左上角選中的是iotApp>Generic iOS Device。雙擊Xcode裏的項目根目錄,顯示出如下內容:
Generic iOS Device,修改Version和Build號,寫入bundle Identifier,選擇Provisioning profile爲項目的描述文件。
10、點擊Product——Archive開始打包。顯示build完成之後,顯示如下彈框:點擊Distribute App
需要上傳App Store則選擇第一個iOS App Store,企業內測應用則選擇第三個,按“next”
在iotApp.app選擇安裝的證書,按“next”。
點擊“導出”,會彈出,保存目錄的文件夾,選擇一個自己好找的目錄即可。 導出的時候選擇目錄,完後在這個目錄裏找ipa文件就行。這兒設置的導出到bundle裏了。
11、將內測的應用上傳到蒲公英上即可生成一個可供掃描下載的二維碼。
PS:一個證書p12可對應多個bundle Id,一個bundle Id對應一個描述文件.mobileprovision
bundleID:**.**.**。申請證書的時候即需要提供的。
證書:.p12後綴。描述文件:.mobilePrivision
雙擊打開證書,輸入密碼確認,即代表安裝成功描述文件也是雙擊安裝。安裝完成後,可在“鑰匙串”中查看相關信息