一旦把app寫好之後,最後一個步驟就是打包成apk囉
文件中會提到keytool,gradlew assembleRelease。
Android 打包APK
Android 把包成一个APK主要需要幾個步骤:
1.產生金鑰
2.將金鑰設定到這個專案的 /android/app 下的build.gradle 文件
3.產生Apk檔
我們來具體的說明明細吧
keytool -genkey -v -keystore RyanFactoryKey.keystore -alias RyanFactoryKey-alias -keyalg RSA -keysize 2048 -validity 10000
首先在命令視窗輸入指令,然後照著指示,填入需要的資訊
輸入金鑰儲存庫密碼:
重新輸入新密碼:
您的名字與姓氏為何?
[Unknown]: Ryan.Lu
您的組織單位名稱為何?
[Unknown]: Ryan.com
您的組織名稱為何?
[Unknown]: Ryan
您所在的城市或地區名稱為何?
[Unknown]: TW.Taichuang
您所在的州及省份名稱為何?
[Unknown]: Taichuang
此單位的兩個字母國別代碼為何?
[Unknown]: TW
CN=Ryan.Lu, OU=Ryan.com, O=Ryan, L=TW.Taichuang, ST=Taichuang, C=TW 正確嗎?
[否]: Y
針對 CN=Ryan.Lu, OU=Ryan.com, O=Ryan, L=TW.Taichuang, ST=Taichuang, C=TW 產生有效期 10,000 天的 2,048 位元 RSA 金鑰組以及自我簽署憑證 (SHA256withRSA)
輸入 <my-key-alias> 的金鑰密碼
(RETURN 如果和金鑰儲存庫密碼相同):
重新輸入新密碼:
[儲存 RyanFactoryKey.keystore]
java keytool用法
Java 中的 keytool.exe 可以用來建立數位憑證,再將該憑證,綁到你的apk中。
-keystore 指定金鑰庫的名稱,我指定了RyanFactoryKey.keystore
-alias 產生別名我指定了RyanFactoryKey-alias
要將自己的密碼記好阿!!
完成之後,就可以產生一個RyanFactoryKey.keystore檔案囉,建議將這個檔案放在你的rn專案的Android\app,與build.gradle擺在同一個目錄下。
接下來,就是要把金鑰與這個專案,產生關連,將金鑰放到設定這個專案下囉。打開你的rn專案的Android\app\build.gradle,也是剛剛步驟一將金鑰產生受,放置的同一個目錄。開始編輯build.gradle囉
signingConfigs {
release {
storeFile file("RyanFactoryKey.keystore")
storePassword "123456"
keyAlias "RyanFactoryKey-alias"
keyPassword "123456"
}
}
在build.gradle的設定中,要把剛剛的產生的金鑰放入。
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
然後再補一下這指令。
這就完成嚕。
然後該專案的目錄下,執行
cd android && ./gradlew assembleRelease
就可以開始打包囉,順利的話,就可以取得apk檔案囉。
當然Ryan在過程中,也不是那麼順利,可以參考這篇,是我踩過的坑,希望有幫助到看倌阿。
排除問題的過程中,Ryan也使用了底下指令
cd android && ./gradlew compileDebug --stacktrace
cd android && ./gradlew assembleRelease --stacktrace
可以協助確認問題的點,進而排除。
以上文章由Ryan整理,若有侵犯版權、勘誤,請來信告知。