我怎样才能对iOS .xarchive进行代码签名,这样客户端才能正常辞职? (使用推送通知)

我需要使用开发人员configuration文件创build一个iOS .xarchive文件,客户端可以使用其分发configuration文件来辞职。

(我已经读过,但没有任何真正的解决scheme: 如何将iOS应用程序发送到客户端,让他们代码签名 )

客户不想分享他们的私钥,也不会让我在会员中心的“开发者”之上访问。 而我们不想分享我们的源代码。

我们需要支持推送通知,所以这意味着我们需要一个完全合格的应用程序ID。

我找不到一种方法可以让我创build和导出一个用'aps production','get-task-allow'作为false签名​​的.xarchive,但是也可以使用与客户端分发证书匹配的证书。

这在Xcode中感觉就像是一个bug,不应该把'aps production'和'get-task-allow'的改变和configuration绑定在一起,而不是configuration文件的types。 我正在使用'发布',但与我的开发人员configuration文件。

我错过了什么,或者这是不可能的?

我通过反复试验找出了这个问题的答案。 即使技术笔记和大多数networking资源说,如果您使用XCode4 +,您不需要一个entitlements.plist,有某些情况下,你在做什么。 上面的问题代表了两种情况:

  • 构build发布configuration(即:存档),但使用开发人员configurationconfiguration文件进行签名
  • 使用推送通知

我最终的自定义权利.plist有3个值:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>get-task-allow</key> <false/> <key>aps-environment</key> <string>production</string> <key>keychain-access-groups</key> <array> <string>L23874DF.com.your.appid</string> </array> </dict> </plist> 

一旦我在我的entitlements.plist中有这个,我用开发人员configuration文件为这个应用程序IDbuild立。 然后我将其归档,并从组织者中导出归档。 一旦出口,我把它发送给我的客户。 客户能够用专门的configuration文件辞去档案,然后发回给我一个IPA文件,我把它加载到我的设备上。 我也成功地收到了来自Urban Airship的IPA推送通知!