targetSdkVersion 33 対応でやったこと

# 概要

[Android Studio を Electric Eel にアップデートしたときにやったこと - Qiita](https://qiita.com/koichi-ozaki/items/79d5cba03eaa3eb14f85)

こちらの対応を行うときに `targetSdkVersion 33` へ上げたので対応した内容を記載する。

# やったこと

- compileSdkVersion 更新

```diff_gradle:app/build.gradle
-    compileSdkVersion 31
+    compileSdkVersion 33
```

- targetSdkVersion 更新

```diff_gradle:app/build.gradle
-        targetSdkVersion 31
+        targetSdkVersion 33
```

- plugin の書き方変更（変更する必要なかったかも）

```diff_gradle:app/build.gradle
-apply plugin: 'com.android.application'
-apply plugin: 'com.google.gms.google-services'
-apply plugin: 'com.google.firebase.crashlytics'
-apply plugin: 'kotlin-android'
+plugins {
+    id 'com.android.application'
+    id 'com.google.gms.google-services'
+    id 'com.google.firebase.crashlytics'
+    id 'kotlin-android'
+}
```

```diff_gradle:build.gradle
+plugins {
+    id 'com.android.application' version '7.4.0' apply false
+    id 'com.android.library' version '7.4.0' apply false
+    id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
+}
```

- repositories 関連を `settings.gradle` に定義


```diff_gradle:app/build.gradle
-repositories {
-    google()
-    mavenCentral()
-    maven { url "https://android-sdk.is.com" }
-    maven { url 'https://imobile-maio.github.io/maven' }
-    maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" }
-    maven { url "https://artifact.bytedance.com/repository/pangle" }
-    maven { url 'https://s3.amazonaws.com/moat-sdk-builds' }
-    maven { url 'https://voyagegroup.github.io/FluctSDK-Android/m2/repository' }
-}
```

```diff_gradle:build.gradle
-allprojects {
-    repositories {
-        google()
-        jcenter()
-    }
-}
```


```diff_gradle:settings.gradle
+pluginManagement {
+    repositories {
+        gradlePluginPortal()
+        google()
+        mavenCentral()
+    }
+}
+dependencyResolutionManagement {
+    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+    repositories {
+        google()
+        mavenCentral()
+        maven { url "https://android-sdk.is.com" }
+        maven { url 'https://imobile-maio.github.io/maven' }
+        maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" }
+        maven { url "https://artifact.bytedance.com/repository/pangle" }
+        maven { url 'https://s3.amazonaws.com/moat-sdk-builds' }
+        maven { url 'https://voyagegroup.github.io/FluctSDK-Android/m2/repository' }
+    }
+}
```

- permission に `com.google.android.gms.permission.AD_ID` 追加
    - [動作の変更点: Android 13 以上をターゲットとするアプリ  |  Android デベロッパー  |  Android Developers](https://developer.android.com/about/versions/13/behavior-changes-13?hl=ja#ad-id)

```diff_xml:AndroidManifest.xml
+    <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
```

- FirebaseDynamicLinks の intent-filter 修正
    - Android 13 の端末で、アプリインストール済みなのに FirebaseDynamicLinks をタップしてもアプリが起動しなかった
    - 解決法
        - FirebaseDynamicLinks
            - `https://hoge.page.link/?link=https://fuga.jp/&ius=xxx&apn=...`
        - `link` パラメータの `scheme` `host` でフィルターしないとマッチしなかった
    - 参考
        - [[Dynamic links] Reading Dynamic link is not working on Android app with targetSdkVersion 33 (Android 13) · Issue #4198 · firebase/firebase-android-sdk](https://github.com/firebase/firebase-android-sdk/issues/4198)

```diff_xml:AndroidManifest.xml
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
    
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:host="hoge.page.link"
                    android:scheme="https" />
+               <data
+                   android:host="fuga.jp"
+                   android:scheme="https" />
            </intent-filter>
```

- その他、必要なものを対応
    - [通知に関する実行時の権限  |  Android デベロッパー  |  Android Developers](https://developer.android.com/guide/topics/ui/notifiers/notification-permission?hl=ja)
    - [動作の変更点: すべてのアプリ  |  Android デベロッパー  |  Android Developers](https://developer.android.com/about/versions/13/behavior-changes-all?hl=ja)
    - [動作の変更点: Android 13 以上をターゲットとするアプリ  |  Android デベロッパー  |  Android Developers](https://developer.android.com/about/versions/13/behavior-changes-13?hl=ja)