Jef*_*eff 11 ant android intellij-idea
我正在尝试在我的应用中测试应用内结算.我在Play商店中设置了计费和产品ID,但为了测试一个事务,我需要使用我的发布密钥库来签署我的应用程序,否则它将失败.
我正在使用IntelliJ Idea(Ver.11 CE),并且无法弄清楚如何配置项目以使用调试集进行构建,并在部署到我的设备之前使用我的发布密钥库进行签名.
我看到我可以为配置设置一个ant目标,我假设这是要走的路,但是因为我的build.xml导入了Android SDK /tools/ant/build.xml,所以没有任何目标可供选择.
要调试我只需要在清单中启用set android:debuggable ="true"吗?任何人都有一个蚂蚁目标的建议,可以做我需要的东西吗?我可以添加到build.xml中的一个?
通过Ixx中正确方向的指针,我最终设置了 android:debuggable="true" 并使用命令行来构建和部署。然后附加到正在运行的进程进行调试。
我的应用程序设置为在命令行中使用 ant build.xml 文件进行构建,该文件导入 androidSDK/tools/ant/build.xml 和一个支持的 build.properties 文件。我发现当我设置 android:debuggable="true" 然后执行“ant release”时,构建过程将创建一个可调试的 apk 并使用发布密钥对其进行签名。
我在 build.xml 文件中创建了一个目标,我可以为这种情况设置一个名为 set-debuggable 的目标
<target name="set-debuggable" description="sets internal named property">
<echo>Setting internal named property...</echo>
<property name="set.debuggable" value="true" />
</target>
Run Code Online (Sandbox Code Playgroud)
然后在我的 -pre-build 目标中添加
<if>
<condition>
<isset property="set.debuggable"/>
</condition>
<then>
<replaceregexp
file="AndroidManifest.xml"
match="(android:debuggable=").*(")"
replace="\1true\2"/>
</then>
<else>
<replaceregexp
file="AndroidManifest.xml"
match="(android:debuggable=").*(")"
replace="\1false\2"/>
</else>
</if>
Run Code Online (Sandbox Code Playgroud)
当我使用“ant set-debuggable release”时,这将创建我的可调试 apk,该 apk 是用我的发布密钥签名的。然后我使用“adb install -r myApp-release.apk”重新安装新版本。然后,我可以启动并附加到正在运行的应用程序,以便通过应用内购买进行调试。
看来 IntelliJ Idea 和 Eclipse 都使用系统上某处的自签名调试密钥来从 IDE 构建和部署调试 apk。
事后看来,我可能能够用我的发布密钥替换 IDE 创建的调试密钥,并尝试使用该密钥进行构建签名(并找到使用该密钥的密码),但上面的构建过程花了我很少的时间设置并开始使用的时间。如果有人朝着这个方向前进并让它发挥作用,请在我的答案中添加评论。
| 归档时间: |
|
| 查看次数: |
5148 次 |
| 最近记录: |