TeamCity,xcrun和单引号的问题

时间:2013-05-16 20:13:32

标签: iphone ios continuous-integration teamcity xcrun

我在IOS项目中使用TeamCity和xcrun作为CI。我正在尝试从TC构建步骤执行以下命令时遇到问题:

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

我得到的错误是:

  

错误:/ usr / bin / codesign --force   --preserve-metadata = identifier,entitlements,resource-rules --sign“iPhone Distribution:AMERICA'S   --resource规则= /库/ TeamCity的/ buildAgent /温度/ buildTmp / PotQjg91Ef /有效载荷/ ACCU   Deposit.app/ResourceRules.plist   /库/ TeamCity的/ buildAgent /温度/ buildTmp / PotQjg91Ef /负载/ ACCU   Deposit.app失败,错误1.输出:“iPhone发布:   美国:没有发现身份[2013-05-16 14:58:46,533]错误 -   [2013-05-16 14:58:46,533] out - [2013-05-16 14:58:46,540] out -   流程退出代码1

我认为很清楚问题是xcrun处理单引号的方式。我尝试将单引号加倍到“AMERICA'S”,但这不起作用。有人可以帮我吗?有没有办法逃避xcrun中的单引号?

2 个答案:

答案 0 :(得分:0)

尝试“iPhone发行:AMERICA \'XXXX”。

答案 1 :(得分:0)

您需要引用符号实体iPhone Distribution: AMERICA'S XXXX以使其仅作为--sign的一个参数,否则它将被空格划分并仅被识别为第一部分。这就是PackageApplication识别命令参数所做的事情。

我不知道你的命令的语法,但似乎你应该将iPhone Distribution: AMERICA'S 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%"