我的iOS项目使用New Relic进行跟踪。 NewRelic需要上传dSYM文件。
我想通过Fastlane自动化该过程,但提供的脚本抱怨:
./ NewRelicAgent.framework / Versions / A / Resources / newrelic_postbuild.sh必须从XCode版本运行
如何在标准部署脚本中执行此操作?我不想将其添加为XCode编译后运行脚本或通过网站手动上传。
答案 0 :(得分:1)
经过一些研究,我了解到提供的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构建设置,并且我们可以避免执行不必要的冗余脚本代码。