一栖雾、Android
相對簡單宣渗,文檔(https://reactnative.cn/docs/signed-apk-android/)也有介紹试读。
1.生成私有秘鑰
①根目錄下打開終端渣慕,執(zhí)行命令:
????keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize2048-validity10000
②根據(jù)提示輸入口令:
只需記住 密鑰庫口令?(劃重點)后面會用到,其他的不重要挤忙。
③生成密鑰庫文件
按下回車后,根目錄下生成一個 my-release-key.keystore 的文件谈喳,直接拿到android/app下:
2.設(shè)置 gradle 變量:
①在android/gradle.properties中加入代碼:
????MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
????MYAPP_RELEASE_KEY_ALIAS=my-key-alias
????MYAPP_RELEASE_STORE_PASSWORD=******
????MYAPP_RELEASE_KEY_PASSWORD=******
其中******換成?密鑰庫口令 (重點)
3.添加簽名配置:
①在android/app/build.gradle添加代碼:
? ??android {
????????????...?
?????????defaultConfig {
????????????....?
? ? ? ? ? }?
?????????signingConfigs {
? ? ????????release {
? ????????? ????storeFile file(MYAPP_RELEASE_STORE_FILE)
? ? ????????????storePassword MYAPP_RELEASE_STORE_PASSWORD
? ? ????????????keyAlias MYAPP_RELEASE_KEY_ALIAS
? ? ????????????keyPassword MYAPP_RELEASE_KEY_PASSWORD
? ? ????????}
????????}
????????splits {
????????????....? ?
?????????}? ?
?????????buildTypes {? ? ? ??
????????????release {
? ? ? ? ? ? ????signingConfig signingConfigs.release
????????????????...? ? ? ??
????????????}? ??
????????}??
????????.....? ? ? ? ? ??
????}
4.生成發(fā)行 APK 包
①終端cd到android目錄下(我直接在android目錄下新開一個終端册烈,方便同時打包且重新運行項目更改),執(zhí)行命令:
gradlew clean?(不clean也能打包叁执,但是安裝后容易造成APP閃退的問題)
gradlew assembleRelease
需要注意的是每次打包之前最好刪除android和android/app文件下的build包茄厘,清除之前的緩存。
②success之后生成的apk文件位于android/app/build/outputs/apk/release/app-release.apk谈宛,掃碼下載安裝或是發(fā)布到應(yīng)用商店方式看需求就可以使用了次哈。
二、iOS
1.關(guān)于APP IDS 吆录,簽名窑滞,證書等
像Android需要在終端生成私有密鑰一樣,只不過iOS需要在https://developer.apple.com/中創(chuàng)建恢筝。
①需要交費獲得具有開發(fā)功能的AppleID(這里是能登錄蘋果設(shè)備以及開發(fā)網(wǎng)址的郵箱形式用戶名哀卫,與標題中不是一個ID),登陸成功后進入Certificates, Identifiers & Profiles頁面撬槽。
②添加Identifiers -> APP IDs此改,點擊 + 號新建:
Name可以隨意不作要求,Bundle ID通常格式:com.公司名.項目名
App Services根據(jù)需求勾選侄柔,continue后register
③創(chuàng)建證書
新建后選擇App Store and Ad Hoc共啃,continue直到choose file
打開鑰匙串訪問,從證書頒發(fā)機構(gòu)請求證書暂题,
生成CertificateSigningRequest.certSigningRequest文件
回到choose file移剪,選擇的就是這個文件。
continue后下載薪者,添加至鑰匙串訪問我的證書中纵苛。OK
④配置Provisioning Profiles -> distribution
選擇App Store后continue,APP ID會自動填充剛才創(chuàng)建的ID以及證書言津,取一個
Profile Name攻人,就能使當前配置處于活躍狀態(tài)。
2.關(guān)于靜態(tài)資源打包
①在ios文件夾下新建bundle文件悬槽。
②在項目根目錄下執(zhí)行命令:
react-nativebundle --entry-file index.js --bundle-output ./ios/bundle/index.ios.jsbundle --platform ios --assets-dest ./ios/bundle --devfalse
將生成的一個文件夾及一個文件直接拖拽到Xode項目文件下就行贝椿。
3.關(guān)于xcode打包
①首先,bundle identifier換成之前的Bundle ID(com.公司名.項目名)陷谱,team選擇開發(fā)者賬號
②product -> archive(成功的前提是解決所有出現(xiàn)的報錯。。廢話Q萄贰)
在彈出的organizer框中直接選擇distribute app渣窜,有四種打包方式:
——iOS APP store(上傳至蘋果商店)
上傳之前首先需要在https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app/1232529584?
我的APP中新建
之后再回到xcode中
接下來:upload -> Automatically manage signing -> Upload 坐等successfully uploaded
在我的APP中填寫所需信息,按要求上傳截圖宪躯,架構(gòu)等信息乔宿,保存后提交去審核就可以了。
——ad hoc(可以開發(fā)者內(nèi)部測試访雪,不需要簽名證書等详瑞,可以直接在真機測試過或者添加了unid的設(shè)備上安裝下載APP,其他設(shè)備不可以)
接下來Export到你想放的文件夾臣缀,打開發(fā)現(xiàn)里面有IPA文件坝橡,就可以自行內(nèi)測了。
——enterprise (企業(yè)內(nèi)測精置,沒有試過不做解釋)
——development(與ad hoc相似计寇,但是需要簽名證書等,沒有試過不做解釋)
以上脂倦。