我正在使用带有Fastlane(v2.119.0)的CircleCI对签名,构建,测试和提交我的应用程序进行testflight编码。我正在尝试在使用gym
创建的版本上运行测试,但是无法正常工作。
这是我的Fastfile配置:
default_platform(:ios)
platform :ios do
before_all do
setup_circle_ci
end
desc "Runs all the tests"
lane :beta do
match(
app_identifier:["com.myapp.ios","com.myapp.ios.OneSignalNotificationServiceExtension"],
type: "appstore",
readonly: is_ci
)
gym(
scheme: "MyApp (Production)",
workspace: "MyApp.xcworkspace",
silent: true,
derived_data_path: "DerivedData"
)
run_tests(
workspace: "MyApp.xcworkspace",
devices: ["iPhone Xs"],
scheme: "MyApp (Production)",
clean: false,
derived_data_path: "DerivedData",
test_without_building: true
)
pilot(skip_waiting_for_build_processing: true)
end
end
我的应用程序中有两种不同的方案-MyApp (Staging)
和MyApp (Production)
。在上述beta
通道中应该发生的是匹配代码符号-可以正常工作。然后gym
应该使用MyApp (Production)
Release (Production)
配置为我的工作区构建应用程序。然后,应将此版本保存到文件夹DerivedData
中,然后应在此保存的版本上运行测试。
但是,实际上发生的是该应用的构建,然后当它到达run_tests
时,却无法显示:
Testing failed:
MyAppTests:
MyApp.app encountered an error (Failed to install or launch the test runner. (Underlying error: Cannot launch simulated executable: no file found at /Users/distiller/project/DerivedData/Build/Products/Debug (Production)-iphonesimulator/MyApp.app))
问题似乎在于它试图使用Debug
配置进行测试,而我却使用Release
配置进行构建吗?为什么不按scan
文档中的说明默认设置为Release?我怎样才能解决这个问题?同样,看起来“扫描”在/Users/distiller/project/DerivedData/Build/Products
寻找TEST_HOST路径,而健身房似乎建立在/Users/distiller/project/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/MyApp (Production)/BuildProductsPath
另一件事是,gym
用名称MyApp-Staging.ipa
而不是MyApp.ipa
保存了我的ipa。为什么?
任何帮助将不胜感激,谢谢!