通过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>
然后在我的 -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>
这将创建我的可调试 apk,当我使用“ant set-debuggable release”时,它使用我的发布密钥签名。然后我使用“adb install -r myApp-release.apk”重新安装新版本。然后我可以启动并附加到正在运行的应用程序以通过应用内购买进行调试。
似乎 IntelliJ Idea 和 Eclipse 都在系统某处使用自签名调试密钥来从 IDE 构建和部署调试 apk。
事后看来,我可能已经能够用我的发布密钥替换 IDE 创建的调试密钥,并尝试让构建使用该密钥签名(并找到使用密钥的密码)但上面的构建过程花了我很少的时间是时候设置和开始使用了。如果有人朝这个方向发展并让它发挥作用,请在我的回答中添加评论。