1

我在 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 发行版:AMERICA'S --resource-rules=/Library/TeamCity/buildAgent/temp/buildTmp/PotQjg91Ef /Payload/ACCU Deposit.app/ResourceRules.plist /Library/TeamCity/buildAgent/temp/buildTmp/PotQjg91Ef/Payload/ACCU Deposit.app 失败并出现错误 1。输出:“iPhone Distribution: AMERICA'S: no identity found [2013-05 -16 14:58:46,533] 错误 - [2013-05-16 14:58:46,533] 出 - [2013-05-16 14:58:46,540] 出 - 进程以代码 1 退出

我认为很清楚问题在于 xcrun 处理单引号的方式。我尝试将单引号加倍为“AMERICA''S”,但这没有用。有人可以帮我吗?有没有办法在 xcrun 中转义单引号?

4

2 回答 2

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%"

于 2013-12-05T10:31:49.670 回答
-1

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

于 2013-05-16T20:22:56.333 回答