Android打包之多版本、多环境、多渠道
android配置profile实现环境切换
https://blog.csdn.net/github_35033182/article/details/76162498
1.下载android studio
2.下载sdk tools
2.1 双击“SDK Manager.exe”,启动SDK Manager 下载相关版本内容
[https://www.cnblogs.com/elesos/p/9957578.html](https://www.cnblogs.com/elesos/p/9957578.html)
https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
1,先安装java
https://developer.android.com/studio/
下载linux sdk
找到tools 执行 ./android update sdk
或./android update sdk --no-ui
上面的命令已经不建议使用了,用bin/sdkmanager --update
发现没有build-tools
进入bin下,发现sdkmanager
执行./sdkmanager "platforms;android-26"
相关sdkmanager命令可以查看https://developer.android.com/studio/command-line/sdkmanager
List installed and available packages
sdkmanager --list
Install packages
sdkmanager "platform-tools" "platforms;android-17" 具体值可以在--list中得到
"build-tools;28.0.3"
Update all installed packages
sdkmanager --update
安装好以后,执行生成apk会报错,找不到licenses 然后从windows安装的目录里找到licenses 文件夹copy过来就好了
3.指定gradle版本
build.gradle classpath 'com.android.tools.build:gradle:3.4.0' 修改版本 与studio版本有关
下载gradle http://services.gradle.org/distributions/
4.jenkins 自动打包、加固 app:clean app:assembleRelease
1.指定环境变量
系统设置-->环境变量 添加 ANDROID_SDK_ROOT /usr/local/android/sdk/android-sdk-linux
全局工具配置 gradle 指定安装目录
1.1 Git Parameter 插件 通过Git Parameter插件实现分支选择 name mbranch
在源码管理里的branchs to build 的 Branch Specifier 设置 mbranch 即可指定特定分支构建
2.下载android sdk 安装相关软件 ./android update sdk --no-ui
安装好以后,执行生成apk会报错,找不到licenses 然后从windows安装的目录里找到licenses 文件夹copy过来就好了
3.选项参数
BUILD_TYPE 【Release Debug】
4.构建 Invoke Gradle Script
tasks app:clean app:assembleRelease [app:assembleDebug app:assemble${BUILD_TYPE}]
Pass all job parameters as System properties 打勾
Force GRADLE_USER_HOME to use workspace 打勾
4.1 集成360加固 jiagu.sh
[https://www.jianshu.com/p/9e20cdc9e9a0](https://www.jianshu.com/p/9e20cdc9e9a0)
执行shell
/home/zyy/soft/360jiagu/jiagu/autogu.sh /home/zyy/soft/360jiagu/jiagu/keystore /home/zyy/soft/360jiagu/jiagu/markets.txt /home/zyy/.jenkins/workspace/android_release/app/build/outputs/apk/release/app-release.apk /apk/
5.构建后操作
归档成品 用于成档的文件 app/build/outputs/apk/release/*.apk [${BUILD_TYPE}]
选择【Achieve the artifacts】,填写build后生成的apk文件
选择【Set build description】,在description中填写二维码地址 description setter plugin 插件:Description Setter
jenkins设置支持html语法:
jenkins->系统管理->configure global security->Markup Formatter中选择"safe HTML"
5.上传fir 上传前一定要先实名认证,不然不会成功,也许是后面才加的吧
下载插件[http://blog.fir.im/jenkins/](http://blog.fir.im/jenkins/)
http://7xju1s.com1.z0.glb.clouddn.com/fir-plugin-1.9.5.hpi 系统管理- 管理插件- 高级 -上传插件
安装成功后 构建后操作 upload to fir.im
find app/build/outputs/apk -name "*.apk" -exec fir publish -T APItoken {} \;
[https://blog.csdn.net/lsyz0021/article/details/72683171](https://blog.csdn.net/lsyz0021/article/details/72683171)
但是有些插件在上面是搜不到的,例如fir-Plugin,那只能自己去下载fir-Plugin然后使用高级方法安装.
fir插件下载(插件修复文件)
新版fir-plugn
注意:新版本的fir插件默认要上传dysm file文件,旧版本的默认不上传,这里使用旧版本,不然会报错,如果报错换回旧版本就好了
Deployment failed : Prefix string too short
Build step 'Upload to fir.im' marked build as failure
下载插件后进入插件管理->高级选项,然后找到上传插件,选择已下载好的fir-plugin.hpi插件.并点击上传等待安装成功,https://www.jianshu.com/p/c0d69bfaf449
jiagu.sh
#!/bin/bash
rm -rf /test_app/apk/*
BASE_JAR=/home/****/jiagu.jar
JIA_GU_NAME=15000729088
JIA_GU_PSD=hi111111
echo "------ jiagu running! ------"
java -jar ${BASE_JAR} -version
java -jar ${BASE_JAR} -login ${JIA_GU_NAME} ${JIA_GU_PSD}
LOCAL_PATH=$1
echo "local.properties:${LOCAL_PATH}"
KEY_STORE=`cat ${LOCAL_PATH} |grep KEY_STORE= | awk -F= '{print $2}'`
KEY_STORE_PASSWORD=`cat ${LOCAL_PATH} |grep KEY_STORE_PASSWORD= | awk -F= '{print $2}'`
KEY_ALIAS=`cat ${LOCAL_PATH} |grep KEY_ALIAS= | awk -F= '{print $2}'`
KEY_ALIAS_PASSWORD=`cat ${LOCAL_PATH} |grep KEY_ALIAS_PASSWORD= | awk -F= '{print $2}'`
java -jar ${BASE_JAR} -importsign ${KEY_STORE} ${KEY_STORE_PASSWORD} ${KEY_ALIAS} ${KEY_ALIAS_PASSWORD}
MarktesFilePath=$2
echo ${MarktesFilePath}
java -jar ${BASE_JAR} -showsign
java -jar ${BASE_JAR} -importmulpkg ${MarktesFilePath}
java -jar ${BASE_JAR} -showmulpkg
BuildApkLine=$3
Build_JiaGu_Dir=$4
echo "BuildApkLine:${BuildApkLine}, Build_JiaGu_Dir=${Build_JiaGu_Dir}"
java -jar ${BASE_JAR} -jiagu $BuildApkLine $Build_JiaGu_Dir -autosign -automulpkg
echo "------ jiagu finished! ------"
---------------keystore file
KEY_STORE=/*****/***.jks
KEY_STORE_PASSWORD=****
KEY_ALIAS=key0
KEY_ALIAS_PASSWORD=*****
-----------markets.txt
UMENG_CHANNEL 360应用平台 1
UMENG_CHANNEL 谷歌市场 2
UMENG_CHANNEL 91手机商城 3
UMENG_CHANNEL 豌豆荚 4
UMENG_CHANNEL 安卓市场 5
安装fir-cil
wget https://cache.ruby-china.com/pub/ruby/2.3/ruby-2.3.8.tar.gz
yum -y install openssl-devel gcc
wget https://cache.ruby-china.com/pub/ruby/2.1/ruby-2.1.7.tar.gz
tar zxvf ruby-2.1.7.tar.gz -C /usr/local/
cd /usr/local/ruby-2.1.7
./configure --prefix=/usr/local/ruby2.1.7
make && make install
echo 'export PATH=/usr/local/ruby2.1.7/bin:$PATH'>>/etc/profile
source /etc/profile
# 安装rubygems工具
[https://rubygems.org/pages/download](https://rubygems.org/pages/download)
wget https://rubygems.org/rubygems/rubygems-3.0.3.tgz
tar zxvf rubygems-3.0.3.tgz -C /usr/local/
cd /usr/local/rubygems-3.0.3/
ruby setup.rb
#替换gem源
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem sources -l
#安装 fir-cli
gem install fir-cli
fir login XXX_YOUR_API_TOKEN_XXX
fir me
fir publish --token=**** app-release.apk
✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈
[https://github.com/FIRHQ/fir-cli](https://github.com/FIRHQ/fir-cli)
结果显示链接
https://www.jianshu.com/p/c0d69bfaf449
https://www.cnblogs.com/kaerxifa/p/11169613.html
https://www.jianshu.com/p/38b2e17ced73
构建后操作,添加Set build description
https://www.jianshu.com/p/915c1ae69144
https://www.jianshu.com/p/54b3b8b0fdde
Ubuntu搭建Jenkins+Android自动化打包
自动上传安装包到蒲公英分发平台
https://www.jianshu.com/p/66320819e0da
Android持续集成:Jenkins+Gradle+360加固+多渠道打包
Android打包那些事
https://www.jianshu.com/p/38b2e17ced73
https://blog.csdn.net/zgjswp/article/details/90726343
https://github.com/Meituan-Dianping/walle
https://www.jianshu.com/p/b99c1ee2ea3e
5.上传文件服务器
https://www.jianshu.com/p/4563cd8f95c4
6.自动上传到fir或者蒲公英等三方平台
https://www.jianshu.com/p/ff327e5053ae
https://www.jianshu.com/p/b99c1ee2ea3e
android 安装
https://github.com/inferjay/AndroidDevTools?utm_source=androiddevtools&utm_medium=website
https://www.androiddevtools.cn/
https://www.cnblogs.com/itlgl/p/10419227.html
https://www.jianshu.com/p/d25a95e3cc1e
ios
https://juejin.im/entry/5c63edde6fb9a049c43e2aa9
http://www.jintiankansha.me/t/kq4I427vxz
https://www.jianshu.com/p/836579dd4837
https://www.jianshu.com/p/c0d69bfaf449