Travis CI部分目标测试失败排查:Scheme配置异常问题咨询
解决Travis CI中特定iOS设备目标的Scheme测试配置报错问题
针对你遇到的BSGUtilities项目在Travis CI构建时,仅**iPhone 6s (iOS 9.3)**目标触发「Scheme BSGUtilities当前未针对测试操作配置」的问题——结合本地运行正常、Scheme已提交Git的情况,我整理了几个针对性的排查和解决方向:
1. 锁定适配iOS 9.3的Xcode版本
iOS 9.3对应的官方兼容Xcode版本是Xcode 7.3,而Travis默认可能使用较新的Xcode版本,新版本在处理旧iOS版本的Scheme配置时容易出现兼容性偏差:
- 在你的
.travis.yml中为iOS 9.3目标明确指定Xcode 7.3:osx_image: xcode7.3 - 如果需要同时兼容其他设备(比如iPhone 7),可以用Travis的多配置构建,为不同设备目标指定对应兼容的Xcode版本。
2. 检查测试目标的部署版本设置
本地运行正常不代表CI环境会宽松,Travis对测试目标的部署要求可能更严格:
- 打开Xcode,进入
Product > Scheme > Edit Scheme编辑BSGUtilities的Scheme - 切换到
Test标签页,逐个检查测试目标的Deployment Target是否设置为iOS 9.3或更低 - 同步确认测试目标的
Info.plist中,MinimumOSVersion也匹配iOS 9.3的要求
3. 优化Travis的xcodebuild命令参数
旧iOS版本下,xcodebuild可能需要额外参数才能正确识别Scheme的测试配置:
- 在你的Travis构建脚本中,明确指定Scheme、测试目标,同时跳过签名校验(避免CI环境签名问题干扰):
xcodebuild test -scheme BSGUtilities -destination 'platform=iOS Simulator,name=iPhone 6s,OS=9.3' -configuration Debug CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
4. 确认Git提交的Scheme文件完整性
有时候Scheme的核心测试配置段可能没被完整提交到Git:
- 找到项目目录下的共享Scheme文件:
YourProject.xcodeproj/xcshareddata/xcschemes/BSGUtilities.xcscheme - 检查文件中是否包含完整的
TestAction配置段,示例如下:<TestAction buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> <Testables> <TestableReference skipped = "NO"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "XXXXXX" BuildableName = "BSGUtilitiesTests" BlueprintName = "BSGUtilitiesTests" ReferencedContainer = "container:BSGUtilities.xcodeproj"> </BuildableReference> </TestableReference> </Testables> </TestAction> - 如果存在缺失,重新配置Scheme后再次提交该文件到Git
5. 清理Travis缓存
Travis的缓存可能保留了旧的构建配置,导致Scheme识别异常:
- 可以在
.travis.yml中添加缓存清理规则,或者直接到Travis项目页面手动触发「清理缓存」后重新构建
内容的提问来源于stack exchange,提问作者Mick F
相关产品推荐
相关产品推荐

