cod*_*key 19
您应该能够指定要与这些属性一起使用的密钥库
key.store=/path/to/key.keystore
key.alias=alias
key.store.password=pass
key.alias.password=pass
Run Code Online (Sandbox Code Playgroud)
只需将属性传递给Ant即可.
[编辑]来自http://developer.android.com/guide/publishing/app-signing.html#setup上的文档
Android构建工具提供了一种调试签名模式,使您可以更轻松地开发和调试应用程序,同时仍满足Android系统对.apk签名的要求.使用调试模式构建应用程序时,SDK工具会调用Keytool来自动创建调试密钥库和密钥.然后,此调试密钥用于自动签署.apk,因此您无需使用自己的密钥对包进行签名.
SDK工具使用预定的名称/密码创建调试密钥库/密钥:
如有必要,您可以更改调试密钥库/密钥的位置/名称,或提供要使用的自定义调试密钥库/密钥.但是,任何自定义调试密钥库/密钥必须使用与默认调试密钥相同的密钥库/密钥名称和密码(如上所述).(要在Eclipse/ADT中执行此操作,请转到Windows>首选项> Android> Build.)
hea*_*kit 11
据我所知,为了做到这一点,你需要覆盖"-do-debug"目标.不过,我想知道是否有更优雅的方式.我把它添加到我的build.xml中
<property name="build.is.signing.debug" value="false"/>
<target name="-do-debug" depends="-set-debug-mode, -debug-obfuscation-check, -package, -post-package">
<!-- only create apk if *not* a library project -->
<do-only-if-not-library elseText="Library project: do not create apk..." >
<sequential>
<property name="out.unaligned.file" location="${out.absolute.dir}/${ant.project.name}-debug-unaligned.apk" />
<!-- Signs the APK -->
<echo>Signing final apk...</echo>
<signjar
jar="${out.packaged.file}"
signedjar="${out.unaligned.file}"
keystore="${key.store}"
storepass="${key.store.password}"
alias="${key.alias}"
keypass="${key.alias.password}"
verbose="${verbose}" />
<!-- Zip aligns the APK -->
<zipalign-helper
in.package="${out.unaligned.file}"
out.package="${out.final.file}" />
<echo>Debug Package: ${out.final.file}</echo>
</sequential>
</do-only-if-not-library>
<record-build-info />
</target>
<import file="${sdk.dir}/tools/ant/build.xml" />
Run Code Online (Sandbox Code Playgroud)
您可以删除最终 apk 的签名并重新签名。这只是一个调试版本,因此可以避免 zipalign (至少我的版本没有问题)。
将您的密钥库复制到项目中的文件 debug.keystore 并在 ant.properties 中添加以下内容
debug.key.store.password=android
debug.key.alias.password=android
debug.key.store=../debug.keystore
debug.key.alias=androiddebugkey
Run Code Online (Sandbox Code Playgroud)
并在 build.xml 中添加以下内容
<target name="-post-build" if="${build.is.packaging.debug}">
<!-- Remove the signature of the debug build, and sign it again with our own debug keystore -->
<delete dir="tmp" includeemptydirs="true" failonerror="false" />
<mkdir dir="tmp" />
<unzip src="${out.final.file}" dest="tmp" />
<delete dir="tmp/META-INF" includeemptydirs="true" verbose="true" failonerror="true" />
<delete file="${out.final.file}" failonerror="true" />
<zip destfile="${out.final.file}" basedir="tmp" />
<delete dir="tmp" includeemptydirs="true" failonerror="false" />
<echo level="info">Signing final DEBUG apk with a common signature...
signapk
input="${out.final.file}"
output="${out.packaged.file}"
keystore="${debug.key.store}"
storepass="${debug.key.store.password}"
alias="${debug.key.alias}"
keypass="${debug.key.alias.password}"
</echo>
<signapk
input="${out.final.file}"
output="${out.packaged.file}"
keystore="${debug.key.store}"
storepass="${debug.key.store.password}"
alias="${debug.key.alias}"
keypass="${debug.key.alias.password}"/>
<delete file="${out.final.file}" failonerror="true" />
<move file="${out.packaged.file}" tofile="${out.final.file}" failonerror="true" />
</target>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38810 次 |
| 最近记录: |