さっきまで動いてたJenkinsのiOSビルドが、息をしていない。。。

Jenkinsの吐いたエラー

xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH

xcodeprojからappを作成してくれてたxcrunコマンドが通らなくなってる。。

調べてみると、

Xcode8.3でPackageApplicationがなくなったらしいです。。 Jenkinsヘルプ

急にXcode8.2→Xcode8.3にバージョンアップしてたのは、最近構築したJenkinsPCのAppStore設定が「自動インストール有効」になってたせいでした。

どうせなら8.3対応しよう.対処法はこちら

流れとしては、今まで

Unity→xcodeproj→app→ipa

だったのを

Unity→xcodeproj→xcarchive→ipa

に変更する。その際に xcrun PackageApplication ~~~~コマンドを使わないで xcdebuildコマンドでやりきる!!

xcodebuild -project ***~~~/Unity-iPhone.xcodeproject -scheme ${スキーム名} clean

xcodebuild \
-project ${projectパス}./Unity-iPhone.xcodeproj \
-scheme ${scheme名} \
-sdk iphones \
-archivePath ${アーカイブ名}.xcarchive \
-configuration ${conf} \
ONLY_ACTIVE_ARCH=NO \
PROVISIONING_PROFILE_SPECIFIER="${provisioning_profile名}" \
CODE_SIGN_IDENTITY="${identity}" \
DEVELOPMENT_TEAM=${team ID} \
DEBUG_INFORMATION_FORMAT="${debug_information_format}" \
archive

xcodebuild \
-exportArchive \
-archivePath ${アーカイブ名}.xcarchive \
-exportOptionsPlist "export用に作成したplist" \
-exportPath ${ipa出力ディレクトリ}

この3行に落ち着きました。

いろいろつけてるオプションとかは前からついてたオプションなんですが、説明するとすれば-exoprtOptionPlistに指定するplistは自分でせっせと書かないといけないということでしょうか。

今回はこんな感じでやりました。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>teamID</key>
<string>12345678</string>
<key>method</key>
<string>enterprise</string>
</dict>
</plist>

こちらを参考にplist作成しました。

参考:xcodebuildでipa作成 -exportOptionsPlist対応版

これからはplistも用途別に書き換えれるようにしないとだめか。。

では