准备一个未签名的Xcarchive

6

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

长问题:我的客户为我开发的应用程序发送了一个配置文件。他们不想将其发布证书(.p12文件)发送给我。

他们给我的指示如下:

  1. 将配置文件加载到您的系统中
  2. 在项目中,在“构建设置”中选择目标下的配置文件,在“配置文件”部分中选择它
  3. 不要选择代码签名身份
  4. 运行,产品->归档
  5. 选择“作为XCode Archive导出”(Distribute选项)

问题是,在执行第4步时,我会收到以下错误:

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

他们的想法是在他们的一侧共同设计应用程序(从而保护他们的证书)。有没有办法做到这一点?

1
嗯...是的...如果没有分发证书,就无法对分发构建进行代码签名。如果您无法访问他们的iTunes开发帐户以生成自己的证书,则他们必须提供一个证书。 - GuybrushThreepwood
3个回答

5

对我而言,在终端中使用xcodebuild命令很有效。

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

这将在项目根目录下的“buildArchive”子目录中创建一个未签名的归档文件“MyApp.xcarchive”。


在使用此命令之前,需要将“代码签名标识”设置为“不进行代码签名”。 - Isuru Jayathissa
@Isutu Jayathissa - 对,我忘了提到这一点。谢谢你指出来。不知道是什么促使有人对此进行了负面评价 :( - archeopetrix
在Xcode 10.2.1上,您需要将CODE_SIGNING_ALLOWED=NO添加到脚本中。 - William Grand
下一个问题是:如何对未签名的xcarchive进行签名?Xcode会提示缺少配置文件,这是正确的,但不清楚如何使用脚本添加。 - William Grand

3
能够使用以下技术操作:
  1. 通过developer.apple.com创建一个“In House”发行配置文件
  2. 选择与此配置文件相关联的任何AppID(或通配符)
  3. 选择要包含在配置文件中的“分发”证书
  4. 通过下载并双击它们(或者如果使用XCode 5,则可以通过刷新帐户首选项窗格完成)将证书和配置文件都安装在计算机上
  5. 最重要的是:在您的项目中创建一个“Entitlements.plist”文件,并将其分配给您的“Supporting Files”组。向该文件添加一个键,并从键名的下拉列表中选择“get-task-allow”或“Can be debugged”(这取决于您的plist编辑器是否显示原始键值)。值应为“NO”
  6. 在您的项目的构建设置的代码签名部分执行以下操作:
    1. 代码签名权限设置中,键入相对路径,从.xcodeproj文件所在的位置到Entitlements.plist存在的位置。例如,如果您的.xcodeproj文件位于具有名为“MyApp”的子文件夹的文件夹中,并且您的Entitlements.plist文件存在于“MyApp”文件夹中,则应将该值设置为:MyApp / Entitlements.plist
    2. 代码签名部分中选择配置文件和证书
通过Product->Archive构建您的Xcarchive,然后将其交给客户端,他们将能够使用自己的配置文件和证书重新签名。

5
我觉得你并没有创建一个未签名的归档文件,相反,你是使用自己公司的分发证书对其进行签名。然后客户会使用他们自己的证书重新对你已签名的二进制文件进行签名。 - archeopetrix

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接