🔖

[Flutter] エラー解決方法: failed with a nonzero exit code

2024/10/16に公開

概要

xcodeのArchive時のbuildでエラーが発生しました。
Flutterを使用しています。

エラー

Can't load Kernel binary: Invalid kernel binary format version.
Failed to build flutterfire_cli:flutterfire:
../../../../.pub-cache/hosted/pub.dev/win32-5.1.1/lib/src/guid.dart:32:9: Error: Type 'UnmodifiableUint8ListView' not found.
  final UnmodifiableUint8ListView bytes;
        ^^^^^^^^^^^^^^^^^^^^^^^^^
../../../../.pub-cache/hosted/pub.dev/win32-5.1.1/lib/src/guid.dart:32:9: Error: 'UnmodifiableUint8ListView' isn't a type.
  final UnmodifiableUint8ListView bytes;
        ^^^^^^^^^^^^^^^^^^^^^^^^^
../../../../.pub-cache/hosted/pub.dev/win32-5.1.1/lib/src/guid.dart:52:17: Error: Method not found: 'UnmodifiableUint8ListView'.
    return Guid(UnmodifiableUint8ListView(guid));
                ^^^^^^^^^^^^^^^^^^^^^^^^^
../../../../.pub-cache/hosted/pub.dev/win32-5.1.1/lib/src/guid.dart:56:31: Error: Method not found: 'UnmodifiableUint8ListView'.
  factory Guid.zero() => Guid(UnmodifiableUint8ListView(Uint8List(16)));
                              ^^^^^^^^^^^^^^^^^^^^^^^^^
../../../../.pub-cache/hosted/pub.dev/win32-5.1.1/lib/src/guid.dart:100:17: Error: Method not found: 'UnmodifiableUint8ListView'.
    return Guid(UnmodifiableUint8ListView(Uint8List.fromList(guidAsBytes)));
                ^^^^^^^^^^^^^^^^^^^^^^^^^
Command PhaseScriptExecution failed with a nonzero exit code

解決策

キャッシュを全てクリア

flutter clean && flutter pub cache repair && flutter pub cache clean

Cleaning Xcode workspace...                                      1,908ms
Cleaning Xcode workspace...                                      1,891ms
Reinstalled 257 packages.
Reactivating flutterfire_cli 1.0.0...
Downloading packages... 
Building package executables... (1.6s)
Built flutterfire_cli:flutterfire.
Installed executable flutterfire.
Reactivated 1 package.
This will remove everything inside /Users/mk/.pub-cache.
You will have to run `dart pub get` again in each project.
Are you sure? (y/N)? N
which flutter             
/opt/flutter/bin/flutter

rm -rf /opt/flutter/bin/cache
flutter precache --ios

パッケージのインストール

flutter pub get

cd ios
rm Podfile.lock && pod deintegrate && pod install --repo-update

cd ..

確認

✅ xcodeでbuildの確認
Product > Archive

✅ 起動を確認(Android)

flutter run

❌ 起動を確認(iOS)

flutter run

Can't load Kernel binary: Invalid kernel binary format version. エラーが発生した場合、再度アクティベートする

dart pub global activate flutterfire_cli

上を実行すると、xcodeのbuildの方が再度エラーになる
❓ 解決策の流れを実行すると、再びxcodeでbuildできるようになるが、flutter runでエラーが出るようになる。

不明点

flutter runが実行できる場合、xcodeのbuildが通らなくなり、
xcodeのbuildが通る場合、flutter runがでエラーが出るようになる。
どちらもエラーが出ないようにするには、どうすればいいかが不明。
原因究明ができる方、コメントよりお待ちしております。

参考

Discussion