保护Apk文件

时间:2014-09-23 17:28:19

标签: android apk google-play

我为Android开发了一个应用程序,我想在Google Play上发布它。 我希望在发布之前将apk文件发送给其他人。

我的问题是,什么可以保护我的apk免受其他人自己发布?

我可以在调试中编译应用程序,所以google play除此之外没有。 我可以使用私钥在发布中编译应用程序,但是如果包名称从未 上传到谷歌播放,另一个开发者帐户可以上传它作为他的应用程序,他不能?

我理解的是,如果他没有密钥,私钥可以使用相同的包名保护其他人。但是什么保护apk不被上传,如果它当时没有上传?此外,对apk(签名或调试签名)进行逆向工程是否复杂,只需更改包名称即可。这样任何人都可以将任何应用程序发布为" new"一,在他的帐户中。

也许某人可以稍微清理一下。

提前谢谢

3 个答案:

答案 0 :(得分:1)

为了防止您的测试人员将您的apk上传到应用商店,您自己可以私下将其发布到Beta或Alpha阶段的Play商店。您可以控制谁可以查看和下载您的应用。别担心,你不是公开的。见Use alpha/beta testing & staged rollouts。现在,您可以在Playstore上使用该软件包名称,但仅对测试人员的可见性有限。

为了防止有人对您的应用进行逆向工程,更改包名称并在商店中重新发布,正如其他人所提到的那样,您可以对代码进行模糊处理,以使逆向工程更难。那里有很多工具。有些是免费的,有些是有偿的,但有更多的功能,如篡改抵抗等。有关详细信息,请参阅How to avoid reverse engineering of an APK file?问题。

答案 1 :(得分:-1)

基本上如果您的apk未签名,则无法将其部署到googlePlay。更多信息here

你可以用proguard混淆apk代码,这很难对你的apk进行逆向工程。

答案 2 :(得分:-1)

  

我可以在调试中编译应用程序,所以google play除了它之外没有。

确实如此,Play除了未签名的应用程序外没有。但是,逆向工程是一个问题。

  

我可以使用私钥在发布中编译应用程序,但如果是   包名从未上传到谷歌播放,另一位开发者   帐号可以上传为他的应用程序,不能吗?

这也是事实。没有你的密钥库,他无法更新它,但他可以在Google Play上传它。我发送测试时,我从不签署应用程序。

对我们来说幸运的是,有一个名为Proguard的工具会停止,或者至少让某人进行逆向工程变得非常困难。 Proguard做了很多很酷的事情,但重要的是它通过重命名每个类,方法,字段等来保护你的代码。所以如果你有一个类MyActivity有一个方法doSomething,我现在将(例如)类A方法B等。