[Android] mac上申请签名及使用ant自动编译打包签名APK

原创文章转载请保留出处 http://blog.csdn.net/s278777851/article/details/9053985

一、mac上申请android签名

  1. cd ~/Android-sdk(进入android sdk目录)
  2. keytool -genseckey -v -keystore android-release-key.keystore(可改) -alias androidreleasekey(可改)  -keyalg RSA --validity 10000(有效时间,可改)
二、ant自动编译打包apk

1. 安装ant,下载地址 http://ant.apache.org/ ,

配置环境变量,把ant的bin目录加入 path即可。

export ANT_HOME=/Users/XXXXX/software/ant/apache-ant-1.9.1
export PATH=${PATH}:${ANT_HOME}/bin

命令行输入 ant -version查看ant版本,如果版本是mac自带的旧版本,右键Finder前往 /usr/share, 找到ant目录,重名成 ant_bak即可。


2.获取ant的build文件

控制台进入android-sdk/tools 目录, 

./android update project --name projectName(项目名称) -t 5 -p /Users/xxxxx/Documents/workspace/projectName (项目本地路径)

执行后项目文件夹会有一个build.xml等文件。

在项目目录下新建ant.properties文件。内容为,

key.store=xxxx.keystore

key.alias=xxxxx

key.store.password=xxxxx

key.alias.password=xxxxx


3. 编译打包

控制台进入项目目录, 运行ant release(debug使用ant debug), 编译好以后生成的apk会放在bin目录里面

如果有使用lib项目, 把build.xml复制到lib项目去,修改下对应的project name即可。


4. 同时打包多个渠道

在ant.properties 文件末尾加上 market_channels=MMMarket,GFan,AppChina,91Assistant,NDuo,3G,MuMaYi,MyApp

在build.xml 文件的末尾加上

<property  name="out.unaligned.dir"  value="bin/${ant.project.name}_release"/>
	<property name="xml.temp.folder" value="bin/temp"></property>

    <mkdir dir="${out.unaligned.dir}" />

    <target name="modify_update_file" >
        <echo>*********************** make channel ${channel}</echo>
        <replaceregexp
            byline="false"
            encoding="utf-8"
            file="AndroidManifest.xml"
            match="channel_value"
            replace="${channel}" />

        <property  name="out.unaligned.file" location="${out.unaligned.dir}/${ant.project.name}_release_${channel}.apk" />
    </target>

    <target name="make_one_channels" depends="savemanifest, modify_update_file, release, replacemanifest, delete_temp_folder"
        description="description" >
    </target>

    <target name="replacemanifest" >
        <echo>*********************** replacemanifest</echo>
        <delete file="${basedir}\AndroidManifest.xml" />
        <copy encoding="utf-8"  file="${xml.temp.folder}\AndroidManifest.xml"
            todir="${basedir}" />
    </target>

    <target name="savemanifest" >
        <echo>*********************** savemanifest</echo>
        <copy encoding="utf-8" file="${basedir}\AndroidManifest.xml" todir="${xml.temp.folder}" />
    </target>

    <target name="deletebin" >
        <delete dir="${basedir}\bin" />
    </target>

    <target name="delete_temp_folder">
        <delete dir="${xml.temp.folder}"></delete>
    </target>

    <taskdef name="foreach" classname="net.sf.antcontrib.logic.ForEach" classpath="libs\ant-contrib-1.0b3.jar" />

    <target name="make_channels" >
        <foreach delimiter="," list="${market_channels}"  param="channel" target="make_one_channels" ></foreach>
    </target>

添加支持ant循环的jar包ant-contrib,下载连接 http://pan.baidu.com/share/link?shareid=3559837426&uk=2201015946

运行 ant make_channels.


参考文档:http://developer.android.com/tools/building/building-cmdline.html#ReleaseMode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值