我们正在为另一家公司构建应用。他们持有签名密钥,宁愿不与我们分享。
应该可以分离构建和签名,但是如何在xcodebuild的命令行中指定它?
答案 0 :(得分:111)
为了跳过代码签名,您可以从控制台执行手动构建,如下所示:
xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
此外,请使用-configuration
,-target
和-sdk
参数来定义构建设置。
请参阅this Stack Overflow answer以获取有关如何在Xcode中禁用代码签名的详细说明。
答案 1 :(得分:13)
为了完全阻止使用Xcode 7进行代码签名,我使用了以下所有选项:
CODE_SIGN_IDENTITY=""
CODE_SIGNING_REQUIRED="NO"
CODE_SIGN_ENTITLEMENTS=""
CODE_SIGNING_ALLOWED="NO"
最终选项CODE_SIGNING_ALLOWED="NO"
似乎可以解决问题。
答案 2 :(得分:8)
不幸的是,如果没有代码签名,在发布模式下构建应用程序可能会很困难。您将从构建系统中获得错误,例如:
CodeSign error: code signing is required for product type 'Application' in SDK
'iOS 5.1'
在这种情况下,您应将目标配置为在发布模式下使用开发人员/团队通配符(*)签名身份。该应用程序将在您构建时与其签名,您可以将其发送给您的客户,以便他们可以将其重新签名。这就是我们大多数外包开发人员所做的事情。
然后,您可以通过删除应用中的各种文件(例如_CodeSignature
)并使用codesign
工具从应用程序二进制文件中删除信息来删除代码签名信息。但我不确定这有多容易。但这并不是必不可少的。配置文件或签名信息中没有任何敏感信息。
答案 3 :(得分:3)
在Project Navigator中,选择您的项目并打开" Build Settings"您项目的一部分(而不是任何特定目标)。
在"代码签名"下,找到"代码签名身份"并且对于调试和发布模式设置"任何iOS SDK"到#"不要代码签名"。