存在这样的问题:
1) 我必须使用我们的分发服务为测试人员提供新的应用程序构建(无法使用 HockeyApp 等)
2) 我想为每个测试人员提供唯一的 APK 文件。但是我不可能为每个新构建的应用程序编译约 3000 个 APK 文件。
所以我想在不重新编译的情况下向 APK 文件添加某种 ID。
(我需要它来识别,如果某些用户会在未经我许可的情况下在网络上的某个地方共享此 APK 文件)
例子:
用户从我的网站下载 .apk 文件 => 将其上传到某个论坛/网站 => 我看到,有人在网络上分享了我的应用程序 => 我从那个论坛/网站下载 apk => 我确定谁分享了它(通过 apk 的唯一 ID)
最佳答案
这并不容易,因为您的 APK 的所有文件都被签名覆盖,因此您添加的任何内容都必须在其他地方。
您可以尝试修改 APK 的 zip 注释(如果您能找到允许您这样做的库 -- 也许是“apkzlib”),我不确定签名是否涵盖了这部分内容。
或者,您可以尝试向 APK 添加一个未在 zip 中央目录中引用的文件(在某种程度上是“幽灵文件”,对于大多数 zip 工具来说它不存在),也许签名不存在涵盖那些,但我还没有验证。此解决方案还需要对 zip 格式有很好的了解才能实现。
另请注意,如果可以在不触及签名的情况下完成此操作,那么也可以在不触及签名的情况下将其删除...因此,如果您的测试人员之一发现了这一点,他们可以将其删除。但我想这并不是一件容易的事,所以无论如何这可能就足够了。
关于android - 无需编译即可制作具有唯一ID的APK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54099362/