如何在硬件设备上测试签名应用程序(apk)?

时间:2011-04-14 16:08:34

标签: android testing

我现在正在做以下事情:

  • 从Eclipse导出应用程序
  • 将设备连接类型更改为USB
  • 手动将其复制到设备
  • 将设备连接类型更改为“同步”
  • 在设备上手动安装

有没有办法创建Eclipse Debug配置(或其他东西)来自动完成它?

我需要测试设备和文件应该签名,因为我正在测试应用内购买功能。

2 个答案:

答案 0 :(得分:6)

您可以使用ant进行构建,它将自动执行整个构建过程(也可以用于发布)。

默认配置也包含安装目标,但我相信这会安装调试apk。

编辑:您可以通过adb安装apk:

adb install <apk>

答案 1 :(得分:3)

问题的第一部分:

http://developer.android.com/guide/developing/building/building-eclipse.html

  

自动和手动目标模式

     

默认情况下,运行配置使用   自动目标模式以便   选择一个AVD。在这种模式下,ADT会   为应用程序选择AVD   以下方式:

     

1)如果已经运行了设备或仿真器及其AVD   配置符合要求   应用程序的构建目标,   应用程序已安装并运行   它

     

2)如果有多个设备或仿真器正在运行,则每个设备或仿真器都会运行   构建目标的要求,   显示“设备选择器”让你   选择要使用的设备。

     

3)如果没有运行的设备或模拟器满足   ADT构建目标的要求   看看可用的AVD。如果有   是一个匹配构建的AVD   ADT选择的项目目标   AVD。如果AVD版本是   比构建目标更新   项目,ADT选择最老的   可能满足的AVD版本   项目的构建目标   要求。

     

4)如果没有合适的AVD,则应用程序未安装控制台   错误警告告诉你有   没有符合构建的现有AVD   目标要求。

     

但是,如果是“首选AVD”   在运行配置中选择,   然后应用程序将永远   部署到那个AVD。如果不是   已经运行,然后是一个新的模拟器   将推出。

     

如果您的运行配置使用手动   模式,然后“设备选择器”是   每次出现你的   运行应用程序,以便您可以   选择要使用的AVD。

第二部分,

http://developer.android.com/guide/publishing/app-signing.html#ExportWizard

使用Eclipse ADT编译和签名

  

如果您将Eclipse与ADT一起使用   插件,您可以使用导出向导   导出已签名的.apk(甚至是   如有必要,创建一个新的密钥库。   导出向导执行所有操作   与Keytool和。的互动   Jarsigner for you,它允许你   使用GUI签名包   执行手动程序   如所讨论的那样编译,签名和对齐   以上。一旦向导编译完毕   并签署了您的包裹,它也将   perfom包对齐   的zipalign。因为导出向导   你使用Keytool和Jarsigner   应该确保它们是可访问的   在您的计算机上,如上所述   在签名的基本设置中。

     

创建已签名且对齐的.apk   蚀:

     

1)在Package Explorer中选择项目,然后选择文件&gt;导出

     

2)打开Android文件夹,选择Export Android Application,然后单击   下一步

     

3)现在启动“导出Android应用程序”向导,这将指导   你通过签署的过程   您的申请,包括步骤   选择用于的私钥   签署.apk(或创建一个新的.apk)   密钥库和私钥)。       完成导出向导,您的应用程序将被编译,   签名,对齐,准备好了   分布。

     

如果这还不够,那么选项是用ant构建它。 请看这里的一些想法(正如我在评论中所说,我没有经验):

http://developer.android.com/guide/developing/projects/projects-cmdline.html

Eclipse Android app: Run signed with real certificate

Android Ant project reference

http://www.alittlemadness.com/2010/05/31/setting-up-an-android-project-build/