以下是我所达到的步骤(请注意,我正在使用Xcode 4.3,最初尝试部署到iOS 5.1,我了解一些东西可能与之前的Xcode版本有所不同,但是我对所有这些都很陌生,并且感到非常困惑和复杂):
1)我在我的iPhone上有一个启用了Push的配置文件
2)在我的测试Xcode项目中,我选择了该配置文件作为签名标识(在“Build Settings> Code Signing”中)
3)我已经在“摘要”和“信息”>“自定义iOS目标属性”下正确设置了我的捆绑标识符*(我想是这样的??)
4)我在委托的didFinishLaunchingWithOptions中调用了registerForRemoteNotificationTypes。
5)我在委托中设置了didRegisterForRemoteNotificationsWithDeviceToken和didFailToRegisterForRemoteNotificationsWithError,以记录设备令牌或错误。
6)我在摘要下方勾选了启用权利。
7)就在那下面,在选择的权利文件中是Tinker6(我的测试项目的名称),当我勾选启用权限时会自动生成。
8)在Tinker6.entitlements文件中,我有以下内容(根据网络上的几篇不同帖子收集到的信息,我认为这是正确的,但无法从苹果官方找到任何明确的说明):
更新
9) 同样,我已经尝试过不使用entitlements文件的整个过程,并且得到了基本相同的结果。
10) 我的mobileprovision文件内容包括正确的entitlements(我已经混淆了数字和域,但结构相同):
<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>12355456A7.*</string>
</array>
当我尝试在我的设备上运行此代码时,在Xcode输出中出现以下错误:
2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error:
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
entitlement string found for application" UserInfo=0x24a3b0
{NSLocalizedDescription=no valid 'aps-environment' entitlement string
found for application}
我已尝试将get-task-allow设置为NO,aps-environment设置为production,以及四种可能的组合,但结果都一样。
如何解决这个问题?在哪里可以找到权威的文档?
--后续背景介绍如下--
就bundle id而言,我仍不清楚应该如何将其设置与Provisioning配置文件中的App Id和Profile id相关联。在Provisioning门户的App Ids下,我有以下内容(再次混淆了数字和域名):
当两个位置设置bundle id时,我有以下内容:
注意:我意识到有许多类似标题的帖子,但它们似乎都已过时,基于给出的文件名等内容,并且解决方案似乎都没有用。我希望我提供的更详细的信息将获得高质量的回答。我可能会尽快分配赏金,如果您提供了一个高质量的答案,导致解决方案,我将授予您赏金,并通过Twitter和我的博客推广您的答案。特别是如果您在博客或其他地方发布一个真正好的“这里是您需要进行500个确切步骤来使简单的推送通知应用程序工作,包括配置和其他任何内容”的文章。