Fatal error in Unity CIL LinkerMono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Firebase.Platform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
9:00
UnityプロジェクトをiOS用にビルドしようと思ったら、エラー出た。
Fatal error in Unity CIL Linker
Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Firebase.Platform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
at Unity.IL2CPP.Common.MissingMethodStubber.GetTypeModule(TypeReference type, IEnumerable`1 assemblies) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP.Common/MissingMethodStubber.cs:line 178
at Unity.Linker.Steps.AddUnresolvedStubsStep.MarkAssemblyOfType(UnityLinkContext context, TypeReference type) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker.Steps/AddUnresolvedStubsStep.cs:line 18
at Unity.Linker.Steps.Marking.UnresolvedStubMarking.HandleUnresolvedType(TypeReference reference) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker.Steps/Marking/UnresolvedStubMarking.cs:line 96
at Unity.Linker.Steps.UnityMarkStep.HandleUnresolvedType(TypeReference reference) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker.Steps/UnityMarkStep.cs:line 207
at Mono.Linker.Steps.MarkStep.MarkInterfaceImplementations(TypeDefinition type) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 1853
at Mono.Linker.Steps.MarkStep.MarkRequirementsForInstantiatedTypes(TypeDefinition type) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 2472
at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference, DependencyInfo reason, IMemberDefinition sourceLocationMember) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 1495
at Mono.Linker.Steps.MarkStep.MarkField(FieldDefinition field, DependencyInfo& reason) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 1293
at Mono.Linker.Steps.MarkStep.MarkField(FieldReference reference, DependencyInfo reason) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 1279
at Unity.Linker.Steps.Marking.MonoBehaviourMarking.MarkNeededFields(TypeDefinition type) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker.Steps/Marking/MonoBehaviourMarking.cs:line 35
at Unity.Linker.Steps.Marking.MonoBehaviourMarking.DoAdditionalTypeProcessing(TypeDefinition type) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker.Steps/Marking/MonoBehaviourMarking.cs:line 28
at Unity.Linker.Steps.UnityMarkStep.DoAdditionalTypeProcessing(TypeDefinition type) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker.Steps/UnityMarkStep.cs:line 171
at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference, DependencyInfo reason, IMemberDefinition sourceLocationMember) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 1519
at Mono.Linker.Steps.MarkStep.MarkField(FieldDefinition field, DependencyInfo& reason) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 1292
at Mono.Linker.Steps.MarkStep.MarkEntireTypeInternal(TypeDefinition type, Boolean includeBaseTypes, DependencyInfo& reason, IMemberDefinition sourceLocationMember, HashSet`1 typesAlreadyVisited) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 315
at Mono.Linker.Steps.MarkStep.MarkEntireAssembly(AssemblyDefinition assembly) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 1159
at Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 204
at Unity.Linker.Steps.UnityMarkStep.InitializeAssembly(AssemblyDefinition assembly) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker.Steps/UnityMarkStep.cs:line 34
at Mono.Linker.Steps.MarkStep.Initialize() in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker.Steps/MarkStep.cs:line 194
at Unity.Linker.Steps.UnityMarkStep.Process(LinkContext context) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker.Steps/UnityMarkStep.cs:line 255
at Unity.Linker.UnityPipeline.ProcessStep(LinkContext context, IStep step) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker/UnityPipeline.cs:line 22
at Mono.Linker.Pipeline.Process(LinkContext context) in /Users/bokken/build/output/unity/il2cpp/repos/monolinker/src/linker/Linker/Pipeline.cs:line 128
at Unity.Linker.UnityDriver.UnityRun(UnityLinkContext context, UnityPipeline p, LinkRequest linkerOptions, TinyProfiler2 tinyProfiler, ILogger customLogger) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker/UnityDriver.cs:line 158
at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling(TinyProfiler2 tinyProfiler, ILogger customLogger) in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker/UnityDriver.cs:line 100
at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling() in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker/UnityDriver.cs:line 68
at Unity.Linker.UnityDriver.RunDriver() in /Users/bokken/build/output/unity/il2cpp/UnityLinker/Linker/UnityDriver.cs:line 49
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)
Firebase関係のエラーぽい。
別件でFirebaseからInternal Errorが返ってくるエラーがまだ解消できてないんだけど、それも関係あるだろうか。SDKをうまく参照できていなそう。
Unityで出るエラーって調べてもドンピシャな結果が全然出てこないのなんなんだろう。
ChatGPTに聞いてみた。
以下回答
以下をチェックしろと。
Firebaseのバージョンは最新、Unityは2022.2.0b11
Firebaseのドキュメントには、「Unity 2019.1 以降」と書いてあるのでOK。
https://firebase.google.com/docs/unity/setup?hl=ja
Firebaseのバージョンは最新なのでOK
asmdefファイルってなんだ?
https://qiita.com/toRisouP/items/d206af3029c7d80326ed
csprojってなんだ?「アセンブリが分割」ってなんだ?
とりあえず自分で設定した覚えがないのでAssembly Definitionsとやらは関係ないだろうか。
Assets -> Reimportはグレーアウトされて使えなかったので、Refreshしてみた。
再度Buildを試す。
エラー変わらず。
FirebaseのSDKを再度インポートして、Buildしてみる。
Unityが「応答なし」になったので再起動。
再度インポートしなおしてBuild。
エラー変わらず。
Scripting BackendはIL2CPP。変更できないようにグレーアウトされてる。
Target Minimum iOS Versionは12。
FirebaseApp.CheckAndFixDependenciesAsync部分を実行してテストしてみる。
Unityが「応答なし」になったので再起動。
またUnityが「応答なし」になったので再起動。
またUnityが「応答なし」になったので再起動。
何がいけないんダァぁぁぁぁぁぁぁぁ。
Assets/Firebase/Pluginsに入ってるプラグインのiOSのチェックを外す。(昨日他のエラーを解消しようとして謎にチェックを入れたので)
再度実行。
またUnityが「応答なし」になったので再起動。
エラーくらい出してくれ。。
再度実行。
FirebaseApp.CheckAndFixDependenciesAsyncを呼ぶとUnity自体がクラッシュしてるっぽい。
11:30
FirebaseのInitializationが散らかってたから、それを直したら解消した。
再度テスト。
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
{
dependencyStatus = task.Result;
if (dependencyStatus == DependencyStatus.Available)
{
Debug.Log("dependencyStatus == DependencyStatus.Available");
InitializeFirebase();
}
else
{
Debug.LogError("Could not resolve all Firebase dependencies: " + dependencyStatus);
}
});
無事「dependencyStatus == DependencyStatus.Available」がコンソールに表示された。問題なさそう。
再度Build。
Unityが「応答なし」になったので再起動しようとしたら、「応答なし」が解消した。あれ、応答なしって待ってれば解消されるやつ?他ソフトだと完全不能になるイメージなんだけど。
11:50
また応答なしになったので10分待ってみた。
解消しないので再起動。
懲りずにもう一度Build。
今度はちゃんと終了してFatal error in Unity CILエラーが出た。
つまり何も解決してない。
ChatGPTもお手上げか。。
/Applications/Unity/Hub/Editor/2022.2.0b11/Unity.app/Contents/il2cpp/build/deploy/il2cpp --convert-to-cpp --generatedcppdir=/Users/username/Desktop/appfolder/unity/My-App/Library/Bee/artifacts/iOS/il2cppOutput/cpp --enable-analytics --emit-null-checks --enable-array-bounds-check --generics-option=None,EnableFullSharing --dotnetprofile=unityaot-macos --profiler-report --profiler-output-file=/Users/username/Desktop/appfolder/unity/My-App/Library/Bee/artifacts/il2cpp_conv_ljyb.traceevents --print-command-line --external-lib-il2-cpp=/Libraries/libil2cpp.a --data-folder=/Users/username/Desktop/appfolder/unity/My-App/Library/Bee/artifacts/iOS/il2cppOutput/data
Error: IL2CPP error (no further information about what managed code was being converted is available)
System.InvalidOperationException: Sequence contains no elements
at System.Linq.ThrowHelper.ThrowNoElementsException()
at Unity.IL2CPP.DataModel.BuildLogic.DataModelBuilder.Initialize(UnderConstruction`2& systemAssembly) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP.DataModel/BuildLogic/DataModelBuilder.cs:line 288
at Unity.IL2CPP.DataModel.BuildLogic.DataModelBuilder.Build() in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP.DataModel/BuildLogic/DataModelBuilder.cs:line 52
at Unity.IL2CPP.AssemblyConversion.Phases.InitializePhase.Run(AssemblyConversionContext context) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/AssemblyConversion/Phases/InitializePhase.cs:line 19
at Unity.IL2CPP.AssemblyConversion.Classic.ClassicConverter.Run(AssemblyConversionContext context) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/AssemblyConversion.Classic/ClassicConverter.cs:line 11
at Unity.IL2CPP.AssemblyConversion.AssemblyConverter.ConvertAssemblies(AssemblyConversionContext context, ConversionMode conversionMode) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/AssemblyConversion/AssemblyConverter.cs:line 38
at Unity.IL2CPP.AssemblyConversion.AssemblyConverter.ConvertAssemblies(TinyProfiler2 tinyProfiler, AssemblyConversionInputData data, AssemblyConversionParameters parameters, AssemblyConversionInputDataForTopLevelAccess dataForTopLevel) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/AssemblyConversion/AssemblyConverter.cs:line 13
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)
ちなみにこんなエラーも出てる。
ChatGPTに聞いてみる。
対処法を確認する。
https://stackoverflow.com/questions/11801769/handling-sequence-has-no-elements-exception
リストの最初の要素を取得するFirst()が原因らしい。
エラーをクリックしてBeeBuildPostprocessor.csを開こうとしたが、Path does not existと出る。
Build Settingsなども確認してみたが問題がありそうな箇所はない。
諦めてUnityフォーラムに質問。
返信を待つ
13:00
新しい空白プロジェクトを作って、ビルドできるか調べてみよう。
早速エラー
[Collab] Collab service is deprecated and has been replaced with PlasticSCM
https://qiita.com/segur/items/0ce6876a8ea83dc58431
Packages/manifest.jsonファイルはそもそもなかった。
Disconnect from Unity Cloudをやって見た。
ヤッターーーー。
今度はFirebaseAuth SDKを追加してビルドしてみる。
ヤッターーーー。
問題はFirebaseAuthじゃないのか??
FirebaseAnalyticsもインポートしてビルドできた。
FirebaseFirestoreもインポートしてビルドできた。
Firebaseの全てのSDKをインポートしてみた。
DynamicLinkをインポート中にUnityフリーズ。
全てインポートしてもビルドできた!!
14:00
プラグイン自体は問題じゃないことがわかった。
コードをちょっとずつ追加してみる。
Firebase関連をいくつか追加したけどBuildできちゃう。。
元のUnityプロジェクトに戻る。
FirebaseのSDKを一旦全て消去して、再度インポートしてみる。
ダメだった。
新しい空白プロジェクトに戻る。
とりあえずFirebase関連コードだけ全部移植してみる。
ビルドできる!!!!!!!!!!!!!!
なんで!!!!!!!!!!!!!!!
どうしたらいいの!!!!!!!!!!!!
後日
エラーの原因はGoogleのStreaming Speech Recognitionだということが判明した。
https://assetstore.unity.com/packages/tools/ai-ml-integration/streaming-speech-recognition-using-google-cloud-vr-ar-mobile-des-115172
しかし解決方法はまだ全然わからない。
後日2
BurstとFrontweepGamesのStreamingSpeechRecognitionが同時に入っているとエラーが起こるらしかった。
必須ではないBurstの方を消去することで解決!
共存させる方法はわからない。
この記事が気に入ったらサポートをしてみませんか?