使用xcodebuild构buildiOS应用程序而无需使用codesign

我们正在为其他公司构build一个应用程序。 他们持有签名密钥,宁愿不与我们分享。

应该可以分开构build和签名,但是如何在xcodebuild的命令行上指定它?

编辑为那些从search到这里。 被接受的答案是正确的 – 这是问题所要求的。 然而 ,整体情况是分离构build和密码(允许没有分配密钥的开发者构build应用程序) 。 较新版本的Xcode为此提供了工具。 这不是严格的答案这个问题,所以我把它作为一个要点: https : //gist.github.com/noamtm/5c3aaa0b615477162ccd 。

为了跳过代码签名,您可以像这样从控制台执行手动构build:

xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO 

另外使用-configuration-target-sdk参数来定义你的构build设置。

请参考这个stackoverflow的答案 ,以获得如何禁用Xcode代码签名的详细说明。

不幸的是,在没有代码签名的情况下,您可能很难在发布模式下构build应用 您将从构build系统中获取错误,例如:

 CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 5.1' 

在这种情况下,您应该configuration您的目标以在发行模式下使用您的开发者/团队通配符(*)签名标识。 应用程序将在构build时与该应用程序签署,并且可以将其发送给您的客户,以便他们可以辞职。 这是我们大部分外包开发者所做的。

然后,您可以通过删除应用程序中的各种文件(如_CodeSignature并使用代码工具从应用程序二进制文件中删除信息来删除代码签名信息。 但我不确定这是多么容易。 虽然这不是很重要 供应configuration文件或签署信息中没有任何敏感信息。

为了完全防止使用Xcode 7进行代码签名,我使用了以下所有选项:

 CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED="NO" CODE_SIGN_ENTITLEMENTS="" CODE_SIGNING_ALLOWED="NO" 

最后一个选项CODE_SIGNING_ALLOWED="NO"似乎有效。

在项目浏览器中select您的项目并打开您的项目的生成设置部分(而不是任何特定的目标)在代码签名find代码签名身份和debugging和发布模式设置任何iOS SKD不代码签名。