【React Native】文件翻譯閱讀紀錄 - 指南(Android) - 刪除默認權限
Facebook Open Source React Native |
刪除默認權限
默認情況下,您的 Android APK 會添加一些權限。
添加的默認權限是:
- android.permission.INTERNET - 調試模式所必需的。
- android.permission.SYSTEM_ALERT_WINDOW - 調試模式所必需的。
- android.permission.READ_PHONE_STATE - 調試或生產不需要。
- android.permission.WRITE_EXTERNAL_STORAGE - 調試或生產不需要。
- android.permission.READ_EXTERNAL_STORAGE - 調試或生產不需要。
- 讓我們從生產和調試 APK 中刪除 READ_PHONE_STATE,WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE 開始,因為它們中都不需要。如果正在使用 AsyncStorage 模塊,則仍然不需要這些存儲權限,因此可以安全地從生產和調試中刪除。
- 打開你的
android/app/src/main/AndroidManifest.xml
文件. - 即使清單中未列出這三個權限,它們也會被添加。我們使用工具添加三個權限:node =“remove”屬性,以確保在構建期間刪除它們。請注意,包標識符將不同,因為下面是“com.myapp”,因為該項目是使用 react-native init myapp 創建的。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myappid" + xmlns:tools="http://schemas.android.com/tools" > <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> + <uses-permission tools:node="remove" android:name="android.permission.READ_PHONE_STATE" /> + <uses-permission tools:node="remove" android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> + <uses-permission tools:node="remove" android:name="android.permission.READ_EXTERNAL_STORAGE" /> <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:allowBackup="false" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:windowSoftInputMode="adjustResize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> </application> </manifest>
- 現在讓我們從生產APK中刪除
SYSTEM_ALERT_WINDOW
- 轉到
android/app/src/
錄。在此目錄中創建一個名為release的新目錄。 (路徑:android/app/src/release/
) - 在這個
android/app/src/release/
目錄裡面創建一個AndroidManifest.xml
文件. (路徑:android/app/src/release/AndroidManifest.xml
) - 在此文件中粘貼以下內容。請注意,請確保將您的包標識符從“com.myapp”更新為您的包標識符。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myapp" xmlns:tools="http://schemas.android.com/tools"> <uses-permission tools:node="remove" android:name="android.permission.SYSTEM_ALERT_WINDOW" /> </manifest>
就是這樣。我們沒有刪除INTERNET權限,因為幾乎所有應用都使用它。現在,無論何時創建生產APK,所有這4個權限都將被刪除。當您創建調試APK(react-native run-android)時,它將安裝僅刪除了三個權限的APK,並且SYSTEM_ALERT_WINDOW將保留。
0 意見