Unity/GoogleMobileAds/バージョンアップ
提供: 初心者エンジニアの簡易メモ
2021年3月13日 (土) 16:46時点におけるAdmin (トーク | 投稿記録)による版 (→Androidビルドで"output: Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 The APKs have been extracted in the directory:"が起こるとき)
目次
- 1 6系から7系へ
- 1.1 DllNotFoundException: FirebaseCppApp-7_1_0エラーが出るとき
- 1.2 RemoteConfig更新
- 1.3 'Packages/com.google.firebase.app/Parse/Plugins/dotNet45/Unity.Compat.dll' conflicts with:エラーが出るとき
- 1.4 iosのpod updateで、"`FirebaseAnalytics` requires CocoaPods version `>= 1.10.0`, which is not satisfied by your current version, `1.9.3"エラーが出る場合
- 1.5 iosで、"Showing Recent Messages Undefined symbol: _RequestReview"エラーが出るとき
- 1.6 iosで"Showing Recent Messages Undefined symbol: _OBJC_CLASS_$_GKLocalPlayer"エラーが出るとき
- 1.7 Androidビルドで"output: Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 The APKs have been extracted in the directory:"が起こるとき
- 2 ほか対応したこと
6系から7系へ
具体的には、6.15.2から7.1.0へ変更したときのエラーメモ
DllNotFoundException: FirebaseCppApp-7_1_0エラーが出るとき
FirebaseAnalytics.unitypackageとかのファイルからインストールするのをやめて、 Window/PackageManagerのFirebaseAnalyticsとかからinstallする。
古いfirebaseなどは削除。以下辺り
- Assets/Editor\ Default\ Resources/Firebase
- Assets/Firebase
- Plugins/iOS
- Plugins/x86_64
RemoteConfig更新
staticからinstance生成形式に
- Task fetchTask = Firebase.RemoteConfig.FirebaseRemoteConfig.FetchAsync(new TimeSpan(0)); + Task fetchTask = Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(new TimeSpan(0)); - Debug.Log("version=" + Firebase.RemoteConfig.FirebaseRemoteConfig.GetValue("version").StringValue); + Debug.Log("version=" + Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.GetValue("version").StringValue);
ActivateFetchedのメソッドが削除され使えない場合
ActivateAsyncへ変更して修正
- Firebase.RemoteConfig.FirebaseRemoteConfig.ActivateFetched(); + Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
'Packages/com.google.firebase.app/Parse/Plugins/dotNet45/Unity.Compat.dll' conflicts with:エラーが出るとき
unitypackageとPackageManagerでいれたdllが競合してると思われるので、 Assets/Parse/Pluginsにある、Unity.Compat.dllとかを削除すればよい。
iosのpod updateで、"`FirebaseAnalytics` requires CocoaPods version `>= 1.10.0`, which is not satisfied by your current version, `1.9.3"エラーが出る場合
以下実行
sudo gem update -n /usr/local/bin cocoapods
iosで、"Showing Recent Messages Undefined symbol: _RequestReview"エラーが出るとき
Showing Recent Messages Undefined symbol: _RequestReview
レビューライブラリを入れてる場合、削除されてない確認。削除されていれば追加して。replaceでビルド。
Assets/Plugins/iOS/ReviewPlugin.mm
iosで"Showing Recent Messages Undefined symbol: _OBJC_CLASS_$_GKLocalPlayer"エラーが出るとき
GameKit.frameworkをUnityFrameworkに追加して、コード修正すれば直ると書いてる。
手順:
- GameKit.frameworkをUnityFrameworkにドラッグで追加 (/System/Library/Frameworks/GameKit.frameworkあたりにある?)
- Build PhrasesでUnityFrameworkを選択し、Link Binary With Librarysに、GameKit.frameworkを追加
- Pods/FirebaseAuth/FirebaseAuth/Sources/AuthProvider/GameCenter/FIRGameCenterAuthProvider.m を開き
- 41行目に以下追加
if (completion) { completion(nil, [FIRAuthErrorUtils gameKitNotLinkedError]); } return;
参考:https://github.com/firebase/quickstart-unity/issues/898
参考:https://github.com/facebook/facebook-sdk-for-unity/issues/504
"Building for iOS, but the linked framework 'GameKit.framework' was built for Mac Catalyst."と出る場合
追加したGameKit.frameworkのPlatformが初期状態で、MacOSだったのを無理やり、MacOS+iOSに変更するとそうなる。
コピー元のGameKit.frameworkが悪い可能性があるので、/System/Library/Frameworks/GameKit.frameworkあたりのを使う。
Androidビルドで"output: Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 The APKs have been extracted in the directory:"が起こるとき
- keyがdebugになっていて、インストール端末と、合わなかったので、customのkeyにしたところ直った。
ほか対応したこと
- Androidは、ARM64対応
- Androidビルドはもともと29だったので、29へ
- 以下Androidのカスタムビルドファイルをonへ
Assets/Plugins/Android/gradleTemplate.properties Assets/Plugins/Android/mainTemplate.gradle Assets/Plugins/Android/AndroidManifest.xml