Проблемы с TeamCity, xcrun и одинарные кавычки

Я использую TeamCity с xcrun для CI в проекте IOS. В настоящее время я вижу проблемы при попытке выполнить следующую команду на шаге сборки TC:

-sdk iphoneos PackageApplication "Build/Release-iphoneos/%Product Name%.app" -o "%system.teamcity.build.checkoutDir%/Build/archive.ipa" --sign "iPhone Distribution: AMERICA XXXX" --embed "%Provision File%"

Ошибка, которую я получаю:

ошибка:/usr/bin/codesign --force --preserve-metadata = идентификатор, права, правила ресурсов --sign "Распределение iPhone: AMERICA'S --resource-правила =/Library/TeamCity/buildAgent/температуры/buildTmp/PotQjg91Ef/Payload/ACCU Deposit.app/ResourceRules.plist /Library/TeamCity/buildAgent/ температуры/buildTmp/PotQjg91Ef/Payload/ACCU Ошибка Deposit.app с ошибкой 1. Выход:" Распределение iPhone: АМЕРИКА: идентификация не найдена [2013-05-16 14: 58: 46,533] err - [2013-05-16 14: 58: 46,533] вне - [2013-05-16 14: 58: 46,540] out - Процесс завершен с кодом 1

Я думаю, довольно ясно, что проблема заключается в том, как xcrun обрабатывает одинарные кавычки. Я попытался удвоить одну цитату в "AMERICA", но это не сработало. Кто-нибудь может мне помочь? Есть ли способ избежать одиночных кавычек в xcrun?

Ответ 1

Попробуйте "Распространение iPhone: AMERICA\XXXX".

Ответ 2

Вам нужно процитировать знак iPhone Distribution: AMERICA XXXX, чтобы сделать его только одним аргументом для --sign, иначе он будет разделен пробелами и будет распознан только первая часть. То, что PackageApplication делает, чтобы распознать аргументы команды.

Я не знаю грамматики вашей команды, но кажется, что вы должны поместить iPhone Distribution: AMERICA XXXX в переменную типа %Sign Entity%. Тогда вся команда должна быть такой:

-sdk iphoneos PackageApplication "Build/Release-iphoneos/%Product Name%.app" -o "%system.teamcity.build.checkoutDir%/Build/archive.ipa" --sign "%Sign Entity%" --embed "%Provision File%"