Privacy Manifest対応するために必要な事
- Flutter 3.19対応
- Deprecated imperative apply of Flutter's Gradle plugins
- Gradle周りの書き方を変更する必要があります
- Deprecated imperative apply of Flutter's Gradle plugins
- 各種ライブラリアップデート
- だいたい最新のverにあげないといけないです
- Android APIレベル 34 対応
- 一部SDKで求められます
- 合わせてJava17対応も必要です
- AndroidStudioはいい感じにしてくれるがCI(Bitrise)は対応必要
- FlutterのiOSプロジェクト自体のPrivacyManifest対応をする
- 対応内容に関しては審査提出時のメールに記載の内容を確認する
Flutter 3.19対応
※3.19.3にアプデしたものを元に書いています
Deprecated imperative apply of Flutter's Gradle plugins
Deprecated imperative apply of Flutter's Gradle plugins | Flutter
https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply
上記の公式のドキュメントを参考に修正します。
上記との差分に関して記載します。
oss-licenses-pluginを使用している場合
plugins {
id "com.google.android.gms.oss-licenses-plugin"
}
// 削除
// apply plugin: 'com.google.android.gms.oss-licenses-plugin'
plugins {
id "com.google.android.gms.oss-licenses-plugin" version "0.10.6" apply false
}
※android/build.gradleのbuildscriptは全部削除
$kotlin version で errorが出た場合
下記の記述は不要なので消してください(Kotlin 1.4.0以降は不要)
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
各種ライブラリアップデート
Flutter, iOS のライブラリに関しては特に問題なし
Android
jackson
verを上げたらエラーになったので一旦最新にはしない
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.3'
implementation 'com.fasterxml.jackson.module:jackson-module-kotlin:2.13.3'
Android APIレベル 34 対応
targetSdkとcompileSdkを34にして、各種javaのversionを17に変更
android {
compileSdk 34
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
defaultConfig {
targetSdk 34
}
}
※targetSdkとcompileSdkにversionがついていましたが34から省略するっぽい
※AndroidStudioはjavaのversion変更をいい感じにしてくれるが、CIはしてくれないので注意
Bitrise java 17 対応
Stacks & Machines が Xcode15.3の場合、defaultのjavaのversionは11なのでStepで17を設定する必要があります。
Set Java Version のStepを追加しInput variables の java version を 17 にします。
このStepを FlutterBuild の前に実行します
FlutterのiOSプロジェクト自体のPrivacyManifest対応をする
対応内容に関しては審査提出時のメールに記載の内容を確認する
PrivacyInfo.xcprivacyを作成し対応する
以上で、対応は終了です
おまけ
Gradleのversionは8系にするとエラーになるので注意
Android APIレベル を34にするとGradle8.4以上にしないといけなそうに書いてあったのですが、7系のままでもいまのところえらーにはならなかったです。逆に8系にするとFlutterのライブラリでnamespaceの記述がなくエラーになることが多いので注意。
use_build_context_synchronously
自分の場合はdart analyzeでuse_build_context_synchronouslyが有効になったので無効にしました。