結論: M1でExportする場合はXcodeをRosettaを使用して開く
で実行する
Xcode
をRosettaを使用して開く
で起動してExoportすると正常に完了します。
- Xcodeは必ず再起動が必要
- OrganizerでExportするときに利用※1
Intel macを下取りしてしまったら、こちらが今のところの解決策のようです。
※1 Archiveまで通常起動で完了します。Archiveも失敗するときは別の原因がありそうです。
M1ではXcode 12.4までは、Exportができない
下のログはwarningではあって、直接の原因ではなさそう。(でも手がかりはこれしかない。)
ipaを作るときに「universal framework」に不要なx86やi386が入ってエラーはよく見かけるケースだが、今回は「シミュレータを見ようとしたけどないので無視します」なので念の為、作成したバイナリをlipoで確認するもののarm64しかなかった。
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool exited with 1
ipatool JSON: {
alerts = (
{
code = 3736;
description = "Configuration issue: platform AppleTVSimulator.platform doesn't have any non-simulator SDKs; ignoring it";
info = {
};
level = WARN;
},
{
code = 3736;
description = "Configuration issue: platform WatchSimulator.platform doesn't have any non-simulator SDKs; ignoring it";
info = {
};
level = WARN;
},
{
code = 3736;
description = "Configuration issue: platform iPhoneSimulator.platform doesn't have any non-simulator SDKs; ignoring it";
info = {
};
level = WARN;
}
);
}
サードパーティライブラリを利用しないプロジェクトで試したところ、Rossetaなしで成功したので、
CarthageやCocoaPodsなどでサードパーティ製のライブラリを取り込んだものは今のところできないようです。
(不確かなので自己責任でお願いします)
ipa tool自体はM1で動くけど、バイナリをパッケージングして行く途中で、static libraryやdynamic frameworkなどが混在している中でarm64のバイナリがシミュレータか実機用かで判定が上手くいっていないような気がしています。
(占い)
参考