准备一个无符号的Xcarchive

TLDR; 问题:是否有办法准备一个XArchive,然后他们可以自己分配configuration文件并使用合适的分发证书进行签名?

长问题:我的客户向我发送了一个供应configuration文件,用于为他们开发的应用程序。 他们不想给我发送证书(.p12文件)。

他们给我的指示如下:

  1. 将供应configuration文件加载到您的系统上
  2. 在您的项目中,在“供应configuration文件”部分的目标的“生成设置”下select供应configuration文件
  3. 不要select代码签名标识
  4. 运行,产品 – >存档
  5. 给定分配选项时select“导出为XCode存档”

问题是,当执行第4步时,我得到以下错误:

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

他们的想法是他们会在应用程序旁边(从而保护他们的证书)。 有没有办法做到这一点?

能够使用以下技术做到这一点:

  1. 通过developer.apple.com创build内部分发configuration文件
  2. select任何AppID将与该configuration文件(或通配符)关联
  3. select要包含在configuration文件中的分发证书
  4. 通过下载并双击证书和configuration文件,在您的计算机上安装证书和configuration文件(或者,如果使用XCode 5,可以通过刷新帐户首选项窗格来完成)
  5. 最重要的是 :在您的项目中创build一个“Entitlements.plist”文件,并将其分配到您的“支持文件”组中,以获得更好的效果。 添加一个关键到这个文件,并从关键字的下拉列表中select“get-task-allow”或“可以debugging”(这取决于你的plist编辑器是否显示原始键值)。 值应该是“否”
  6. 在项目构build设置中的“代码签名”部分下,执行以下操作:
    1. 在“ 代码签名授权”设置中,键入您的.xcodeproj文件所在的相对path,以及Entitlements.plist所在的位置。 例如,如果您的.xcodeproj文件驻留在名为“MyApp”的子文件夹中,并且您的Entitlements.plist文件存在于“MyApp”文件夹中,则将该值设置为:MyApp / Entitlements.plist
    2. 在“ 代码签名”部分下select“configuration文件”和“证书

瞧,通过产品 – >存档build立你的Xcarchive,并把它交给你的客户,他们将能够重新签署自己的个人资料和证书。

在terminal中使用xcodebuild命令为我工作。

 xcodebuild -project MyApp.xcodeproj -scheme MyApp -configuration Release clean archive -archivePath “buildArchive/MyApp.xcarchive" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO 

这在我的项目根目录的“buildArchive”子目录中创build了一个未签名的归档“MyApp.xcarchive”。