iOS
CI
Cordova
VSTS
VSTS-CI

VSTS-CIのCordova-iOSビルド後のArtifactで「[error]Could not find file '****/platforms/ios/build/device/****.app'.」エラーが発生した時の対処法

:one: 環境

  • VSTS (Visual Studio Team Services) CIサービス (無料プラン)
  • Agent: Hosted macOS Preview
  • Node.js: v6.14.1
  • cordova: v7.1.0
  • cordova-ios: 4.5.4

:two: エラー内容

VSTS-CIのCordova-iOSビルド後のArtifactで [error]Could not find file '****/platforms/ios/build/device/****.app'. エラーが発生する。

エラーログの内容
2018-04-07T06:36:32.1413500Z ##[section]Starting: Publish Artifact: ios
2018-04-07T06:36:32.1473750Z ==============================================================================
2018-04-07T06:36:32.1487260Z Task         : Publish Build Artifacts
2018-04-07T06:36:32.1500710Z Description  : Publish build artifacts to Visual Studio Team Services/TFS or a file share
2018-04-07T06:36:32.1514780Z Version      : 1.131.0
2018-04-07T06:36:32.1528900Z Author       : Microsoft Corporation
2018-04-07T06:36:32.1542730Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=708390)
2018-04-07T06:36:32.1557020Z ==============================================================================
2018-04-07T06:36:32.6651510Z ##[section]Async Command Start: Upload Artifact
2018-04-07T06:36:32.6665160Z Uploading 8 files
2018-04-07T06:36:34.5469250Z ##[section]Async Command End: Upload Artifact
2018-04-07T06:36:34.6223280Z ##[error]Could not find file '/Users/vsts/agent/2.131.0/work/1/s/platforms/ios/build/device/my-ionic1.app'.
2018-04-07T06:36:34.6320880Z ##[section]Finishing: Publish Artifact: ios

:three: 原因

原因不明。

ログからは「my-ionic1.appが見つからないよ」エラーとなっているが、どこかでmy-ionic1.appをどうのこうの設定した覚えは無い。
単純にplatforms/ios/build/deviceを出力するように指定しているだけなのに・・・('ω')

:four: 対応

cordova-iosのビルドで出力される場所がplatforms/ios/build/deviceと思っていたが、設定を見直すとbinディレクトリとなっていた。どうやらVSTS-CIでのcordova-iosビルド後の出力先は、以下のキャプチャのように初期状態でbinディレクトリのようだ。

1.png

よって、以下のキャプチャの様にPublish Artifactの参照先をbinディレクトリに変更。

2.png

そしてArtifactsからipaファイル(iOSアプリの実行ファイル)を取得することに成功。

3.png