酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Xcode 11.xでxcodebuildを使ってビルドすると、不正なxcarchiveができるようになってしまった

いまでもJenkinsでxcodebuildを使ってビルド作業をしています。

久しぶりに新規プロジェクトのビルドスクリプトを組んだところ、不正なxcarchiveができるようになってしまいました。ipaファイルを出力するためにxcodebuild -exportArchiveを実行すると下記のエラーが出てしまいました。

error: archive at path  '/PATH/App.xcarchive' is malformed

プロジェクト名を変えただけの同じビルドスクリプトでも、

🙆‍♀️ Xcode 11で作成されたプロジェクトは xcarchiveが壊れてる
🙅‍♂️ Xcode 10で作成されたプロジェクトは問題なし

と結果に差が出ます。

f:id:ch3cooh393:20191012114550p:plain

malformedになる原因と対策

あーだこーだ言いながら4時間かけて、正常なxcarchiveを出力できるようにしました。

xcodebuild -sdk iphoneos \
  -workspace ${XCWORKSPACE_NAME} \
  -scheme ${SCHEME_NAME} \
  -configuration Release archive \
  -archivePath ${ARCHIVE_PATH} \
  SYMROOT=${BUILD_NUMBER_PATH}

↓↓↓

xcodebuild -sdk iphoneos \
  -workspace "${XCWORKSPACE_NAME}" \
  -scheme "${SCHEME_NAME}" \
  -configuration Release clean archive \
  -archivePath "${ARCHIVE_PATH}"

SYMROOTオプションを取りのぞきました。

関連記事

ここまで書いたところで、過去に類似した問題に遭遇していたのに気づいてしまう。

blog.ch3cooh.jp

この他にもiOSアプリ開発で見つけたネタや悩んだ内容など紹介しています。Tipsをまとめておりますのでこちらのページをご参照ください。