Xcode CI doesn't build project, getting "Unable to find a destination matching the provided destination specifier"

ios
xcode

#1

I have an empty xcode project that I am trying to hook the CI up. I have 2.0 and the sample config.yml with a little bit of customization (see below). But no matter what SCAN_DEVICE I choose, I get errors showing in the bottom. I think it’s a problem on your side. Please advise.

iOS CircleCI 2.0 configuration file

Check https://circleci.com/docs/2.0/ios-migrating-from-1-2/ for more details

version: 2
jobs:
build:

# Specify the Xcode version to use
macos:
  xcode: "9.0"

steps:
  - checkout

# Install fastlane
  - run:
      name: Install fastlane
      command: sudo gem install fastlane

  # Install CocoaPods
  - run:
      name: Install CocoaPods
      command: pod install

  # Build the app and run tests
  - run:
      name: Build and run tests
      command: fastlane scan
      environment:
        SCAN_DEVICE: iPhone 6
        SCAN_SCHEME: XYZ

  # Collect XML test results data to show in the UI,
  # and save the same XML files under test-results folder
  # in the Artifacts tab
  - store_test_results:
      path: test_output/report.xml
  - store_artifacts:
      path: /tmp/test-results
      destination: scan-test-results
  - store_artifacts:
      path: ~/Library/Logs/scan
      destination: scan-logs

============================================

Spin up Environment
00:04

Checkout code
00:02

Install fastlane
00:27

Install CocoaPods
00:01

Build and run tests
00:14

Exit code: 1
#!/bin/bash -eo pipefail
fastlane scan
^D^D/Library/Ruby/Gems/2.0.0/gems/fastimage-2.1.0/lib/fastimage.rb:67: warning: already initialized constant URI::DEFAULT_PARSER
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/uri/common.rb:545: warning: previous definition of DEFAULT_PARSER was here
[11:50:02]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[11:50:04]: xcodebuild -list -workspace ./XYZ.xcworkspace [11:50:06]: xcodebuild -showBuildSettings -workspace ./XYZ.xcworkspace -scheme XYZ

±-----------------------±-------------------------------------------------------------------------------------------+
| Summary for scan 2.64.1 |
±-----------------------±-------------------------------------------------------------------------------------------+
| workspace | ./XYZ.xcworkspace |
| derived_data_path | /Users/distiller/Library/Developer/Xcode/DerivedData/XYZ-gvrzdgtbtbwfyicfakhtbcqlapjh |
| device | iPhone 6 |
| scheme | XYZ |
| clean | false |
| skip_build | false |
| output_directory | ./test_output |
| output_types | html,junit |
| buildlog_path | ~/Library/Logs/scan |
| include_simulator_logs | false |
| open_report | false |
| skip_slack | false |
| slack_only_on_failure | false |
| use_clang_report_name | false |
| xcode_path | /Applications/Xcode-9.app |
±-----------------------±-------------------------------------------------------------------------------------------+

[11:50:14]: $ set -o pipefail && env NSUnbufferedIO=YES xcodebuild -workspace ./XYZ.xcworkspace -scheme XYZ -destination ‘platform=iOS Simulator,id=9439BEEF-32A7-4581-A336-C07CA45B0B81’ -derivedDataPath ‘/Users/distiller/Library/Developer/Xcode/DerivedData/XYZ-gvrzdgtbtbwfyicfakhtbcqlapjh’ build test | tee ‘/Users/distiller/Library/Logs/scan/XYZ-XYZ.log’ | xcpretty --report html --output ‘/Users/distiller/project/test_output/report.html’ --report junit --output ‘/Users/distiller/project/test_output/report.junit’ --report junit --output ‘/var/folders/ms/xg67k5sn16xc7sdr_w3q45840000gn/T/junit_report20171117-881-a3le1d’
[11:50:14]: ▸ Loading…
[11:50:15]: ▸ xcodebuild: error: Unable to find a destination matching the provided destination specifier:
[11:50:15]: ▸ { platform:iOS Simulator, id:9439BEEF-32A7-4581-A336-C07CA45B0B81 }
[11:50:15]: ▸ Ineligible destinations for the “XYZ” scheme:
[11:50:15]: ▸ { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Generic iOS Device }
[11:50:15]: ▸ { platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Generic iOS Simulator Device }
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
{ platform:iOS Simulator, id:9439BEEF-32A7-4581-A336-C07CA45B0B81 }

Ineligible destinations for the “XYZ” scheme:
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Generic iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Generic iOS Simulator Device }
[11:50:15]: Exit status: 70

[!] Error building/testing the application - see the log above
Exited with code 1


#2

Hello!,
I have the same problem, did you find a solution?
-Daniel


#3

I realized the problem was caused by the fact that the deployment target of the new project was set to iOS 11.2 (introduced with Xcode 9.2) while CircleCI used Xcode 9.1 for building. Switching to iOS 11.0 resolved the issue for me.
-Daniel


#4

THANK YOU from all of us on the Customer Engineering team :slight_smile:


#5