Introduction
正確なエラー画面とメッセージは覚えていないが、flutter build ios --release
で ios 向けにビルドしていた時、このエラーに遭遇してしまった。
M2 Mac の環境だが、環境を構築したばかりで、既に動くソースコードをクローンして、ビルドした瞬間の出来事。
デスクトップにタイトルのダイアログ、コンソールに下記のようなメッセージも表示された (無理やり再現させたメッセージで実際は違うかも)。
1 | Error (Xcode): Target aot_assembly_release failed: Exception: Flutter failed to run "/Users/xxxxxx/flutter/bin/cache/artifacts/engine/ios-release/gen_snapshot_arm64 --deterministic --snapshot_kind=app-aot-assembly |
How to resolve?
原因は com.apple.quarantine
という拡張属性が <flutter-sdk>/bin/cache/artifacts/engine/ios-release/gen_snapshot_arm64
に付与されていたため。
これも正確な値ではないが、下記のような感じ。
1 | $ ls -la /Users/xxxxxx/flutter/bin/cache/artifacts/engine/ios-release/gen_snapshot_arm64 |
パーミッションの末尾に @
が付くと拡張情報を付与されていることを示している。
この拡張属性 com.apple.quarantine
が Flutter SDK のディレクトリ配下全てに付与されていた。
原因は不明だが、Flutter SDK を Windows 経由で展開したため、OS がダウンロードしたものとみなして属性を付与したのかもしれない。
とにかくこの拡張属性を除去すればいいので、下記のように Flutter SDK のディレクトリを再起でチェックし com.apple.quarantine
を除去する。
1 | $ xattr -dr com.apple.quarantine /Users/xxxxxx/flutter |
本当、エラーメッセージとスクリーンショットを取らなかったことが悔やまれる。