Mac 下 React Native 打包失敗

Mac是咱們程序員的開發(fā)利器,各種爽,尤其是做RN的跨平臺開發(fā),然而對于使用習慣Window的小伙伴來說使用 react-native init XX創(chuàng)建出來的的項目打包就是一個痛苦的歷程

以lz自身來做例子:

1.簽名的生成

進入項目的android/app目錄下執(zhí)行腳本

$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

我們生成了一個my-release-key.keystore簽名文件, alias 是 my-key-alias

當然了同時我們也需要牢記密碼 待會要使用的額

2.配置build.gradle

首先在gradle.properties定義一些常量,當然了也可在build.gradle中寫死,但是那樣每次修改都會重現(xiàn)的構建比較耗時

YAPP_RELEASE_STORE_FILE=my-release-key.keystore

MYAPP_RELEASE_KEY_ALIAS=my-key-alias

MYAPP_RELEASE_STORE_PASSWORD=*****

MYAPP_RELEASE_KEY_PASSWORD=*****

然后是配置build,gradle

android {

signingConfigs {

release {

storeFile file(MYAPP_RELEASE_STORE_FILE)

storePassword MYAPP_RELEASE_STORE_PASSWORD

keyAlias MYAPP_RELEASE_KEY_ALIAS

keyPassword MYAPP_RELEASE_KEY_PASSWORD

}

buildTypes {

release {signingConfig signingConfigs.release

}

一切都是那么的順理成章,然而我們Mac 因此是那么的不同-------您會遇到密鑰傳訪問權限問題

破解步驟:

1.找到密鑰串填寫信息


security find-generic-password -s android-app-access -w

現(xiàn)在可以使用了.當然需要在build.gradle中配置

def getPassword(String currentUser, String keyChain) {

def stdout = new ByteArrayOutputStream()

def stderr = new ByteArrayOutputStream()

exec {

commandLine 'security', '-q', 'find-generic-password', '-a', currentUser, '-s', keyChain, '-w'

standardOutput = stdout

errorOutput = stderr

ignoreExitValue true

}

//noinspection GroovyAssignabilityCheck

stdout.toString().trim()

}


最終配置如下,上圖更清晰


最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容