实战fir脚本打APK包

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

你可能感兴趣的:(实战fir脚本打APK包)