Try   HackMD

Upgrade Admob SDK Issue

稍微記錄一下 admob 升級時碰到的問題跟查到的 reference 或 solution

tags: sdk admob issue

5.4.0-native issues

更新時間: 2021/4

1. AdMob iOS 7.68+ 與 Firebase 的 Dependency 衝突

Firebase/Analytics (= 6.32.2) was resolved to 6.32.2, which depends on
      Firebase/Core (= 6.32.2) was resolved to 6.32.2, which depends on
        FirebaseAnalytics (= 6.8.2) was resolved to 6.8.2, which depends on
          GoogleAppMeasurement (= 6.8.2)
    GoogleMobileAdsMediationChartboost (= 8.2.0.0) was resolved to 8.2.0.0, which depends on
      Google-Mobile-Ads-SDK (>= 7.61.0) was resolved to 7.69.0, which depends on
        GoogleAppMeasurement (~> 7.0))

初步判斷 Google-Mobile-Ads-SDK 升到 7.69.0 的話會跟 Firebase/Analytic 6.32.2 版本衝突

Google Analytic for Firebase 6.16.1 對應到 iosPod Firebase/Analytics" version="6.32.2"

嘗試解法:Google-Mobile-Ads-SDK 定在 7.68

pod install output:
Analyzing dependencies
[!] CocoaPods could not find compatible versions for pod "GoogleAppMeasurement":
  In Podfile:
    Firebase/Analytics (= 6.32.2) was resolved to 6.32.2, which depends on
      Firebase/Core (= 6.32.2) was resolved to 6.32.2, which depends on
        FirebaseAnalytics (= 6.8.2) was resolved to 6.8.2, which depends on
          GoogleAppMeasurement (= 6.8.2)
    GoogleMobileAdsMediationFacebook (= 6.2.0.0) was resolved to 6.2.0.0, which depends on
      Google-Mobile-Ads-SDK (>= 7.67.0) was resolved to 7.68.0, which depends on
        GoogleAppMeasurement (~> 7.0)

結果:還是出錯,7.68 好像還是會需要 GoogleAppMeasurement (~> 7.0)

試了改回 7.67 就可以執行 pod install

後來找到這篇問題有點像
https://stackoverflow.com/questions/65159944/ios-framework-addition-failed-due-to-a-cocoapods-installation-failure

這個開發者的說明與上面推測符合
Paul Beusterien:

The Firebase and Google-Mobile-Ads-SDK version specification in the Podfile are incompatible.

Firebase 6.x is compatible with Google-Mobile-Ads-SDK versions up to 7.67.0. After 7.67.1, Firebase 7.x is required.

還有這篇也是
https://stackoverflow.com/questions/64850730/unity-firebase-admob-conflict-googleappmeasurement

Google-Mobile-Ads-SDK version 7.68 is only compatible with Firebase 7.x. If you want to use Firebase 6.x, you need to use 7.67 or earlier.

嘗試解法:升級 Google Analytic for Firebase 到 7.1.0

Failed, Compile error in Editor

嘗試解法:升級 Google Analytic for Firebase 到 7.0.0

Unity Build xcode project success
Xcode Build success

NOTE

Firebase 目前(2021/4/12)最新版本為 7.1.0,但升上去這個版本的話有 API 更動需要修改專案呼叫的地方,測試 7.0.0AdMob 7.69 能相容,暫時先進到這個版本。

2. 承上,更新了 Firebase 7.1.0 遇到 Multiple commands produce

Multiple commands produce '/Users/user/Library/Developer/Xcode/DerivedData/Unity-iPhone-egovvhljohrqyqbqaxnptyjldagm/Build/Products/ReleaseForRunning-iphoneos/fortunecity.app/Frameworks/Helpshift.framework':
1) Target 'Unity-iPhone' has copy command from '/Users/user/Documents/projects/unity/build/fc/fc-admob540_769-firebase710/Pods/Helpshift/helpshift-sdk-ios-v7.9.1-withCampaigns/Helpshift.framework' to '/Users/user/Library/Developer/Xcode/DerivedData/Unity-iPhone-egovvhljohrqyqbqaxnptyjldagm/Build/Products/ReleaseForRunning-iphoneos/fortunecity.app/Frameworks/Helpshift.framework'
2) That command depends on command in Target 'Unity-iPhone': script phase “[CP] Embed Pods Frameworks”

比對後發現 Firebase 7.1.0 多了 build phase [CP] Embed Pods Frameworks

嘗試把 [CP] Copy Frameworks 裡的 helpshift 移除

換報下面這個錯誤:

ld: warning: arm64 function not 4-byte aligned: _unwind_tester from /Users/user/Documents/projects/unity/build/fc/fc-admob540_769-firebase710/Libraries/libiPhone-lib.a(unwind_test_arm64.o)
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_ASWebAuthenticationSession", referenced from:
      objc-class-ref in GoogleSignInDependencies(OIDExternalUserAgentIOS_72d27a6b1ff725ce310d91d91741a793.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

這篇 有人說可以試試看加 AuthenticationServices dependency

As a workaround, you can add the AuthenticationServices dependency manually. – Anastasia Mar 29 at 7:01

  1. Add Sign in with Apple in Signing & Capabilities tab
  2. Add AuthenticationServices.framework in General tab / Frameworks and Libraries 到 UnityFramework

reference: Adding Apple Sign-In Capabilities and framework dependencies on PostProcessing

3. FAN 6.3.0 needs Google-Mobile-Ads-SDK 8.1.0+

iOS framework addition failed due to a CocoaPods installation failure. This will will likely result in an non-functional Xcode project.
After the failure, "pod repo update" was executed and succeeded. "pod install" was then attempted again, and still failed. This may be due to a broken CocoaPods installation. See: https://guides.cocoapods.org/using/troubleshooting.html for potential solutions.
pod install output:
Analyzing dependencies
[!] CocoaPods could not find compatible versions for pod "Google-Mobile-Ads-SDK":
  In Podfile:
    Google-Mobile-Ads-SDK (= 7.69)
    GoogleMobileAdsMediationFacebook (= 6.3.0.0) was resolved to 6.3.0.0, which depends on
      Google-Mobile-Ads-SDK (>= 8.1.0)
Specs satisfying the `Google-Mobile-Ads-SDK (= 7.69), Google-Mobile-Ads-SDK (>= 8.1.0)` dependency were found, but they required a higher minimum deployment target.
    WARNING: CocoaPods requires your terminal to be using UTF-8 encoding.
    Consider adding the following to ~/.profile:
    export LANG=en_US.UTF-8
  1. FAN 6.3.0 depends on GoogleMobileAdsMediationFacebook 6.3.0.0
  2. GoogleMobileAdsMediationFacebook 6.3.0.0 depends on Google-Mobile-Ads-SDK 8.1.0+
  3. Latest version GoogleMobileAds 5.4.0 (Unity) mapping to 7.68.0 (iOS)

https://github.com/googleads/googleads-mobile-unity/issues/1569

  • opened on 5 Feb, 8 comments
  • last updated 4 days ago

4. [android] AndroidManifest.xml is missing

BuildMethodException: [GoogleMobileAds] AndroidManifest.xml is missing. Try re-importing the plugin.
ManifestProcessor.StopBuildWithMessage (System.String message) (at Assets/FDMobileAds/GoogleMobileAds/Editor/ManifestProcessor.cs:175)
ManifestProcessor.OnPreprocessBuild (UnityEditor.Build.Reporting.BuildReport report) (at Assets/FDMobileAds/GoogleMobileAds/Editor/ManifestProcessor.cs:52)
UnityEditor.Build.BuildPipelineInterfaces+<>c__DisplayClass15_0.<OnBuildPreProcess>b__1 (UnityEditor.Build.IPreprocessBuildWithReport bpp) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:411)
UnityEditor.Build.BuildPipelineInterfaces.InvokeCallbackInterfacesPair[T1,T2] (System.Collections.Generic.List`1[T] oneInterfaces, System.Action`1[T] invocationOne, System.Collections.Generic.List`1[T] twoInterfaces, System.Action`1[T] invocationTwo, System.Boolean exitOnFailure) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:391)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:197)

這個是因為前一次 build 被打斷了,FDMobileAdsBuildProcessor 裡面搬動 plugin 的步驟沒有搬回來,導致資料夾裡少了檔案。

把 diff reset 回去就可以了

(但可能要再想一下 build failed 怎麼 handle 讓他復原)

5.

Win32Exception: ApplicationName='/Applications/Unity/Hub/Editor/2019.4.15f1/PlaybackEngines/AndroidPlayer/SDK/tools/bin/sdkmanager', CommandLine='--list', CurrentDirectory='/Users/user/Documents/projects/unity/fortunecity-client', Native error= Access denied
System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) (at <ef151b6abb5d474cb2c1cb8906a8b5a4>:0)
System.Diagnostics.Process.Start () (at <ef151b6abb5d474cb2c1cb8906a8b5a4>:0)
(wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
UnityEditor.Utils.Program.Start (System.EventHandler exitCallback) (at /Users/bokken/buildslave/unity/build/Editor/Mono/Utils/Program.cs:46)
UnityEditor.Utils.Program.Start () (at /Users/bokken/buildslave/unity/build/Editor/Mono/Utils/Program.cs:30)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.AndroidSDKTools.RunAndroidSdkTool (System.String toolName, System.String arguments, System.Boolean updateCommand, System.String errorMsg, System.String toolsDir, System.String[] warningsToIgnore) (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.AndroidSDKTools.ListComponentsVersions () (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.SDKManager.UpdatePackagesList () (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.SDKManager.HighestVersionInstalled (UnityEditor.Android.SDKManager+Component tool) (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK+SDKToolsDetector.GetVersion () (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK+SDKComponentDetector.Detect (System.Version minVersion, UnityEditor.Android.PostProcessor.ProgressHandler onProgress) (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK.EnsureSDKComponentVersion (System.Version minVersion, UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK+SDKComponentDetector detector) (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.PostProcessor.Tasks.CheckAndroidSDK.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.PostProcessAndroidPlayer.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTarget target) (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTarget target) (at <dc407cb797ef4a3c9593841f34ad81a7>:0)
UnityEditor.PostprocessBuildPlayer.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:149)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:197)

Solution:

1. Copy this file. (ApplicationName=...)
2. Delete this file.
3. Paste this file.

6.

TypeLoadException: Could not resolve type with token 01000036 (from typeref, class/assembly Google.EditorInitializer, Google.VersionHandlerImpl, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null)
Rethrow as TypeInitializationException: The type initializer for 'Firebase.Editor.GenerateXmlFromGoogleServicesJson' threw an exception.
System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) (at <9577ac7a62ef43179789031239ba8798>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) (at <9577ac7a62ef43179789031239ba8798>:0)
System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic) (at <9577ac7a62ef43179789031239ba8798>:0)
System.RuntimeType.CreateInstanceSlow (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Threading.StackCrawlMark& stackMark) (at <9577ac7a62ef43179789031239ba8798>:0)
System.RuntimeType.CreateInstanceDefaultCtor (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Threading.StackCrawlMark& stackMark) (at <9577ac7a62ef43179789031239ba8798>:0)
System.Activator.CreateInstance (System.Type type, System.Boolean nonPublic) (at <9577ac7a62ef43179789031239ba8798>:0)
System.Activator.CreateInstance (System.Type type) (at <9577ac7a62ef43179789031239ba8798>:0)
UnityEditor.AssetPostprocessingInternal.InitPostprocessors (UnityEditor.Experimental.AssetImporters.AssetImportContext context, System.String pathName) (at /Users/bokken/buildslave/unity/build/Editor/Mono/AssetPostprocessor.cs:311)
UnityEditor.AssetPostprocessingInternal:InitPostprocessors(AssetImportContext, String) (at /Users/bokken/buildslave/unity/build/Editor/Mono/AssetPostprocessor.cs:322)

WARNING:未知

7. Resolve 完保留 Firebase .arr files

NOTE: 要把 .meta 刪掉讓 unity 重新產生,不然 build 的時候會被移除。推測跟 .meta 裡的 label gpsr 有關

ref: https://github.com/googlesamples/unity-jar-resolver/issues/19

8.

Google.MiniJson.dll 重複
com.google.firebase.app@7.1.0
GoogleMobileAds
兩個地方

PrecompiledAssemblyException: Multiple precompiled assemblies with the same name Google.MiniJson.dll included or the current platform. Only one assembly with the same name is allowed per platform. Assembly paths: 
/Users/user/Documents/projects/unity/fortunecity-client/Library/PackageCache/com.google.firebase.app@7.1.0/Firebase/Plugins/Google.MiniJson.dll
Assets/Plugins/Google.MiniJson.dll
UnityEditor.Scripting.ScriptCompilation.EditorBuildRules.ValidateAndGetNameToPrecompiledAssembly (UnityEditor.Scripting.ScriptCompilation.PrecompiledAssembly[] precompiledAssemblies) (at /Users/bokken/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorBuildRules.cs:627)
UnityEditor.Scripting.ScriptCompilation.EditorBuildRules.ToScriptAssemblies (System.Collections.Generic.IDictionary`2[TKey,TValue] targetAssemblies, UnityEditor.Scripting.ScriptCompilation.ScriptAssemblySettings settings, UnityEditor.Scripting.ScriptCompilation.EditorBuildRules+CompilationAssemblies assemblies, System.Collections.Generic.HashSet`1[T] runUpdaterAssemblies) (at /Users/bokken/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorBuildRules.cs:639)
UnityEditor.Scripting.ScriptCompilation.EditorBuildRules.GenerateChangedScriptAssemblies (UnityEditor.Scripting.ScriptCompilation.EditorBuildRules+GenerateChangedScriptAssembliesArgs args) (at /Users/bokken/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorBuildRules.cs:583)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.CompileScripts (UnityEditor.Scripting.ScriptCompilation.ScriptAssemblySettings scriptAssemblySettings, System.String tempBuildDirectory, UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.Scripting.ScriptCompilation.CompilationTaskOptions compilationTaskOptions, UnityEditor.Scripting.ScriptCompilation.EditorBuildRules+TargetAssembly[]& notCompiledTargetAssemblies, System.String[]& notCompiledScripts) (at /Users/bokken/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilation.cs:1548)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.CompileScripts (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.BuildTargetGroup platformGroup, UnityEditor.BuildTarget platform, UnityEditor.Scripting.ScriptCompilation.CompilationTaskOptions compilationTaskOptions) (at /Users/bokken/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilation.cs:1478)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.TickCompilationPipeline (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.BuildTargetGroup platformGroup, UnityEditor.BuildTarget platform) (at /Users/bokken/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilation.cs:2042)
UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface.TickCompilationPipeline (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.BuildTargetGroup platformGroup, UnityEditor.BuildTarget platform) (at /Users/bokken/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilationInterface.cs:429)
UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:TickCompilationPipeline(EditorScriptCompilationOptions, BuildTargetGroup, BuildTarget) (at /Users/bokken/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilationInterface.cs:433)

刪不掉 firebase 的只好刪 AdMob 的,可是不知道是不是因為這樣導致下一個 錯誤

9. Method Google.MiniJSON.Json.Deserialize(string)' is inaccessible from method GoogleMobileAds.Common.Utils.CastAssetIDMappings(string)'

 Caused by: java.lang.Exception: MethodAccessException: Method `Google.MiniJSON.Json.Deserialize(string)' is inaccessible from method `GoogleMobileAds.Common.Utils.CastAssetIDMappings(string)'
    GoogleMobileAds.Common.Utils.CastAssetIDMappings (System.String jsonMappings) (at <b12c1b9643d845f19ac2d2c567daabf2>:0)
    _lrzYIkvPC4Ct86Sgf1d6FlyaJ3M._eXQBkxLYQ0eJrSK9oYuIIkse1ON._yEWsWlmKeotZALIGHFAKgQaP2JP () (at <8f3eaa6ff7794cdc9e7fa259b15563b5>:0)
    _lrzYIkvPC4Ct86Sgf1d6FlyaJ3M._eXQBkxLYQ0eJrSK9oYuIIkse1ON..ctor (UnityEngine.AndroidJavaObject ) (at <8f3eaa6ff7794cdc9e7fa259b15563b5>:0)
    GoogleMobileAds.Android.AdLoaderClient.onUnifiedNativeAdLoaded (UnityEngine.AndroidJavaObject ad) (at <8f3eaa6ff7794cdc9e7fa259b15563b5>:0)
    System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <2b3a3162be434770b7a4fac8b896e90c>:0)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <2b3a3162be434770b7a4fac8b896e90c>:0)
    UnityEngine.AndroidJavaProxy.Invoke (System.String methodName, System.Object[] args) (at <64438264e25a42398aa0824121908267>:0)
    Rethrow as TargetInvocationException: GoogleMobileAds.Android.AdLoaderClient.onUnifiedNativeAdLoaded(UnityEngine.AndroidJavaObject)
    UnityEngine.AndroidJavaProxy.Invoke (System.String methodName, System.Object[] args) (at <64438264e25a42398aa0824121908267>:0)
    UnityEngine.AndroidJavaProxy.Invoke (System.String methodName, UnityEngine.AndroidJavaObject[] javaArgs) (at <64438264e25a42398aa0824121908267>:0)
    UnityEngine._AndroidJNIHelper.InvokeJavaProxyMethod (UnityEngine.AndroidJavaProxy proxy, System.IntPtr jmethodName, System.IntPtr jargs) (at <64438264e25a42398aa0824121908267>:0)

嘗試升 Unity Ads 2.6.0

Version 2.6.0
Supports Unity Ads Android adapter version 3.6.0.0.
Supports Unity Ads iOS adapter version 3.6.0.0.

Unity Ads 2.6.0 => classpath 'com.android.tools.build:gradle:4.0.1'

build 不出來

AAPT2 process unexpectedly exit

嘗試升 Unity Ads 到 2.5.0

Version 2.5.0
Supports Unity Ads Android adapter version 3.5.0.0.
Supports Unity Ads iOS adapter version 3.5.0.0.

移除 Firebase package 中的 Google.MiniJson,重裝 AdMob 的 Google.MiniJson

由於 AdMob 跟 Firebase package (用 unity package manager 裝的),兩個裡面都有 Google.MiniJson,在前一次整合 MobileAds 的時候是使用 Firebase 的,import GoogleMobileAds 時將其中的 Google.MiniJson 移除,實測結果正常。

但這次更新 Firebase 到 7.1.0,GoogleMobileAds 5.4.0,出現此錯誤:

MethodAccessException: Method `Google.MiniJSON.Json.Deserialize(string)' is inaccessible from method `GoogleMobileAds.Common.Utils.CastAssetIDMappings(string)'

Google 搜尋不到其他人發問相同問題。

嘗試手動移除 firebase package cache 裡的 Google.MiniJson,改使用 GogleMobileAds 的 Google.MiniJson,實測可行。

但由於 firebase package 是使用 unity package manager 裝的,應該要再用什麼辦法把 Firebase 裡的 Google.MiniJson 移除

10. IL2CPP build failed

Exception: /Applications/Unity/Hub/Editor/2019.4.15f1/Unity.app/Contents/il2cpp/build/deploy/il2cppcore/il2cppcore.dll did not run properly!
Failed running "/Applications/Unity/Hub/Editor/2019.4.15f1/Unity.app/Contents/il2cpp/build/deploy/il2cppcore/il2cppcore.dll" --convert-to-cpp --emit-null-checks --enable-array-bounds-check --dotnetprofile="unityaot" --compile-cpp --libil2cpp-static --platform="Android" --architecture="ARMv7" --configuration="Release" --outputpath="/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/assets/bin/Data/Native/armeabi-v7a/libil2cpp.so" --cachedirectory="/Users/user/Documents/projects/unity/fortunecity-client/Assets/../Library/il2cpp_android_armeabi-v7a/il2cpp_cache" --additional-include-directories="/Applications/Unity/Hub/Editor/2019.4.15f1/PlaybackEngines/AndroidPlayer/Tools/bdwgc/include" --additional-include-directories="/Applications/Unity/Hub/Editor/2019.4.15f1/PlaybackEngines/AndroidPlayer/Tools/libil2cpp/include" --tool-chain-path="/Applications/Unity/Hub/Editor/2019.4.15f1/PlaybackEngines/AndroidPlayer/NDK" --incremental-g-c-time-slice=3 --profiler-report --map-file-parser="/Applications/Unity/Hub/Editor/2019.4.15f1/Unity.app/Contents/Tools/MapFileParser/MapFileParser" --directory="/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/assets/bin/Data/Managed" --generatedcppdir="/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput"  
stdout:
Building libil2cpp.so with AndroidToolChain
	Output directory: /Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/assets/bin/Data/Native/armeabi-v7a
	Cache directory: /Users/user/Documents/projects/unity/fortunecity-client/Library/il2cpp_android_armeabi-v7a/il2cpp_cache
ObjectFiles: 423 of which compiled: 0
Total compilation time: 600 milliseconds.
il2cpp.exe didn't catch exception: Unity.IL2CPP.Building.BuilderFailedException: /Applications/Unity/Hub/Editor/2019.4.15f1/PlaybackEngines/AndroidPlayer/NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ @"/var/folders/c6/3w_h6c8s75v67xstcs73tnm80000gn/T/tmplFYkkC.tmp" -o "/Users/user/Documents/projects/unity/fortunecity-client/Library/il2cpp_android_armeabi-v7a/il2cpp_cache/linkresult_FDCB2D0145EAAADC3C24D5A5B2D2E4A3/libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id -stdlib=libc++ -static-libstdc++ -target armv7-linux-androideabi19 -Wl,--wrap,sigaction -llog -rdynamic -fuse-ld=gold
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15101: error: undefined reference to 'GADUGetResponseInfo'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15101: error: undefined reference to 'GADUGetResponseInfo'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15533: error: undefined reference to 'GADUCreateRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15533: error: undefined reference to 'GADUCreateRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15601: error: undefined reference to 'GADUSetRewardedInterstitialAdCallbacks'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15548: error: undefined reference to 'GADULoadRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15548: error: undefined reference to 'GADULoadRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15563: error: undefined reference to 'GADUShowRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15563: error: undefined reference to 'GADUShowRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15611: error: undefined reference to 'GADURewardedInterstitialAdSetServerSideVerificationOptions'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15611: error: undefined reference to 'GADURewardedInterstitialAdSetServerSideVerificationOptions'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15621: error: undefined reference to 'GADURewardedInterstitialAdGetRewardType'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15640: error: undefined reference to 'GADURewardedInterstitialAdGetRewardAmount'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15621: error: undefined reference to 'GADURewardedInterstitialAdGetRewardType'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15640: error: undefined reference to 'GADURewardedInterstitialAdGetRewardAmount'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15101: error: undefined reference to 'GADUGetResponseInfo'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15101: error: undefined reference to 'GADUGetResponseInfo'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15112: error: undefined reference to 'GADUGetResponseInfoDescription'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15112: error: undefined reference to 'GADUGetResponseInfoDescription'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14371: error: undefined reference to 'GADUDisableMediationInitialization'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14698: error: undefined reference to 'GADUCreateRequestConfiguration'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14709: error: undefined reference to 'GADUSetRequestConfiguration'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14736: error: undefined reference to 'GADUSetRequestConfigurationTestDeviceIdentifiers'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14736: error: undefined reference to 'GADUSetRequestConfigurationTestDeviceIdentifiers'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14736: error: undefined reference to 'GADUSetRequestConfigurationTestDeviceIdentifiers'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14763: error: undefined reference to 'GADUSetRequestConfigurationMaxAdContentRating'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14777: error: undefined reference to 'GADUSetRequestConfigurationTagForUnderAgeOfConsent'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14787: error: undefined reference to 'GADUSetRequestConfigurationTagForChildDirectedTreatment'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14797: error: undefined reference to 'GADUGetTestDeviceIdentifiers'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14808: error: undefined reference to 'GADUGetTestDeviceIdentifiersCount'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14819: error: undefined reference to 'GADUGetMaxAdContentRating'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14838: error: undefined reference to 'GADUGetRequestConfigurationTagForUnderAgeOfConsent'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14849: error: undefined reference to 'GADUGetRequestConfigurationTagForChildDirectedTreatment' (at ?)
clang++: error: linker command failed with exit code 1 (use -v to see invocation) (at ?)
   at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(HashSet`1 objectFiles, CppToolChainContext toolChainContext)
   at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
   at il2cpp.Program.DoRun(String[] args, List`1 foundAssemblies)
   at il2cpp.Program.Run(String[] args, Boolean setInvariantCulture)
   at il2cpp.Program.Main(String[] args)
stderr:
Unhandled Exception: Unity.IL2CPP.Building.BuilderFailedException: /Applications/Unity/Hub/Editor/2019.4.15f1/PlaybackEngines/AndroidPlayer/NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ @"/var/folders/c6/3w_h6c8s75v67xstcs73tnm80000gn/T/tmplFYkkC.tmp" -o "/Users/user/Documents/projects/unity/fortunecity-client/Library/il2cpp_android_armeabi-v7a/il2cpp_cache/linkresult_FDCB2D0145EAAADC3C24D5A5B2D2E4A3/libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id -stdlib=libc++ -static-libstdc++ -target armv7-linux-androideabi19 -Wl,--wrap,sigaction -llog -rdynamic -fuse-ld=gold
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15101: error: undefined reference to 'GADUGetResponseInfo'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15101: error: undefined reference to 'GADUGetResponseInfo'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15533: error: undefined reference to 'GADUCreateRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15533: error: undefined reference to 'GADUCreateRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15601: error: undefined reference to 'GADUSetRewardedInterstitialAdCallbacks'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15548: error: undefined reference to 'GADULoadRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15548: error: undefined reference to 'GADULoadRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15563: error: undefined reference to 'GADUShowRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15563: error: undefined reference to 'GADUShowRewardedInterstitialAd'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15611: error: undefined reference to 'GADURewardedInterstitialAdSetServerSideVerificationOptions'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15611: error: undefined reference to 'GADURewardedInterstitialAdSetServerSideVerificationOptions'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15621: error: undefined reference to 'GADURewardedInterstitialAdGetRewardType'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15640: error: undefined reference to 'GADURewardedInterstitialAdGetRewardAmount'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15621: error: undefined reference to 'GADURewardedInterstitialAdGetRewardType'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15640: error: undefined reference to 'GADURewardedInterstitialAdGetRewardAmount'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15101: error: undefined reference to 'GADUGetResponseInfo'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15101: error: undefined reference to 'GADUGetResponseInfo'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15112: error: undefined reference to 'GADUGetResponseInfoDescription'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:15112: error: undefined reference to 'GADUGetResponseInfoDescription'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14371: error: undefined reference to 'GADUDisableMediationInitialization'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14698: error: undefined reference to 'GADUCreateRequestConfiguration'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14709: error: undefined reference to 'GADUSetRequestConfiguration'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14736: error: undefined reference to 'GADUSetRequestConfigurationTestDeviceIdentifiers'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14736: error: undefined reference to 'GADUSetRequestConfigurationTestDeviceIdentifiers'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14736: error: undefined reference to 'GADUSetRequestConfigurationTestDeviceIdentifiers'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14763: error: undefined reference to 'GADUSetRequestConfigurationMaxAdContentRating'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14777: error: undefined reference to 'GADUSetRequestConfigurationTagForUnderAgeOfConsent'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14787: error: undefined reference to 'GADUSetRequestConfigurationTagForChildDirectedTreatment'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14797: error: undefined reference to 'GADUGetTestDeviceIdentifiers'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14808: error: undefined reference to 'GADUGetTestDeviceIdentifiersCount'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14819: error: undefined reference to 'GADUGetMaxAdContentRating'
/Users/user/Documents/projects/unity/fortunecity-client/Temp/StagingArea/Il2Cpp/il2cppOutput/GoogleMobileAds.iOS1.cpp:14838: error: undefined reference to 'GADUGetRequestConfigurationTagForUnderAgeOfConsent'
/Users/use<message truncated>

Same issue found!

Native ads 5.4.0.90 MiniJson conflicts with Firebase (Mono only) #1587
https://github.com/googleads/googleads-mobile-unity/issues/1587

11. Referenced script on this Behaviour missing

04-16 17:22:38.075 10658-10794/? W/Unity: The referenced script on this Behaviour (Game Object 'FDStoreHandler') is missing! 
    (Filename:  Line: 334)
04-16 17:22:38.085 10658-10794/? W/Unity: The referenced script on this Behaviour (Game Object 'Advertisement') is missing! 
    (Filename:  Line: 334)
04-16 17:22:44.555 10658-10794/? W/Unity: The referenced script on this Behaviour (Game Object 'GameScene') is missing! 
    (Filename:  Line: 334)
04-16 17:22:44.615 10658-10794/? W/Unity: The referenced script on this Behaviour (Game Object 'NativeAd') is missing! 
    (Filename:  Line: 334)
04-16 17:22:44.735 10658-10794/? W/Unity: The referenced script on this Behaviour (Game Object 'UniWebView') is missing! 
    (Filename:  Line: 334)

12. SQLite Create DB failed

[FD:Database] database location : /var/mobile/Containers/Data/Application/CAC49D3C-B27D-4AC6-9EB8-EBFFE5338C92/Documents/.playful
[FD:Database] Failed to create database: FD.Database.Sqlite.SQLiteException: file is not a database
[FD:Database] database location : /var/mobile/Containers/Data/Application/CAC49D3C-B27D-4AC6-9EB8-EBFFE5338C92/Documents/.playful
[FD:Database] Failed to create database: FD.Database.Sqlite.SQLiteException: file is not a database

推測可能跟升級第三方 SDK 有關係

https://stackoverflow.com/questions/40529577/use-firebase-with-sqlcipher
這篇說可以加 -framework SQLCipher 但實測沒有用

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      xcconfig_path = config.base_configuration_reference.real_path
      xcconfig = File.read(xcconfig_path)
      new_xcconfig = xcconfig.gsub('-l"sqlite3"', '')
      File.open(xcconfig_path, "w") { |file| file << new_xcconfig }
    end
  end
end

加了這個之後可以順利開啟

5.2.0-native issues

更新時間: 2020/10

載點:https://dl.google.com/googleadmobadssdk/GoogleMobileAds-native.unitypackage

  • GoogleMobileAds-native.unitypackage 沒有提供版本選擇
  • 5.2.0 是以 Google Mobile Ads Unity Plugin [release] 使用的 dependencies 對照判斷的

1. 不要相信 Native Ads Advanced (Unified) 教學裡面寫到的 Prerequisites

Problem:

全部刪掉之後安裝 -native.package 裡面會缺少 GADUAdNetworkExtras.h 標頭檔,在 iOS AdColony 會報錯

// AdColonyExtrasBuilder.h #import "GADUAdNetworkExtras.h"

Solution:

保留 GADU 開頭的檔案不要刪除

Details & References

Google Mobile Ads SDK Developers 搜尋到類似的發問(這裡發問的人是使用 2018 的 googlemobileads-eap.unitypackage 但碰到的問題類似,一樣有人表示缺少 GADUAdNetworkExtras

Google Developer 的回覆有點狀況外:

Thanks for getting back to us. You need to also import the full Unity plugin as well. The EAB plugin only has files related to the Native Advanced Unified ad. The main plugin must first be imported to be able to make an AdRequest. The class in question is available here in the full plugin. Also I would suggest that you look into our documentation on how to integrate Vungle via Unity.

提供了一個跟他們的文件不一致的解法,文件寫說要把 main plugin 的檔案全部刪掉,這邊卻說要兩個都裝。但其實兩個都裝反而會報更多錯。

之後他們表示會儘速修復 (2018),到了2019年10月20日仍然有人表示 issue 還是存在。

2. 不要相信 resolver 會自動完成 gradle 的全部設定

mainTemplate.gradle

implementation(name: 'googlemobileads-unity', ext:'aar')
implementation project(':GoogleMobileAdsPlugin.androidlib')

這個要自己手動加

3. __kmsetForChildren

Note: 不確定這個 issue 為什麼本來沒有現在跑出來
Platform version: Unity 2019.4.9f1 / xcode 12

Showing Recent Messages
Undefined symbol: __kmsetForChildren

Reference: https://stackoverflow.com/questions/38599154/unity-admob-ios-sdk-linker-error

Solution:

  • 移除 Assets/Plugins/AdmobAPI

4. Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d

xcode build 出來可以執行,但是如果關掉之後再重開會超時然後被 terminate 掉。

Reference:
https://issuetracker.unity3d.com/issues/ios-unityframework-with-3rd-party-plugins-triggers-watchdog-termination-after-launch?page=1#comments

Solution:
UnityFramework 預設被 embedded 但是沒有被 linked,我們需要自己把他 link 上去。

Fortuncity
03da8a3