美文网首页
实战fir脚本打APK包

实战fir脚本打APK包

作者: tom510230 | 来源:发表于2016-03-07 02:41 被阅读203次

    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包

          本文链接:https://www.haomeiwen.com/subject/onvakttx.html