rn的兩種打包方式(Android & iOS)

一、Android

相對簡單,文檔(https://reactnative.cn/docs/signed-apk-android/)也有介紹。

1.生成私有秘鑰

①根目錄下打開終端,執行命令:

????keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize2048-validity10000

②根據提示輸入口令:

one

只需記住 密鑰庫口令?(劃重點)后面會用到,其他的不重要。

③生成密鑰庫文件

按下回車后,根目錄下生成一個 my-release-key.keystore 的文件,直接拿到android/app下:

two

2.設置 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.生成發行 APK 包

①終端cd到android目錄下(我直接在android目錄下新開一個終端,方便同時打包且重新運行項目更改),執行命令:

gradlew clean?(不clean也能打包,但是安裝后容易造成APP閃退的問題)

gradlew assembleRelease

需要注意的是每次打包之前最好刪除android和android/app文件下的build包,清除之前的緩存。

②success之后生成的apk文件位于android/app/build/outputs/apk/release/app-release.apk,掃碼下載安裝或是發布到應用商店方式看需求就可以使用了。

二、iOS

1.關于APP IDS ,簽名,證書等

像Android需要在終端生成私有密鑰一樣,只不過iOS需要在https://developer.apple.com/中創建。

①需要交費獲得具有開發功能的AppleID(這里是能登錄蘋果設備以及開發網址的郵箱形式用戶名,與標題中不是一個ID),登陸成功后進入Certificates, Identifiers & Profiles頁面。

②添加Identifiers -> APP IDs,點擊 + 號新建:

three

Name可以隨意不作要求,Bundle ID通常格式:com.公司名.項目名

App Services根據需求勾選,continue后register

③創建證書

新建后選擇App Store and Ad Hoc,continue直到choose file

four

打開鑰匙串訪問,從證書頒發機構請求證書,

five
six

生成CertificateSigningRequest.certSigningRequest文件

回到choose file,選擇的就是這個文件。

continue后下載,添加至鑰匙串訪問我的證書中。OK

④配置Provisioning Profiles -> distribution

選擇App Store后continue,APP ID會自動填充剛才創建的ID以及證書,取一個

Profile Name,就能使當前配置處于活躍狀態。

2.關于靜態資源打包

①在ios文件夾下新建bundle文件。

②在項目根目錄下執行命令:

react-nativebundle --entry-file index.js --bundle-output ./ios/bundle/index.ios.jsbundle --platform ios --assets-dest ./ios/bundle --devfalse

insert

將生成的一個文件夾及一個文件直接拖拽到Xode項目文件下就行。

3.關于xcode打包

①首先,bundle identifier換成之前的Bundle ID(com.公司名.項目名),team選擇開發者賬號

seven

②product -> archive(成功的前提是解決所有出現的報錯。。廢話!)

在彈出的organizer框中直接選擇distribute app,有四種打包方式:

——iOS APP store(上傳至蘋果商店)

上傳之前首先需要在https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app/1232529584?

我的APP中新建

eight

之后再回到xcode中

nine

接下來:upload -> Automatically manage signing -> Upload 坐等successfully uploaded

在我的APP中填寫所需信息,按要求上傳截圖,架構等信息,保存后提交去審核就可以了。

——ad hoc(可以開發者內部測試,不需要簽名證書等,可以直接在真機測試過或者添加了unid的設備上安裝下載APP,其他設備不可以)

ten


eleven
twelve

接下來Export到你想放的文件夾,打開發現里面有IPA文件,就可以自行內測了。

——enterprise (企業內測,沒有試過不做解釋)

——development(與ad hoc相似,但是需要簽名證書等,沒有試過不做解釋)

以上。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容