ios - 在 Xcode 之外自动上传 NewRelic dSYM?
问题描述
我的 iOS 项目使用 New Relic 进行跟踪。NewRelic 需要上传 dSYM 文件。
我想通过 Fastlane 自动化该过程,但提供的脚本抱怨:
./NewRelicAgent.framework/Versions/A/Resources/newrelic_postbuild.sh 必须从 XCode 构建运行
如何从我的标准部署脚本中执行此操作?我不想将此添加为 XCode 编译后运行脚本或通过网站手动上传。
解决方案
经过一番研究,我了解到提供的 newrelic_postbuild.sh 脚本只是将 dSYM 文件夹压缩并使用 curl 脚本上传。
Fastlane 应该已经完成了健身房动作的第一部分。只需在您的普通 Fastfile 构建通道中指定输出目录即可。
gym({output_directory: "./build")
执行时,上述操作会将符号文件转储到:./build/HelloWorld.app.dSYM.zip
要上传它,请将其添加到变量并执行以下命令:
NEWRELIC_URL="https://mobile-symbol-upload.newrelic.com/symbol"
NEWRELIC_KEY = "ABCd3fgH1JkLmN0PqRsTuVW8Yz"
DYSM_ZIP_FILE = "./build/HelloWorld.app.dSYM.zip"
Dir.chdir("..") do
sh "curl -F dsym=@\"#{DYSM_ZIP_FILE}\" -H \"x-app-license-key: #{NEWRELIC_KEY}\" \"#{NEWRELIC_URL}\""
end
这样就可以了。如果您只想从 bash 脚本中执行此操作,则该命令将是:
curl -F dsym=@"${DYSM_ZIP_FILE}" -H "x-app-license-key: ${NEWRELIC_KEY}" "${NEWRELIC_URL}"
这种方法的好处是我们不必用额外的脚本来混乱我们的 Xcode 构建设置,并且我们可以避免执行不必要和冗余的脚本代码。
推荐阅读
- javascript - 禁用单个按钮
- node.js - 为什么我无法从 mongodb 数据库中获取数据?
- c# - 防止 0x800401D3 CLIPBRD_E_BAD_DATA 错误
- python - Pytorch 的 `autograd` 如何处理非数学函数?
- javascript - Discord Bot - 回应
- c - 函数的隐式声明
- javascript - BootstrapVue模态JS调用不显示模态
- solr - Solr Suggestor 中的 AnalyzingInfixLookupFactory 实现不返回建议结果
- c# - 如何在 autofac 中使用单例?
- regex - 在 Google 表格中计算分隔字符串中的客人数量