作为将 XCode 的 UI 测试添加到 CI 流程的一部分,由于测试框架普遍不可靠,我决定在构建失败之前重新运行失败的测试。
我可以通过使用块来避免构建立即失败rescue,这不是问题,并且报告文件(JUnit 和 HTML)的位置是固定的,因此可以使用 File.readlines 等打开。
junit 报告文件的格式是测试套件 -> 测试套件 -> 测试用例 -> 失败消息(如果适用)的级联,然后回退到足以容纳下一个元素。看起来很标准。
然而,在那一点上我有点卡住了(这可能不是正确的道路;首先有没有一个规范的更好的方法来做到这一点?)。在 bash 中,我将使用 grep -B 提取失败消息之前的行,这将是失败测试用例的名称,然后使用 awk 获取相关文本片段。然后我可以使用 -only-testing 参数将简单的两个管道 shell 命令反馈到 scan/xcodebuild 中。
有没有办法在 Ruby 中同样轻松地做到这一点,或者有一个 junit 插件可以让我只读出各个失败测试用例的名称?
Fastlane/Scanfile 上的 Skip_build 和 test_without_building 有什么区别?
我真的会执行我的测试用例,而不需要每次都构建,我有几个在循环的 shell 脚本上执行的方案。我不想为每次迭代进行构建。
有人之前尝试过这些参数吗?
上传到 iTunesConnect 失败并出现以下错误:
“无效的配置文件。此配置文件与 iOS 应用程序不兼容。”
+-----------------------+---------------------------------------+
| deliver 2.26.1 Summary |
+-----------------------+---------------------------------------+
| username | iosdev@inspirato.com |
| ipa | /Users/vagrant/deploy/InspiratoTV.ipa |
| skip_screenshots | true |
| skip_metadata | true |
| force | true |
| app_identifier | com.inspirato.travel.InspiratoTV |
| screenshots_path | ./screenshots |
| metadata_path | ./metadata |
| app_version | 1.0 |
| edit_live | false |
| platform | ios |
| skip_binary_upload | false |
| submit_for_review | false |
| automatic_release …Run Code Online (Sandbox Code Playgroud) continuous-integration fastlane tvos fastlane-deliver app-store-connect
目前在我的反应本机应用程序中,我使用fastlane:beta和配置两个通道production。我用于react-native-config不同的环境配置(存储在 2 个文件中:.env.beta和.env.production)。我怎样才能fastlane知道每个通道应该使用哪个环境文件?
我的应用程序有不同的产品风格,我使用 fastlane 构建它们。这是我的快速文件:
default_platform(:android)
platform :android do
desc "Release apk with different urls"
lane :release do
gradle(
task: "assemble",
build_type: "release",
flavor: "flavorname",
print_command: true,
properties: {
"android.injected.signing.store.file" => "Key.jks",
"android.injected.signing.store.password" => "KeyPass",
"android.injected.signing.key.alias" => "KeyAlias",
"android.injected.signing.key.password" => "KeyPass"
}
)
end
end
Run Code Online (Sandbox Code Playgroud)
问题是在项目目录中创建了 apk 文件。
(projectname/app/build/outputs/apk/flavorname/release/app-flavorname-release.apk)
如何自动将此 apk 文件移动到我的桌面?
我在 Fastlane Fastfile 中设置了 Firebase 应用分发功能来分发我的 iOS 应用的测试版。它工作正常,但突然开始显示错误。
这就是我的车道的样子。
lane :distribute_beta do |options|
sync_code_signing_adhoc()
update_build_number_of_all_frameworks()
build_ios_app_adhoc()
firebase_app_distribution(
app: "<app ID here>",
testers: "<tester emials here>",
release_notes: options[:release_note],
firebase_cli_path: "/usr/local/bin/firebase"
)
end
Run Code Online (Sandbox Code Playgroud)
当我运行这条车道时,它显示错误
the server responded with status 403
Run Code Online (Sandbox Code Playgroud)
在步骤:firebase_app_distribution
日志还说对谷歌的身份验证成功。
Authenticating with GOOGLE_APPLICATION_CREDENTIALS environment variable: /<path to cred>/<cred_file_name>.json
Authenticated successfully.
Run Code Online (Sandbox Code Playgroud)
以下是围绕“步骤:firebase_app_distribution”的整个错误
[17:11:04]: ---------------------------------------
[17:11:04]: --- Step: firebase_app_distribution ---
[17:11:04]: ---------------------------------------
[17:11:04]: Authenticating with GOOGLE_APPLICATION_CREDENTIALS environment variable: /<path to cred>/<cred_file_name>.json
[17:11:04]: Authenticated successfully.
+------------------------------------+---------------------------------------------+
| Lane Context |
+------------------------------------+---------------------------------------------+
| DEFAULT_PLATFORM …Run Code Online (Sandbox Code Playgroud) 我\xe2\x80\x99m 为客户端制作iOS 应用程序,但\xe2\x80\x99t 无法访问其配置文件或签名证书。
\n我\xe2\x80\x99d 喜欢给我的客户一个已经编译的应用程序版本,这样他们所需要做的就是对其进行签名,然后将其上传到 TestFlight 和 App Store。
\n之前我给我的客户提供了整个.xcodeproj,在本例中是从 Unity 游戏导出的,但是他们使用不同版本的 Xcode 时出现了问题,并且在不同的机器上使用 CocoaPods 时出现了问题。
看来我可以通过将我的 iOS 应用程序导出到.xcarchive没有任何配置文件或签名证书的情况来做到这一点,然后为他们提供 . xcarchive让他们签名、制作.ipa并将其上传到 App Store。I\xe2\x80\x99m 目前使用 fastlane 进行自动化构建,并希望继续使用这个新解决方案这样做。
cordova build --device --releasepilot upload -i platforms/ios/build/device/AskPal.ipa --verbose使用Fastlane Pilot的发布过程失败了:
错误ITMS-90086:"缺少64位支持.提交到App Store的iOS应用程序必须包含64位支持,并使用iOS 8 SDK或更高版本构建.我们建议使用"架构"的默认"标准架构"构建设置"在Xcode中,构建一个具有32位和64位支持的单个二进制文件."
我正在"修复"这个方法是从Cordova删除ios平台,然后重新安装它coordova platform add ios.
请告诉我有一种方法可以在Cordova配置中指定那些构建体系结构.
我正在尝试配置deliver为我的应用程序发送我的元数据...
点击此处的截图https://github.com/fastlane/fastlane/tree/master/deliver#readme
我创建了我的元数据文件夹...
但是,当我第一次上传fastlane deliver它时没有做几件事.
它没有添加应用程序图标,它确实添加了营销网址,类别等...
我自己在iTC上手动添加它们然后今天我已经完成了另一次上传fastlane deliver,它再次删除了所有数据.
我试图找到如何配置这些东西,但缺乏文档(字面意思,这个截图是我发现的).
例如......我应该如何上传应用图标?app_icon.txt文件的内容是./fastlane/metadata/appicon.png.但我不确定那条路应该相对于哪里?
的内容marketing_url.txt就是http://thewebsite.com而是从每上传删除.但是copyright.txt作品.
有什么地方我可以看到这些数据的样子吗?
每次上传时也会删除这些类别,但我不知道文本应该在哪里?我刚刚得到了类别的名称(即Health & Fitness)那是错的吗?
任何帮助或最好是一些文档的链接将非常有帮助.