Skip to content
Wang Xuerui edited this page Nov 8, 2013 · 1 revision

发布一个新版本的流程

发布前

  • 确保应用工作正常
    • 测试套件 all pass (如果有的话-_-)
    • Android 2.3 (API 9)
    • Android 4.1 (API 16)
    • Android 4.2 (API 17)
    • Android 4.3 (API 18)
    • Android 最新版
    • 最好使用真机进行调试, 如果没有相应版本设备的话用模拟器代替也行
  • 评判标准
    • 尽量贴近安卓官方文档描述的应用质量评价核心标准
    • 适当容许中国用户与平台约定不一致的操作习惯但不要纵容
    • 强调: 绝不允许 ANR (应用程序无响应) 出现在正常操作中, 这个问题竞争对手和人人网等大牌 app 都有, 我们不能有

发布

分两步, 先在 Cytosol 库切出 release, 再切这里. 然后更新可发布资源库里的升级信息, 告知更新.

Cytosol

cd path/to/Cytosol
git flow release start z.0  # z.0 是版本号, 自己取

# 冻结依赖关系, 当前来讲主要是 SlidingMenu
cd deps/SlidingMenu
git rev-parse HEAD  # 这个是 SlidingMenu 库当前 HEAD 的 commit id
cd ..
vim update-deps.sh  # 编辑 smenu_ver 成刚才的 commit id, 编辑 smenu_pull 为 false
git add update-deps.sh
git commit -m 'freeze dep version'
cd ..

# 去掉所有的 -SNAPSHOT 后缀, 如果有的话
vim pom.xml
vim cytosol/pom.xml
vim cytosol/AndroidManifest.xml
git add pom.xml cytosol/pom.xml cytosol/AndroidManifest.xml
git commit -m 'prepare z.0'

# 结束发布分支
git flow release finish z.0
# Tag message 写 Version z.0

# bump 版本号, 解冻依赖关系
vim pom.xml  # 提升版本号, 加上 -SNAPSHOT
vim cytosol/pom.xml  # 同上
vim cytosol/AndroidManifest.xml  # 版本 id 和版本号
git commit -m 'bump version to w.0'  # 把 w.0 换成你选的版本号
vim deps/update-deps.sh  # 把刚刚改掉的两个值换回原来的 master 和 true
git commit -m 'release dep version freeze'

#
git push origin master
git push origin stable
git push --tags

本项目

其实也差不多... 把上边的 SlidingMenu 自行换成 Cytosol 即可, 不过不要用 commit id 指代固定版本, 而是用你刚才新发布的 tag 指定. 还有提交信息在这里可以用汉语, 准备 x.y 版 冻结依赖关系版本 bump version to x.z bump Cytosol 依赖版本到 w.0 解放依赖关系版本 之类的.

主要流程:

  • git flow release start x.y
  • 冻结 Cytosol 版本, 提交一次
  • 从 AndroidManifest 和几个 POM 中去掉 -dev 后缀, 提交一次
  • git flow release finish x.y Tag message 还是 Version x.y 简单一行
  • bump version, bump Cytosol 版本, 恢复 update-deps.sh 设置, 提交

shippables

# 先编译出来一个 tag 好的版本
cd path/to/jnrain-android/deps
./update-deps.sh
cd ..
mvn clean package -Ddebug=0  # 这是打开优化和混淆的设置, 文件比较小. 如果不是很自信请去掉 -Ddebug=0...
# 回到开发分支
git checkout master

# 发布
cd path/to/shippables
# apk 名字可能会变 (1.0 版开签名需要用户显式重新安装什么的), 以当时的包名字为准
cp path/to/jnrain-android/app/target/jnrain-android-x.y-aligned.apk android/jnrain-android-x.y.apk
# 写更新信息, 仿照之前的格式写
vim updates/android.json

#
git add android/jnrain-android-x.y.apk updates/android.json
git commit -m '添加 jnrain-android-x.y'
git push

发布后

Clone this wiki locally