5

私は Travis CI を初めて使用し、単一のプロジェクトと環境に対して基本的なビルドとテストをセットアップしました。は次の.travis.ymlようになります。

language: objective-c
osx_image: xcode7
xcode_project: ./[project]/[project].xcodeproj
xcode_scheme: [project]
xcode_sdk: iphonesimulator9.0

それはうまくいきますが、私もテストしたいと思います。他の iOS シミュレーターのバージョン (8.4 など)。

xctool私のようにスクリプトセクションから使用できることに気づきましたが.travis.yml、これもうまくいきます:

script:      
  xctool -project ./[project]/[project].xcodeproj -scheme [project] -sdk iphonesimulator9.0 build test

それでも、他の iOS バージョンを実行する方法がわかりません。Travis CIのObjective-C のドキュメントでは、多数の iOS バージョンのシミュレーターが で利用可能であると書かれていますosx_image: xcode7$ xcodebuild -version -sdk、CI マシンで を実行すると、iOS 9 のみが利用可能であることが示されます。

XCode インストールに対して他の iOS バージョンをテストできるようにするために、ここで欠けているものは何ですか?

4

1 に答える 1

7

利用可能なシミュレーターを見つけるためのトリックは実行中です:

$ xcrun instruments -s devices

インストールされているデバイスのプロパティが表示されます。

Known Devices:
Travis’s Mac (129) [00000000-0000-1000-8000-005056A6DCD8]
iPad 2 (8.1) [22540C0C-46B4-4FF8-9B74-6321081CA975]
iPad 2 (8.2) [03655E8B-725B-4C03-A505-8EEA0BE5A966]
iPad 2 (8.3) [BBC2737B-BE8D-403B-804F-5A36560AD47B]

etc...

そこで、env vars (参照) を使用してマトリックスを作成し、テスト対象のシミュレーター/OS バージョンの組み合わせの UDID を定義しました。スクリプト セクションは、定義された一意の環境変数/値ごとに 1 回実行されます。私の .travis.yml ファイルは次のようになります。

language: objective-c
osx_image: xcode7

## Create a build matrix to execute against multiple simulators/iOS versions
## The UDID will be used below to determin the destination to test against
## where the script section will be run once for each definition
## ISO_DEVICE is not used in the script but is useful to know what OS version is tested and will show up in Travis to make it easer to read
env:
  - UDID="FCBB11B4-D7C8-4085-9067-2CEDA2BFC895", IOS_DEVICE="iPhone 6 Plus (9.0)"
  # - UDID="363ADE93-270B-4C2E-9286-C3C1FABE3CDD", IOS_DEVICE="iPhone 4s (8.1)"
  - UDID="BE52C183-B4AF-408D-AE90-278FA4AD89EC", IOS_DEVICE="iPhone 5 (8.3)"
  - UDID="FCBB11B4-D7C8-4085-9067-2CEDA2BFC895", IOS_DEVICE="iPhone 6 Plus (9.0)"
  - UDID="BEEA639C-46EB-48EF-8377-A22B781A7EE2", IOS_DEVICE="iPad Air 2 (8.4)"

### Setting up the simulator for auto-test and running the build via the xcodebuild tool:
script:
  # The xcrun with devices here will print out a list of available devices you can snag the UDIDs for
  - xcrun instruments -s devices
  - echo staring build and test...
  - open -a "simulator" --args -CurrentDeviceUDID $UDID
  - xcodebuild test -project ./MovingHelper/MovingHelper.xcodeproj -scheme MovingHelper -configuration Debug -sdk iphonesimulator -destination "platform=iOS Simulator,id=$UDID"
  - osascript -e 'tell app "Simulator" to quit'

このビルドの例は、ここで見ることができます。

于 2015-10-03T15:09:25.193 に答える