はじめに
FlutterでよくあるiOSビルドエラーのひとつ
FlutterでiOSアプリをビルド中に「Command CodeSign failed with a nonzero exit code」というエラーに遭遇することがある。
このエラーはXcode単体ではビルドが通っても、Flutter経由だと失敗するパターンが多く、原因も複数あるから厄介なんだ。
結局どの設定が必須?
でも安心していい。
この記事では原因別に対処法をまとめてるから、順番に確認していけばOK!
この順で環境をチェックしていこう!
よくある原因と対処パターン
iCloud同期フォルダにプロジェクトがある
GitHubやStack Overflowでも多数報告されてるのがこれ。
iCloud同期対象のディレクトリ(例:DocumentsやDesktop)にFlutterプロジェクトを置いていると、XcodeのCodeSignが不安定になることがある。
iCloudでそんなこと起きるんだ……!
対策は単純で、プロジェクトフォルダを`~/dev`や`~/workspace`などのローカルディスクに移すだけ。
移動後に`flutter clean`して再ビルドしてみて。
まずはこれを真っ先にチェックだ!
証明書やキーチェーンの不整合
FlutterからXcodeビルドを呼び出すとき、キーチェーンや署名証明書が正しく読み込めていないことがある。
証明書の再読み込みやApple IDの再ログイン、必要に応じてXcodeの「Reset Package Caches」なども試してみよう。
証明書の状態ってどこで見直すの?
Xcode → Preferences → Accounts → Apple ID → Manage Certificates に移動して、不要なものを削除・再作成しよう。
そのあとMacの再起動もセットでやると安定しやすい。
証明書まわりのリセットは効果高いぞ!
Macの再起動で解決することも
意外だけど、証明書・キーチェーン・Xcode・Flutterが絡むエラーはMacの再起動で直ることもよくある。
エラーが出たままビルドしてると環境が汚れて悪化することもあるので、一度シンプルにリセットしてみよう。
まさかの再起動か……!
Flutter clean → Mac再起動 → 再ビルド という流れを一度試してみて。
多くのエンジニアがこれで解決できたと報告してる。
再起動は「最後の手段」じゃなく「最初の選択肢」でもいいぞ。
追加で確認したいこと
xattrによる拡張属性の削除
zipで配布されたライブラリなどを使っている場合、macOSがセキュリティ上の理由でファイルに拡張属性を付けてしまうことがある。
これがCodeSign失敗の原因になることも。
xattrって初めて聞いた……
以下のコマンドでプロジェクト全体の拡張属性を削除できる。
xattr -rc .
怪しいと思ったらすぐ叩いてOK!
Flutterキャッシュの削除
Flutterの古いビルドキャッシュが干渉してる可能性もある。
まずはクリーンアップ。
flutter clean
とりあえずclean!って感じだね。
Xcode単体でのビルドも確認
Flutterからじゃなくて、Xcodeで直接 `.xcworkspace` を開いてビルドできるかを確認しておくと原因の切り分けがしやすい。
XcodeでOKならFlutter側の設定が怪しいし、XcodeでもNGなら証明書かMac環境が原因。
原因をFlutterとXcodeのどっちに絞るかが大事だぞ!
まとめとチェックリスト
このエラーは環境の不一致やMac特有の仕様が絡むことが多い。
以下の手順を順番に確認してみてくれ!
順番に試せば必ずどこかで直りそう!
- iCloud同期外のローカルディスクにプロジェクト移動
- flutter clean → 再ビルド
- Xcodeで証明書確認 → Apple ID再ログイン
- Macを再起動
- xattr -rc で拡張属性を削除
- Xcodeで直接ビルドして状況確認
上記でも解決しない場合は、FlutterとXcodeのバージョン差異や、Apple Developer Programの有効期限なども再確認してみよう。
チェックリスト!まずは設定→clean→証明書→再起動の順で進めよう!


コメント