Travis:xcodebuild:错误:无法找到与提供的目标说明符匹配的目标

时间:2017-06-23 19:35:26

标签: ios swift xcode8 travis-ci xcodebuild

我尝试使用travis-ci.org实现持续集成。

这是我目前的.travis.yml配置:

language: swift
osx_image: xcode8.3.3
xcode_project: AutomatediOSBuild.xcodeproj #3
xcode_scheme: Debug
#xcode_sdk: iphonesimulator10.0
script:
  - xcodebuild -scheme AutomatediOSBuild -project AutomatediOSBuild.xcodeproj -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6s,OS=10.3.1' build test

但我在travis上收到以下错误:

xcodebuild: error: Unable to find a destination matching the provided destination specifier:
        { platform:iOS Simulator, OS:10.3.1, name:iPhone 6s }
    The requested device could not be found because no available devices matched the request.
The command "xcodebuild -scheme myProject -project myProject.xcodeproj -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6s,OS=10.3.1' build test" exited with 70.

如果我在命令行中运行:

xcodebuild -scheme myProject -project myProject.xcodeproj -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6s,OS=10.3.1' build test

我没有错误。你们中的任何人都知道我为什么会收到这个错误?或者如果有任何解决此错误的工作?

我非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

我在用Xcode 9.4创建的目标上也遇到了类似的问题,并试图在travis上用Xcode 9.3运行。构建设置中的tvOS部署目标是11.4。我将其更改回11.1,然后travis开始工作:

--- a/GoogleUtilities/Example/GoogleUtilities.xcodeproj/project.pbxproj
+++ b/GoogleUtilities/Example/GoogleUtilities.xcodeproj/project.pbxproj
@@ -974,7 +974,7 @@
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                SDKROOT = appletvos;
                                TARGETED_DEVICE_FAMILY = 3;
-                               TVOS_DEPLOYMENT_TARGET = 11.4;
+                               TVOS_DEPLOYMENT_TARGET = 11.1;
                        };

答案 1 :(得分:0)

用于xcodebuild的Travis环境可能与您的环境不同,即您在本地具有与pool.getConnection()选项相对应的正确模拟器,但是Travis-ci容器没有。

工作日志应该为您提供更多信息,例如:

-destination

Travis在documentation上列出了所选The requested device could not be found because no available devices matched the request. 585 586 Available destinations for the "stackoverflow" scheme: 587 { platform:iOS Simulator, id:5B...65, OS:13.2.2, name:iPad (7th generation) } 588 { platform:iOS Simulator, id:1A...DA, OS:13.2.2, name:iPhone 8 } 的可用模拟器,并且此mokacoding post提供了很好的解释。

我还发现您必须提供确切的操作系统版本,例如在上面的示例中:

osx_image