React Native開(kāi)發(fā)之iOS打包ipa發(fā)布(親測(cè)可行)

我們可以用React Native提供的命令:
react-native bundle

Options:
--entry-file Path to the root JS file, either absolute or relative to JS root [required]
--platform Either "ios" or "android"
--transformer Specify a custom transformer to be used (absolute path) [default: "/Users/babytree-mbp13/projects/xcodeProjects/AwesomeProject/node_modules/react-native/packager/transformer.js"]
--dev If false, warnings are disabled and the bundle is minified [default: true]
--prepack If true, the output bundle will use the Prepack format. [default: false]
--bridge-config File name of a a JSON export of __fbBatchedBridgeConfig. Used by Prepack. Ex. ./bridgeconfig.json
--bundle-output File name where to store the resulting bundle, ex. /tmp/groups.bundle [required]
--bundle-encoding Encoding the bundle should be written in ([https://nodejs.org/api/buffer.html#buffer_buffer).](https://nodejs.org/api/buffer.html#buffer_buffer).) [default: "utf8"]
--sourcemap-output File name where to store the sourcemap file for resulting bundle, ex. /tmp/groups.map
--assets-dest Directory name where to store assets referenced in the bundle
--verbose Enables logging [default: false]

其實(shí)用Xcode打開(kāi)后可以開(kāi)到main.js文件牲蜀,不過(guò)是紅色狀態(tài)的,因?yàn)橐昧说遣](méi)有這個(gè)文件存在绅这,React Native這樣做的目的可能就是提示你還沒(méi)有生成離線(xiàn)數(shù)據(jù)的意思吧涣达。??所以我們這里的bundle-output就選擇這個(gè)main.js,如果你想用別的名字,理論上是可以的度苔,但是會(huì)提示找不到這個(gè)文件匆篓,你需要先生成一個(gè)空的文件就可以了。??--assets-dest選擇./ios就可以了寇窑,因?yàn)樗鼤?huì)幫你在./ios下生成assets文件夾鸦概。

第一步

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

如果你是4.9版本以上使用一下命令:

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

準(zhǔn)備就緒,開(kāi)始打包甩骏。打包完后你就會(huì)看到main.js文件變?yōu)橐延袪顟B(tài)了窗市。??然后打開(kāi)Appdelegate.m文件,修改:

Paste_Image.png
//jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; 

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

然后再把a(bǔ)ssets文件夾添加到工程中饮笛,注意的是必須選擇Creat folder references否則運(yùn)行時(shí)將會(huì)報(bào)錯(cuò)咨察,無(wú)法找到文件。


assets文件夾

第二步運(yùn)行環(huán)境下的編譯設(shè)置(Debug/Release)

image.png

最后command+R運(yùn)行福青,發(fā)現(xiàn):程序崩潰了

出現(xiàn)這樣的原因是因?yàn)锽uild Phases中Copy Bundle Resources沒(méi)有添加我們剛才生成的main.js摄狱。

Copy Bundle Resources
再次command+R運(yùn)行,跑起來(lái)了无午。
之后正常走Xcode打包發(fā)布流程就好了媒役。
如果按照我這個(gè)步驟來(lái)還是不成功,給個(gè)??宪迟,私信我?guī)湍悖?

遇到錯(cuò)誤1:

如果你打包IPA 安裝到真機(jī)上時(shí)遇到這個(gè)錯(cuò)誤

dyld: Library not loaded: @rpath/RSKImageCropper.framework/RSKImageCropper
  Referenced from: /var/containers/Bundle/Application/04722779-7AB0-40C4-961E-4EED77C876A1/RichMedia1.app/RichMedia1
  Reason: image not found
image.png

在項(xiàng)目的General->Embedded Binaries中刊愚,將我們自定的framework 添加進(jìn)去,如下圖:

image.png

錯(cuò)誤二:

can't link with a main executable file for architecture armv7
解決:

在 target 下有個(gè) test 工程踩验,
找到 General,然后會(huì)看到一個(gè) testing 
在 testing 下有個(gè)
 Allow testing Host Application APIs 鸥诽,它默認(rèn)是勾上的,把勾去掉箕憾,

歡迎大家加群討論
點(diǎn)擊鏈接加入群聊【ReactNative技術(shù)交流群3】:1085660877
相關(guān)文章:
1.React Native開(kāi)發(fā)錯(cuò)誤警告處理總結(jié)(已解決 牡借!持續(xù)更新)
2.ReactNative 實(shí)現(xiàn)的文件上傳功能(實(shí)測(cè)可行!)
3.React Native開(kāi)發(fā)總結(jié)之:開(kāi)發(fā)技巧和調(diào)試技巧
4.React Native開(kāi)發(fā)總結(jié):一袭异、開(kāi)發(fā)環(huán)境配置
5.ReactNative之Android打包APK方法(趟坑過(guò)程)
6Android 調(diào)試錯(cuò)誤總結(jié)(ReactNative開(kāi)發(fā))(持續(xù)更新)
7.ReactNative開(kāi)發(fā)之真機(jī)測(cè)試
8React Native開(kāi)發(fā)之iOS打包ipa發(fā)布(親測(cè)可行)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钠龙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子御铃,更是在濱河造成了極大的恐慌碴里,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件上真,死亡現(xiàn)場(chǎng)離奇詭異咬腋,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)睡互,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)根竿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)陵像,“玉大人,你說(shuō)我怎么就攤上這事寇壳⌒延保” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵壳炎,是天一觀(guān)的道長(zhǎng)泞歉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)匿辩,這世上最難降的妖魔是什么腰耙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮撒汉,結(jié)果婚禮上沟优,老公的妹妹穿的比我還像新娘。我一直安慰自己睬辐,他們只是感情好挠阁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著溯饵,像睡著了一般侵俗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丰刊,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天隘谣,我揣著相機(jī)與錄音,去河邊找鬼啄巧。 笑死寻歧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的秩仆。 我是一名探鬼主播码泛,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼澄耍!你這毒婦竟也來(lái)了噪珊?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤齐莲,失蹤者是張志新(化名)和其女友劉穎痢站,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體选酗,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡阵难,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了星掰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片多望。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嫩舟,死狀恐怖氢烘,靈堂內(nèi)的尸體忽然破棺而出怀偷,到底是詐尸還是另有隱情,我是刑警寧澤播玖,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布椎工,位于F島的核電站,受9級(jí)特大地震影響蜀踏,放射性物質(zhì)發(fā)生泄漏维蒙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一果覆、第九天 我趴在偏房一處隱蔽的房頂上張望颅痊。 院中可真熱鬧,春花似錦局待、人聲如沸斑响。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舰罚。三九已至,卻和暖如春薛耻,著一層夾襖步出監(jiān)牢的瞬間营罢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工饼齿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留饲漾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓缕溉,卻偏偏與公主長(zhǎng)得像考传,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子倒淫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容