• Mac下批量打包


    两种方式:

    第一种:有源码

    这种方式比较 简单。利用ant打包。
    直接shell脚本修改 配置渠道号的文件。
    我们目前是用的umeng的。在AndroidManifest.xml里。
    提供一个简单的修改渠道号的脚本。

    第二种:无源码

    由于我们用上了爱加密,所以也只能用这种方式了。
    由于现在我们的渠道较少,所以是采纳了apktool 的方式。
    第一步:反编译

    java -jar apktool.jar d com.hiwifi.hiwifi_20140801181424.apk
    

    第二步:修改渠道号

    sed -i .bak '145s/.*/<meta-data android:name="UMENG_CHANNEL" android:value="'${channel}'" />/'  tobuild/AndroidManifest.xml 
    

    第三步:重新编译

     java -jar apktool.jar b com.hiwifi.hiwifi_20140801181424 com.hiwifi.hiwifi_lenovo.apk
    

    我在重新编译时遇到如下错误:

    I: Checking whether sources has changed...
    I: Checking whether resources has changed...
    I: Building resources...
    Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 11, --target-sdk-version, 19, -F, /var/folders/7r/ghlhnsm56fn9d3zwwmznrh9w0000gn/T/APKTOOL4414016803544356394.tmp, -0, arsc, -I, /Users/shunpingliu/Library/apktool/framework/1.apk, -S, /Users/shunpingliu/GreenSoftware/apktool/com.hiwifi.hiwifi_20140801181424/res, -M, /Users/shunpingliu/GreenSoftware/apktool/com.hiwifi.hiwifi_20140801181424/AndroidManifest.xml]
    	at brut.androlib.Androlib.buildResourcesFull(Androlib.java:358)
    	at brut.androlib.Androlib.buildResources(Androlib.java:283)
    	at brut.androlib.Androlib.build(Androlib.java:206)
    	at brut.androlib.Androlib.build(Androlib.java:176)
    	at brut.apktool.Main.cmdBuild(Main.java:228)
    	at brut.apktool.Main.main(Main.java:79)
    Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 11, --target-sdk-version, 19, -F, /var/folders/7r/ghlhnsm56fn9d3zwwmznrh9w0000gn/T/APKTOOL4414016803544356394.tmp, -0, arsc, -I, /Users/shunpingliu/Library/apktool/framework/1.apk, -S, /Users/shunpingliu/GreenSoftware/apktool/com.hiwifi.hiwifi_20140801181424/res, -M, /Users/shunpingliu/GreenSoftware/apktool/com.hiwifi.hiwifi_20140801181424/AndroidManifest.xml]
    	at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:357)
    	at brut.androlib.Androlib.buildResourcesFull(Androlib.java:336)
    	... 5 more
    Caused by: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 11, --target-sdk-version, 19, -F, /var/folders/7r/ghlhnsm56fn9d3zwwmznrh9w0000gn/T/APKTOOL4414016803544356394.tmp, -0, arsc, -I, /Users/shunpingliu/Library/apktool/framework/1.apk, -S, /Users/shunpingliu/GreenSoftware/apktool/com.hiwifi.hiwifi_20140801181424/res, -M, /Users/shunpingliu/GreenSoftware/apktool/com.hiwifi.hiwifi_20140801181424/AndroidManifest.xml]
    	at brut.util.OS.exec(OS.java:93)
    	at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:355)
    	... 6 more
    Caused by: java.io.IOException: Cannot run program "aapt": error=2, No such file or directory
    	at java.lang.ProcessBuilder.processException(ProcessBuilder.java:478)
    	at java.lang.ProcessBuilder.start(ProcessBuilder.java:457)
    	at java.lang.Runtime.exec(Runtime.java:593)
    	at java.lang.Runtime.exec(Runtime.java:466)
    	at brut.util.OS.exec(OS.java:84)
    	... 7 more
    Caused by: java.io.IOException: error=2, No such file or directory
    	at java.lang.UNIXProcess.forkAndExec(Native Method)
    	at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
    	at java.lang.ProcessImpl.start(ProcessImpl.java:91)
    	at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
    	... 10 more
    

    解决办法:
    把aapt加到环境变量里去,这个命令在sdk中。
    我机器上代码如下: vim ~/.bash_profile 增加以下内容:(和各自的文件位置有关)

    export PATH="/Users/shunpingliu/GreenSoftware/adt-bundle-mac-x86_64-20140321    /sdk/build-tools/android-4.4.2:$PATH"
    

    然后使配置生效
    source .bash_profile
    完整版脚本参考附件。

    参考:

    附件

    天生我才必有用,千金散去还复来!
  • 相关阅读:
    HQueue_Install_In_Ubuntu
    win10_64_ssh连接linux
    win10防火墙服务灰色解决办法
    打开houdini软件的脚本
    houdini_license_sever start and off
    Java关于Object类中equal方法的理解
    Java关于Object类中equal方法的理解
    单源最短路径
    单源最短路径
    最小生成树
  • 原文地址:https://www.cnblogs.com/Jack-Lu/p/4383857.html
Copyright © 2020-2023  润新知