如何從 0 到 1 開發(fā) RN APP 構(gòu)建平臺(tái)
正文如下

一、簡(jiǎn)介
1.我是誰(shuí)?
大家好,我是胡民偉,現(xiàn)在在宋小菜擔(dān)任前端開發(fā),主要負(fù)責(zé)業(yè)務(wù)開發(fā),前端構(gòu)建服務(wù)以及前端服務(wù)器運(yùn)維。
2.我們的團(tuán)隊(duì)?


3.我們的產(chǎn)品


二、分享大綱

1.構(gòu)建現(xiàn)狀
2.從0到1
3.從1到2
4.從2到N
5.推薦書籍
三、構(gòu)建現(xiàn)狀

1.本地打包的痛點(diǎn)

1.1 是哪一個(gè)APP?
1.2 是打 iOS 還是 Android ?
1.3 是正式環(huán)境,還是日常測(cè)試環(huán)境?
1.4 是否開啟熱更新功能?
1.5 是否開啟 Debug 模式?
1.6 是在哪個(gè)同學(xué)的電腦上打的包?
2.APP 打包
2.1 APP 打包流程

2.2 APP 打包效果展示

3.PC/H5 打包
3.1 PC/H5 打包流程

3.2 PC/H5 打包效果展示


4.小程序打包

四、從 0 到 1
1.React Native 技術(shù)架構(gòu)

2.Android RN 本地打包
2.1 Android 項(xiàng)目結(jié)構(gòu)

2.2 Android 構(gòu)建腳本

2.3 React.gradle 中打包 index.android.bundle 相關(guān)代碼
3.iOS RN 本地打包
3.1 iOS 項(xiàng)目結(jié)構(gòu)

3.2 iOS 構(gòu)建腳本
對(duì)?Target?進(jìn)行編譯、歸檔生成?.xcarchive?文件

對(duì) .xcarchive 歸檔文件進(jìn)一步處理,生成不同渠道的 .ipa 包,進(jìn)行分發(fā)

4.Xmansion 打包系統(tǒng)
4.1 打包流程

4.2 系統(tǒng)架構(gòu)

4.3 打包步驟
a.選擇打包應(yīng)用

b.設(shè)置打包參數(shù)

c.查看打包日志


5.構(gòu)建核心步驟
5.1 Node 執(zhí)行 Shell

5.2 package_android.sh 節(jié)選

5.3 package_ios.sh 節(jié)選

五、從 1 到 2
1.面臨問題
1.1 不能并行打包
不能并行打包,沒法充分利用機(jī)器資源 沒有任務(wù)隊(duì)列,打包需要值守
1.2 iOS 打包簽名發(fā)布步驟繁瑣
證書與描述文件的關(guān)系比較混亂 iOS商店包仍需手動(dòng)發(fā)布到AppStore審核
1.3 統(tǒng)一前后端線上發(fā)布流程
為規(guī)范前后端開發(fā)部署流程,公司內(nèi)部統(tǒng)一使用devops平臺(tái) 后端構(gòu)建任務(wù)采用Jenkins發(fā)布,前端打包平臺(tái)待向外提供服務(wù)能力
2.解決方案:封裝 sxc-rn-cli + fastlane

2.1 Why fastlane?

2.2 sxc-rn-cli 配置文件

2.3 sxc-rn-cli 使用:所有打包參數(shù)都可以通過(guò) jenkins 的調(diào)用給到打包腳本

2.4 sxc-rn-cli 核心功能

2.5 fastlane action android

2.6 fastlane action iOS

3.前后端統(tǒng)一發(fā)布流程:解決方案
3.1 打包邏輯遷移至 Jenkins

3.2 對(duì)接Devops,向外提供服務(wù)

六、從 2 到 N
1.正在開發(fā)功能

七、推薦書籍《暗時(shí)間》

掃碼關(guān)注公眾號(hào),訂閱更多精彩內(nèi)容。

評(píng)論
圖片
表情

