2013-05-30 26 views
0

我有权访问我正在测试的应用程序(myApp)的代码,并且我有一套测试(myTest)。当我运行我的测试时,Eclipse编译并安装myApp和myTest,并且所有测试运行良好。到现在为止还挺好。现在我也希望能够针对myApp的apk执行这些测试,并且由于签名问题而无法执行此操作。使用android调试密钥库对Robotium进行签名的问题

据我所知,解决方案是用Android调试密钥库的签名重新签名myApp.apk,这样myTest.apk和myApp.apk将具有相同的签名。 Renas'Robotium tutorial关于这个问题推荐了一个工具来做到这一点,re-sign.jar。这个工具似乎工作,我可以安装并运行生成的apk文件,但它不会与myTest具有相同的签名。换句话说,当我运行myTest(在Eclipse中调试,或从命令行)时,我得到错误抱怨测试失败,因为myApp和myTest没有相同的签名。

如果我使用re-sign.jar重新签署myApp.apk和myTest.apk,我可以解决此问题。 (尽管这不是解决方案,因为我无法调试,只能从命令行运行测试,而且它很丑)。我不明白为什么应该这样 - 因为myTest.apk是在我运行测试时自动创建的eclipse,它应该已经使用调试密钥库进行了签名,并且re-sign.jar应该重新应用相同的签名,对吧?

也许该工具已过时或损坏。那么,Renas'教程还包括步骤重新签署手动罐子,就像这样:

jarsigner -keystore c:\androiddev\.android\debug.keystore 
    -storepass android -keypass android C:\blah\myApp.apk androiddebugkey 
zipalign 4 C:\blah\myApp.apk C:\blah\myApp2.apk 

这SEMS工作,而事后,运行‘的jarsigner -verify’返回‘罐子验证’。然而,由此产生的apk不会安装:

C:\blah>adb install myApp.apk 
    3739 KB/s (1922522 bytes in 0.502s) 
    pkg: /data/local/tmp/myApp.apk 
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 

谁能告诉我这里发生了什么? Stack还有一些关于“我如何在apk上使用Robotium”的其他问题,答案是我之前链接到的教程,但是在该教程中列出的两种apk签名方法都失败了。

回答

0

的问题是由具有安装的Java 7和使用的Java 6,说明我能够签署的APK,并添加这些PARAMS后安装它造成的:-sigalg MD5withRSA -digestalg SHA1 工作命令:

jarsigner -keystore c:\androiddev\.android\debug.keystore 
    -storepass android -keypass android C:\blah\myApp.apk androiddebugkey 
    -sigalg MD5withRSA -digestalg SHA1  
zipalign 4 C:\blah\myApp.apk C:\blah\myApp2.apk 
相关问题