首次推送
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
按下面步骤操作即可。你现在的签名文件应该是:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
并记住密钥库口令。以后发布新版本必须继续使用同一个签名文件。
|
||||
Reference in New Issue
Block a user