应用开发完了,总不能顶着MyProject和小机器人图标就发布了吧?在发布之前,有多处需要修改的地方。今天我们来全面的看一下
应用ID
俗称PackageName,或APP ID。注意,在gradle构建的安卓应用里(React Native引用都是由gradle构建的),不要直接修改AndroidManifest.xml中的package字段,不但连源代码也要跟着改,而且结果还没用……
正确的改法是修改android/app/build.gradle
中的以下内容:
……
android {
……
defaultConfig {
applicationId "com.myproject" <-- 就是这行
……
}
……
}
另外,修改后,你会发现react-native run-android无法启动应用(或者总是启动之前的版本),因为这时候还是试图启动原来的包名。这是因为react native官方还有一个BUG。你可以参照此PR修改,也可以在run-android后手动找到应用并打开。
版本号
还是在android/app/build.gradle
中,versionCode 和versionName两项。versionCode必须每次增加,不能减少。每次发布之前,这两项都要修改哦~
应用名称
在android/app/src/main/res/values/strings.xml
中,找到<string name="app_name">MyProject</string>
,中间的MyProject就是应用名称了。
图标
在android/app/src/main/res/
下,你会看到一系列mipmap开头的文件夹(默认是4个),按照里面ic_launcher.png的尺寸,生成四个版本的icon并替换。
有时候图标修改会迟迟不生效,此时从手机上彻底删掉原应用,删掉文件夹android/build
和android/app/build
,然后再重新打包
签名
要想打出发布包来,签名是必须的。你可以参照此文档生成并使用签名,相关内容都在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
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
通过环境变量配置签名有助于确保签名安全。当然,你也可以直接配置这些字段吗,像这样:
signingConfigs {
release {
keyAlias 'store'
keyPassword '123456'
storeFile file('../../keystore/keystore.jks')
storePassword '123456'
}
}