Mac 下 React Native 打包失败

Mac是咱们程序员的开发利器,各种爽,尤其是做RN的跨平台开发,然而对于使用习惯Window的小伙伴来说使用 react-native init XX创建出来的的项目打包就是一个痛苦的历程

以lz自身来做例子:

1.签名的生成

进入项目的android/app目录下执行脚本

$ 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中写死,但是那样每次修改都会重现的构建比较耗时

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.找到密钥串填写信息


Mac 下 React Native 打包失败_第1张图片

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

现在可以使用了.当然需要在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()

}


最终配置如下,上图更清晰


Mac 下 React Native 打包失败_第2张图片

你可能感兴趣的:(Mac 下 React Native 打包失败)