私のビルドシステムでは、いくつかのアプリケーションバリエーションをビルドする必要があり、それぞれ異なるパーミッションセットを要求します。別のスクリプトを呼び出さずに、Gradleでこれをどのように行うことができますか?Gradle:Androidマニフェストの権限をカスタマイズするにはどうすればよいですか?
31
A
答えて
58
私はちょうど私のGradleファイルに異なる味を持っていることによって、これを行うために管理:
free {
packageName 'com.sample.free'
buildConfigField "boolean", "HAS_AD", "true"
}
paid {
packageName 'com.sample.paid'
buildConfigField "boolean", "HAS_AD", "false"
}
、その後、私は「RES」
というフォルダを「自由」と呼ばれるSRCの下に新しいフォルダを作成し、その下に
src/
+ free/
| + res/
+ src/
、そのフォルダ内に、次のコードを使用して新しいファイル「のAndroidManifest.xml」を作成:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
を
Androidのツールプロジェクトサイト上Gradle Plugin User Guideによると:
タイプの構築と同様に、製品のフレーバーは、独自のsourceSetsを通じてコードと 資源に貢献。使用されている
- すべてのソースコード(SRC/*/javaの):
、すべてのsourcesetsを扱うとき
は、次の規則が使用されているが、単一のAPKを構築するために を使用しました単一の出力を生成する複数のフォルダとしてまとめられます。
マニフェストはすべて1つのマニフェストにまとめられます。これにより、ビルドタイプと同様に、Product Flavorsに異なるコンポーネントおよび/または パーミッションが付与されます。 すべてのリソース(Androidのresとアセット)は、オーバーレイの優先度を使用して使用されます。この場合、ビルドタイプはProduct Flavorをオーバーライドします。 はメインのsourceSetをオーバーライドします。 各ビルドバリアントは、リソースから独自のRクラス(またはその他の生成されたソースコード)を生成します。 のバリアントは何も共有されていません。
srcの下に各フレーバ名のフォルダを作成してカスタムファイルを置くことができるという意味です。上記のファイルがAndroidManifestのgradleの場合、メインファイルのマニフェストとマージされます。
関連する問題
- 1. アプリフレーバに基づいてマニフェストの権限を変更するにはどうすればよいですか?
- 2. ブラウザでプッシュ通知の権限リクエストポップアップをカスタマイズするにはどうすればよいですか?
- 3. Team System Web Accessの権限を適切に制限するにはどうすればよいですか?
- 4. 「LOAD FROM INFILE」という権限をデータベースに追加するにはどうすればよいですか?
- 5. Android用FirebaseUIによるFacebookログイン - publish_actions権限を取得するにはどうすればよいですか?
- 6. 高い権限でWiXからngenを実行するにはどうすればよいですか?
- 7. ユーザー権限のないBluetoothデバイスにテキストファイルを送信するにはどうすればよいですか?
- 8. Googleスプレッドシートの行を削除する権限を取得するにはどうすればよいですか?
- 9. 出力をブラウザにフラッシュする権限を変更するにはどうすればよいですか?
- 10. プログラムでAmazon S3の権限をbotoで確認するにはどうすればよいですか?
- 11. SalesforceでオブジェクトのユーザーのCRUD権限を確認するにはどうすればよいですか?
- 12. spring3コントローラメソッドでユーザーの現在の権限を確認するにはどうすればよいですか?
- 13. Androidのカメラ権限でこのエラーを解決するにはどうすればよいですか?
- 14. 反応するネイティブプロジェクトで権限モジュールをインポートするにはどうすればよいですか?
- 15. ユーザー権限に基づいてレコードを照会するにはどうすればよいですか?
- 16. Facebookの開発者からuser_likes権限を取得するにはどうすればよいですか?
- 17. Facebookのアプリケーションからmanage_pages権限を取得するにはどうすればよいですか?
- 18. Storableでデフォルトのファイル権限を変更するにはどうすればよいですか?
- 19. データベースのオーバーヘッドなしで権限を確認するにはどうすればよいですか?
- 20. SELECT権限なしで特定のレコードを更新するにはどうすればよいですか?
- 21. WCFで自分の権限を使用するにはどうすればよいですか?
- 22. ウェブアプリでhtml5ジオロケーションAPIのユーザー権限をリクエストするにはどうすればよいですか?
- 23. Androidでアプリケーションの権限を確認するにはどうすればよいですか?
- 24. アンドロイドに複数の権限を追加するにはどうすればよいですか?
- 25. アンドロイドの外部ライブラリに権限を追加するにはどうすればよいですか?
- 26. 階層クラスの権限クラスをPersonクラスに格納するにはどうすればよいですか?
- 27. 特定のFacebookページにmanage_pages権限を設定するにはどうすればよいですか?
- 28. Midnight Commanderでファイル権限を再帰的に変更するにはどうすればよいですか?
- 29. Android Marshmallowで実行時にCLEAR_APP_CACHE権限を取得するにはどうすればよいですか?
- 30. エクスプレスアプリで特権をユーザに制限するにはどうすればよいですか?