IONIC Capacitor 删除 iOS & Android 中不必要的权限
IONIC Capacitor Remove the unnecessary permissions in iOS & Android
当我使用 Ionic Capacitor 创建项目时,iOS (info.plist) 和 Android(AndroidManifes.xml) 自动拥有一些默认权限:
AndroidManifes.xml 权限:
<!-- Permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Camera, Photos, input file -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Geolocation API -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />
<!-- Network API -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Navigator.getUserMedia -->
<!-- Video -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- Audio -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
Info.plist 权限:
<key>NSCameraUsageDescription</key>
<string>To Take Photos and Video</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Always allow Geolocation?</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Allow Geolocation?</string>
<key>NSMicrophoneUsageDescription</key>
<string>To Record Audio With Video</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Store camera photos to camera</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>To Pick Photos from Library</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
假设我的应用不需要相机访问权限,如果我从 AndroidManifest.xml 中删除它,我的应用会成功构建并在未经该许可的情况下发布在 PlayStore 中,但如果我从 [=31= 中删除任何内容] 通过 xCode 上传后,我收到电子邮件通知我应该添加刚刚删除的权限。
正确的做法是什么,我应该更改 iOS 中的其他文件吗?
在 iOS 上,它们不是许可,它们是使用说明。
使用说明是附加文本,用于解释为什么您的应用在请求权限时需要权限。
由于 Capacitor 提供了所有核心插件并且其中一些插件需要权限,Apple 代码扫描程序会检测代码并警告您确保您没有忘记它们。这只是一个警告,你不用担心,而且,把它们留在那里也没有坏处。
另一方面,在 Android 上,您可以删除不使用的权限。
当我使用 Ionic Capacitor 创建项目时,iOS (info.plist) 和 Android(AndroidManifes.xml) 自动拥有一些默认权限:
AndroidManifes.xml 权限:
<!-- Permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Camera, Photos, input file -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Geolocation API -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />
<!-- Network API -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Navigator.getUserMedia -->
<!-- Video -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- Audio -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
Info.plist 权限:
<key>NSCameraUsageDescription</key>
<string>To Take Photos and Video</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Always allow Geolocation?</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Allow Geolocation?</string>
<key>NSMicrophoneUsageDescription</key>
<string>To Record Audio With Video</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Store camera photos to camera</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>To Pick Photos from Library</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
假设我的应用不需要相机访问权限,如果我从 AndroidManifest.xml 中删除它,我的应用会成功构建并在未经该许可的情况下发布在 PlayStore 中,但如果我从 [=31= 中删除任何内容] 通过 xCode 上传后,我收到电子邮件通知我应该添加刚刚删除的权限。
正确的做法是什么,我应该更改 iOS 中的其他文件吗?
在 iOS 上,它们不是许可,它们是使用说明。
使用说明是附加文本,用于解释为什么您的应用在请求权限时需要权限。
由于 Capacitor 提供了所有核心插件并且其中一些插件需要权限,Apple 代码扫描程序会检测代码并警告您确保您没有忘记它们。这只是一个警告,你不用担心,而且,把它们留在那里也没有坏处。
另一方面,在 Android 上,您可以删除不使用的权限。