我使用Axway Appcelerator Titanium开发了一个跨平台应用程序,但是在为Android构建时,会在AndroidManifest.xml
文件中添加许多不必要或未使用的权限。以下示例来自Google Play版本的所述文件:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我要求的唯一权限是android.permission.INTERNET
,但是其他权限在安装时会在Google Play上产生相当令人不安的权限对话框,因为此应用程序绝对不需要读/写外部存储。
我在<analytics>false</analytics>
中设置了tiapp.xml
,并在应用的平台目录中手动创建了另一个AndroidManifest.xml
文件,但不包括这些权限,但所有版本仍包含它们。构建一个新的示例Alloy项目也会导致包含上述四个依赖项。
有没有办法解决这些不需要的依赖项的问题?
我在macOS 10.13上使用Android API 26,Ti SDK 6.2.2GA和Axway Appcelerator Studio,并且还尝试了Ti SDK 6.1.1GA和Android API 23.
答案 0 :(得分:1)
从6.1.0开始,您可以在tiapp.xml中设置<override-permissions>true</override-permissions>
以删除所有内置权限。
<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest android:versionCode="1" android:versionName="1.0">
<application></application>
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
<abi>armeabi-v7a</abi>
</android>
有关更多信息,请参阅PR:https://github.com/appcelerator/titanium_mobile/pull/8881