我在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中的单引号?
答案 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%"