0

我使用构造 2 来构建我的应用程序,然后将它们导出到 CocoonJS,然后将它们编译为原生应用程序。我下载了一个未签名的 .apk 文件,对其进行签名,然后将其上传到 Google Play。这些应用程序运行良好,就像它们是原生编写的一样。

当我使用 CocoonJS 编译我的应用程序时,它需要我的应用程序不需要的所有这些权限。如何删除不需要的权限?

4

2 回答 2

1

在 Ludei 在他们的云编译器上实现可选权限之前,我们必须做一些“黑客”来自己解决问题。

获取附加的 apktool.zip,将其解压缩到文件夹 C:\Android(以便以后更容易)。 https://static3.scirra.net/uploads/articles/1071/apktool.zip

将您发布的 CJS 编译的 game.apk(从这里,将该 APK 文件称为 game.apk)复制到 C:\Android 中,使其与提取的 apktool 文件位于同一文件夹中。

按住 SHIFT 键的同时右键单击该文件夹中的某个位置,在 C:\Android 中打开命令提示符。

首先,我们需要安装我们CJS编译的game.apk的框架,输入:

apktool 如果是 game.apk

它是即时的,反馈说它安装在位置 127 或附近。现在我们必须反编译 APK,输入:

apktool d game.apk 游戏

这需要一段时间,具体取决于您的游戏大小和 PC 的速度,但是您的 game.apk 的所有内容都将被反编译并存储在与您的 game.apk 同名的子文件夹中,即。游戏。注意,如果您使用不同版本的 apktool,您可能需要将标志更改为: apktool d game.apk -o game 以便正确反编译。

浏览新的游戏子文件夹,您将看到所有内容。我们要的是AndroidManifest.xml,用Notepad++打开

高分辨率版本:halfgeekstudios.files.wordpress.com/2014/07/androidmanifest.jpg 通过删除灰色突出显示的行来删除权限!

ACCESS_NETWORK_STATE & INTERNET 权限是必需的,如果你删除它,你的游戏很可能在启动时崩溃。即使您没有广告、IAP 或社交插件也是如此。CJS 需要这些,因为它有一些需要它的内置分析。如果您实施 IAP,也需要 BILLING。有趣的是,谷歌已经决定,这三个上述权限现在将被认为是正常的,当游戏只有这三个时,它们不会警告用户,只有当它包含其他权限时!

在这里,我想指出这一行:

您可以通过将游戏设置为 false 来编辑您的游戏以在手机或平板电脑上运行。如果您设置 smallScreens & normalScreens ="false",则游戏仅与平板电脑兼容,反之亦然(我已在自己的游戏中对此进行了测试)。如果您将目标设计为平板电脑并且不想一次手动过滤超过 6,400 台设备,这将非常方便。:D

更改完成后,保存。返回命令提示符,输入以下内容以将其重新编译为新的 APK:

apktool b 游戏 game_new.apk

需要一段时间,但您会得到修改后的 game_new.apk。现在您需要在上传到 Google Play 之前进行正常的签名和 zip 对齐。

https://www.scirra.com/tutorials/1071/removing-permissions-from-cocoonjs-compiled-apk

于 2014-12-23T15:12:13.653 回答
0

您无法删除它。尝试其他工具,例如 Phonegap。电话间隙

于 2014-03-08T09:00:14.117 回答