2015-09-25 2 views
3

Я новичок в Travis CI и создал базовую сборку и тестирование против одного проекта и среды. .travis.yml выглядит следующим образом:Ориентация на несколько версий iOS в вашем .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. Objective-C docs for Travis CI говорят, что хост версий iOS для симуляторов доступен для osx_image: xcode7, но когда $ xcodebuild -version -sdk запущен на машине CI, он показывает только доступные iOS 9.

Что мне здесь не хватает, чтобы протестировать другие версии iOS против установки XCode?

ответ

6

Хитрость найти доступные тренажеры работает:

$ xcrun instruments -s devices 

и вы увидите свойства для установленных устройств:

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

etc... 

Итак, я построил матрицу с окр VARS (reference) и определил UDID для комбайнов версии симулятора/ОС, которые я хотел протестировать. Раздел сценария выполняется один раз для каждой уникальной переменной среды/значения. Мой .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' 

Пример такого построения можно увидеть here.

Смежные вопросы