删除构建中不必要的 Android 权限
Removing unnecessary Android permissions in builds
我已经使用 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 上出现相当令人不安的权限对话框,因为此应用程序绝对不需要 reading/writing [到]外部存储。
我在 tiapp.xml
中设置了 <analytics>false</analytics>
,并在应用程序的平台目录中手动创建了另一个 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.
从 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
我已经使用 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 上出现相当令人不安的权限对话框,因为此应用程序绝对不需要 reading/writing [到]外部存储。
我在 tiapp.xml
中设置了 <analytics>false</analytics>
,并在应用程序的平台目录中手动创建了另一个 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.
从 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