Автоматизировать загрузку NewRelic dSYM вне Xcode? - PullRequest
0 голосов
/ 11 мая 2018

Мой проект iOS использует New Relic для отслеживания.NewRelic требует загрузки файла dSYM.

https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile-ios/configuration/upload-dsyms-bitcode-apps

Я бы хотел автоматизировать процесс через Fastlane, но предоставленный скрипт жалуется на:

. / NewRelicAgent.Framework / Versions / A / Resources / newrelic_postbuild.sh должен быть запущен из сборки XCode

Как я могу выполнить это из моего стандартного сценария развертывания?Я не хочу добавлять это как скрипт запуска после компиляции XCode или загружать вручную через веб-сайт.

1 Ответ

0 голосов
/ 11 мая 2018

После некоторых исследований я узнал, что предоставленный скрипт 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 дополнительными скриптами, имы можем избежать выполнения ненужного и избыточного скриптового кода.

...