稍微記錄一下 admob 升級時碰到的問題跟查到的 reference 或 solution
sdk
admob
issue
更新時間: 2021/4
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"
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
這個開發者的說明與上面推測符合
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.
Failed, Compile error in Editor
Unity Build xcode project success
Xcode Build success
Firebase 目前(2021/4/12)最新版本為 7.1.0,但升上去這個版本的話有 API 更動需要修改專案呼叫的地方,測試 7.0.0
與 AdMob 7.69
能相容,暫時先進到這個版本。
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
Sign in with Apple
in Signing & Capabilities tabAuthenticationServices.framework
in General tab / Frameworks and Libraries 到 UnityFrameworkreference: Adding Apple Sign-In Capabilities and framework dependencies on PostProcessing
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.
[33mWARNING: CocoaPods requires your terminal to be using UTF-8 encoding.
Consider adding the following to ~/.profile:
export LANG=en_US.UTF-8
FAN 6.3.0
depends on GoogleMobileAdsMediationFacebook 6.3.0.0
GoogleMobileAdsMediationFacebook 6.3.0.0
depends on Google-Mobile-Ads-SDK 8.1.0+
GoogleMobileAds 5.4.0 (Unity)
mapping to 7.68.0 (iOS)
https://github.com/googleads/googleads-mobile-unity/issues/1569
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 讓他復原)
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.
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:未知
NOTE: 要把 .meta 刪掉讓 unity 重新產生,不然 build 的時候會被移除。推測跟 .meta 裡的 label gpsr
有關
ref: https://github.com/googlesamples/unity-jar-resolver/issues/19
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 的,可是不知道是不是因為這樣導致下一個 錯誤
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)
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
Version 2.5.0
Supports Unity Ads Android adapter version 3.5.0.0.
Supports Unity Ads iOS adapter version 3.5.0.0.
由於 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 移除
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>
Native ads 5.4.0.90 MiniJson conflicts with Firebase (Mono only) #1587
https://github.com/googleads/googleads-mobile-unity/issues/1587
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)
[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
加了這個之後可以順利開啟
更新時間: 2020/10
載點:https://dl.google.com/googleadmobadssdk/GoogleMobileAds-native.unitypackage
GoogleMobileAds-native.unitypackage
沒有提供版本選擇5.2.0
是以 Google Mobile Ads Unity Plugin [release] 使用的 dependencies 對照判斷的全部刪掉之後安裝 -native.package
裡面會缺少 GADUAdNetworkExtras.h
標頭檔,在 iOS AdColony 會報錯
// AdColonyExtrasBuilder.h
#import "GADUAdNetworkExtras.h"
保留 GADU 開頭的檔案不要刪除
在 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 還是存在。
mainTemplate.gradle
implementation(name: 'googlemobileads-unity', ext:'aar')
implementation project(':GoogleMobileAdsPlugin.androidlib')
這個要自己手動加
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
xcode build 出來可以執行,但是如果關掉之後再重開會超時然後被 terminate 掉。
Solution:
UnityFramework 預設被 embedded 但是沒有被 linked,我們需要自己把他 link 上去。
Fortuncity
03da8a3
redirect: https://app.gitbook.com/@fourdesire/s/sdk-health-check/unity-2019-to-2020 前言 Unity 升 2020 之後 build Android 有一些問題,各有對應的地方要修改,但是讓 unity 把全部 gradle 重新產一遍就可以全部解決 參考 PR: https://github.com/fourdesire/bedtime-client/compare/feature/0.6.0...feature/0.6.0-i-refine_android_gradle_template Problem 1 ref: https://answers.unity.com/questions/1802208/build-error-27.html
Jul 30, 2021Delete all local branches except develop and master git branch | grep -v "develop" | grep -v "master" | xargs git branch -D Revert a single file git checkout [commit ID] -- path/to/file git commit -m 'commit message'
Jul 23, 2021可以新增 no 的選項在 plist ITSAppUsesNonExemptEncryption ref: https://help.apple.com/xcode/mac/current/#/dev0dc15d044 Add the line below in the build config script rootDict.SetBoolean ("ITSAppUsesNonExemptEncryption", false);
Jul 20, 2021To disable Rebuild from Bitcode in fastlane gym, use export_options: { compileBitcode: false } https://qiita.com/yum_fishing/items/5181612dd4b8806a317e
Jun 28, 2021or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up