214 lines
3.4 KiB
Markdown
214 lines
3.4 KiB
Markdown
按下面步骤操作即可。你现在的签名文件应该是:
|
|||
|
|
|
||
|
|
```text
|
||
|
|
C:\Users\sansen\release.jks
|
||
|
|
```
|
||
|
|
|
||
|
|
## 第一步:移动签名文件到项目目录
|
||
|
|
|
||
|
|
打开 **CMD**,执行:
|
||
|
|
|
||
|
|
```bat
|
||
|
|
cd /d E:\MyProject\ts-mobile-go
|
||
|
|
mkdir keystore
|
||
|
|
move C:\Users\sansen\release.jks keystore\tsmobile-release.jks
|
||
|
|
```
|
||
|
|
|
||
|
|
确认文件存在:
|
||
|
|
|
||
|
|
```bat
|
||
|
|
dir E:\MyProject\ts-mobile-go\keystore\tsmobile-release.jks
|
||
|
|
```
|
||
|
|
|
||
|
|
看到该文件后继续。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 第二步:确认签名别名
|
||
|
|
|
||
|
|
执行:
|
||
|
|
|
||
|
|
```bat
|
||
|
|
keytool -list -v -keystore E:\MyProject\ts-mobile-go\keystore\tsmobile-release.jks
|
||
|
|
```
|
||
|
|
|
||
|
|
输入你刚才创建时的密钥库口令。
|
||
|
|
|
||
|
|
找到这一行:
|
||
|
|
|
||
|
|
```text
|
||
|
|
Alias name:
|
||
|
|
```
|
||
|
|
|
||
|
|
如果显示:
|
||
|
|
|
||
|
|
```text
|
||
|
|
Alias name: tsmobile
|
||
|
|
```
|
||
|
|
|
||
|
|
就使用下面的 `tsmobile`。
|
||
|
|
|
||
|
|
如果显示其他名称,后面配置时使用实际名称。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 第三步:配置 Gradle 密码
|
||
|
|
|
||
|
|
打开文件:
|
||
|
|
|
||
|
|
```text
|
||
|
|
C:\Users\sansen\.gradle\gradle.properties
|
||
|
|
```
|
||
|
|
|
||
|
|
如果文件不存在,就新建它。
|
||
|
|
|
||
|
|
写入以下内容:
|
||
|
|
|
||
|
|
```properties
|
||
|
|
TSMOBILE_STORE_FILE=E:/MyProject/ts-mobile-go/keystore/tsmobile-release.jks
|
||
|
|
TSMOBILE_STORE_PASSWORD=你的密钥库口令
|
||
|
|
TSMOBILE_KEY_ALIAS=tsmobile
|
||
|
|
TSMOBILE_KEY_PASSWORD=你的密钥库口令
|
||
|
|
```
|
||
|
|
|
||
|
|
因为你创建时没有单独设置密钥密码,所以:
|
||
|
|
|
||
|
|
```properties
|
||
|
|
TSMOBILE_KEY_PASSWORD
|
||
|
|
```
|
||
|
|
|
||
|
|
和:
|
||
|
|
|
||
|
|
```properties
|
||
|
|
TSMOBILE_STORE_PASSWORD
|
||
|
|
```
|
||
|
|
|
||
|
|
填同一个口令。
|
||
|
|
|
||
|
|
注意:
|
||
|
|
|
||
|
|
- 不要加引号;
|
||
|
|
- 等号两边不要加空格;
|
||
|
|
- `TSMOBILE_KEY_ALIAS` 如果不是 `tsmobile`,改成第二步查到的别名;
|
||
|
|
- 这个文件不要提交到 Git。
|
||
|
|
|
||
|
|
例如:
|
||
|
|
|
||
|
|
```properties
|
||
|
|
TSMOBILE_STORE_FILE=E:/MyProject/ts-mobile-go/keystore/tsmobile-release.jks
|
||
|
|
TSMOBILE_STORE_PASSWORD=MyPassword123
|
||
|
|
TSMOBILE_KEY_ALIAS=tsmobile
|
||
|
|
TSMOBILE_KEY_PASSWORD=MyPassword123
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 第四步:添加 Git 忽略规则
|
||
|
|
|
||
|
|
在项目根目录创建文件:
|
||
|
|
|
||
|
|
```text
|
||
|
|
E:\MyProject\ts-mobile-go\.gitignore
|
||
|
|
```
|
||
|
|
|
||
|
|
内容写入:
|
||
|
|
|
||
|
|
```gitignore
|
||
|
|
# Release signing files
|
||
|
|
/keystore/
|
||
|
|
/*.jks
|
||
|
|
/*.keystore
|
||
|
|
```
|
||
|
|
|
||
|
|
这样 `keystore/tsmobile-release.jks` 不会被提交。
|
||
|
|
|
||
|
|
如果项目使用 Git,也可以执行:
|
||
|
|
|
||
|
|
```bat
|
||
|
|
cd /d E:\MyProject\ts-mobile-go
|
||
|
|
git status --short
|
||
|
|
```
|
||
|
|
|
||
|
|
确认没有显示:
|
||
|
|
|
||
|
|
```text
|
||
|
|
keystore/tsmobile-release.jks
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 第五步:检查签名配置
|
||
|
|
|
||
|
|
在项目根目录执行:
|
||
|
|
|
||
|
|
```bat
|
||
|
|
cd /d E:\MyProject\ts-mobile-go
|
||
|
|
android\gradlew.bat -p android signingReport
|
||
|
|
```
|
||
|
|
|
||
|
|
正确结果应该类似:
|
||
|
|
|
||
|
|
```text
|
||
|
|
Variant: release
|
||
|
|
Config: release
|
||
|
|
Store: E:\MyProject\ts-mobile-go\keystore\tsmobile-release.jks
|
||
|
|
Alias: tsmobile
|
||
|
|
```
|
||
|
|
|
||
|
|
如果看到:
|
||
|
|
|
||
|
|
```text
|
||
|
|
Store: null
|
||
|
|
Alias: null
|
||
|
|
```
|
||
|
|
|
||
|
|
说明 `gradle.properties` 没有正确读取。
|
||
|
|
|
||
|
|
如果看到:
|
||
|
|
|
||
|
|
```text
|
||
|
|
Keystore file ... not found
|
||
|
|
```
|
||
|
|
|
||
|
|
说明 `TSMOBILE_STORE_FILE` 路径写错。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 第六步:构建发布版
|
||
|
|
|
||
|
|
配置确认无误后执行:
|
||
|
|
|
||
|
|
```bat
|
||
|
|
build-release.bat
|
||
|
|
```
|
||
|
|
|
||
|
|
成功后得到:
|
||
|
|
|
||
|
|
```text
|
||
|
|
E:\MyProject\ts-mobile-go\android\app\build\outputs\apk\release\app-release.apk
|
||
|
|
```
|
||
|
|
|
||
|
|
这个 APK 可以直接安装:
|
||
|
|
|
||
|
|
```bat
|
||
|
|
adb install -r android\app\build\outputs\apk\release\app-release.apk
|
||
|
|
```
|
||
|
|
|
||
|
|
同时还会生成:
|
||
|
|
|
||
|
|
```text
|
||
|
|
E:\MyProject\ts-mobile-go\android\app\build\outputs\bundle\release\app-release.aab
|
||
|
|
```
|
||
|
|
|
||
|
|
其中:
|
||
|
|
|
||
|
|
- `app-release.apk`:直接安装;
|
||
|
|
- `app-release.aab`:上传 Google Play 等应用商店,不能直接安装。
|
||
|
|
|
||
|
|
最后一定要备份:
|
||
|
|
|
||
|
|
```text
|
||
|
|
E:\MyProject\ts-mobile-go\keystore\tsmobile-release.jks
|
||
|
|
```
|
||
|
|
|
||
|
|
并记住密钥库口令。以后发布新版本必须继续使用同一个签名文件。
|