fir打包
使用fir打包APK的命令相对简单,一般如下使用即可
fir build_apk -o ./
在运行的时候会调用gradlew脚本,然后会运行一堆的检查后再打包,这个时候就看你的代码写的是否健壮了,如果不健壮的话会报一堆的错误,按照提示一个个修改即可。
比较棘手的InvalidPackage错误
按照网上的提示,在project目录下创建lint.xml无效。上github搜索了一番,找到了答案。仔细观察gradle给出的提示,如
:app:lint
这个的意思是,他在做app命名空间下的lint操作,所以这个时候lint.xml应该添加到app目录下
顺带一提,在lintOptions中用
lintOptions { warning 'InvalidPackage' }
尝试将InvalidPackage的级别降低是无效的,查找google的官方文档也并未给出该接口,可能已经废弃掉了。
比较诡异的javadocs错误
在项目中有很多时候会用到第三方的源码,如果项目成员既用pc又用mac的话,那就有概率会出现文件编码不是utf8的问题,这个时候可以在gradle文件里面找到
task androidJavadocs
在里面添加
failOnError false
绕过这个问题
关于签名
用惯AS的同学,签名可能是通过AS管理的,这样新建项目时,并不会把codesign写进gradle里面,这样CI平台打出来的包实际上是无签名的包,比较不方便。如果要添加对APK进行签名,可以在gradle文件里面显式写上,或者通过工具签名。个人认为显式写上签名的信息问题不大,毕竟还需要配合key签名文件才能生成合法的签名
gradle文件
// 创建一个证书,并配置
signingConfigs {
release { storeFile file("app_release.jks")
storePassword "n7yJipUzL3XQ"
keyAlias "coding"
keyPassword "n7yJipUzL3XQ"
}
}
buildTypes {
release {
...
//需要使用正式证书签名,才能发布到fir.im
signingConfig signingConfigs.release
}
}
参考资料
http://stackoverflow.com/questions/16184109/using-twitter4j-in-android-getting-lint-error-in-library-invalid-package-refe
http://stackoverflow.com/questions/21827004/gradle-dagger-lint-ignore-by-package
https://github.com/chrisbanes/gradle-mvn-push/issues/9
http://www.jianshu.com/p/30472053dd3c
https://segmentfault.com/a/1190000004537110