2017年9月22日金曜日

jenkinsでのunity -> xcode のbuildがAdd a profile to the provisioningProfiles dictionary in your Export Options property list とか言われてこける

ios11がリリースされてxcodeのversionが新しくなったらエラー出て動かなくなりくさりました。

一部伏せると
doCommand: xcodebuild -exportArchive -archivePath /Users/buildman/prj/hoge-viewer-ios/ios/build/Debug-iphoneos/hoge_iViwer.xcarchive -exportPath /Users/buildman/prj/hoge-viewer-ios/ios/build/Debug-iphoneos/hoge_iViwer.ipa -exportOptionsPlist ios.enterprise.plist
2017-09-21 15:50:59.228 xcodebuild[17590:185243] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/py/ns3vs4nn3tdgw1bz2gzbr3_80000gn/T/Unity-iPhone_2017-09-21_15-50-59.227.xcdistributionlogs'. 2017-09-21 15:50:59.682 xcodebuild[17590:185243] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7f8b7184ef20>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=( "Error Domain=IDEProvisioningErrorDomain Code=9 \"\"hoge-viewer.app\" requires a provisioning profile.\" UserInfo={NSLocalizedDescription=\"hoge-viewer.app\" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the \"provisioningProfiles\" dictionary in your Export Options property list.}"

ビルドがのきなみこけてるのでxcodeのversion upがクサイ
xcodebuildに渡している引数で指定の plist (上のコマンドだとios.enterprise.plist)に provisioningProfiles を足すことで解決できた。
なんかビルド時の設定とか証明書とか無いとうまくいかなかったりもしそうなのでもうちょっと情報が必要かも。
ただとりあえずは動く。
使っている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>method</key>
    <string>enterprise</string>
    <key>teamID</key>
    <string>TE97HOGE93</string>
    <key>compileBitcode</key>
    <false/>
    <key>embedOnDemandResourcesAssetPacksInBundle</key>
    <false/>
   <key>provisioningProfiles</key>
   <dict>
     <key>com.platinum-egg.hoge-enterprise</key>
     <string>com.platinum-egg.hoge-enterprise</string>
   </dict>
</dict>
</plist>


keyとstringに何入れるべきかいまいちわからんのだが, apple developer siteに表示されているprovisioning名をぶち込むべきぽい。 (ウチのはbundle IDがprovisioning名だったのでな...)

provisioningProfiles の key は bundleID を
 string にはprovisioning名 (xcodeとかdevelopper siteで Nameとして表示されてるやつ)
を入れれば良い模様


つーか先人の日本語情報が欲しいす



P.S.
xcodebuild -h みたらもうちょいちゃんと書いてある
adhocでビルドしたい時は methodを ad-hoc にするとかしないとならん。これで.5hぐらいハマった