我使用构造2构建我的应用程序,然后将它们导出到CocoonJS,然后将它们编译为本机应用程序。我下载了一个未签名的.apk文件,签名然后将其上传到Google Play。应用程序运行良好,就像它们是本地编写的一样。
当我使用CocoonJS编译我的应用程序时,它需要我的应用程序不需要的所有这些权限。如何删除不需要的权限?
答案 0 :(得分: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 if 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 game_new.apk
需要一段时间,但你会得到你修改过的game_new.apk。现在,您需要在上传到Google Play之前继续进行正常签名和zip对齐。
https://www.scirra.com/tutorials/1071/removing-permissions-from-cocoonjs-compiled-apk
答案 1 :(得分:0)
您无法将其删除。尝试其他工具,如Phonegap。 phonegap