我一直在非常努力地创建一个可以接收推送通知的简单iOS应用程序。我这样做的唯一理由是为其他团队成员建立了使用程序,并且无法在网络上的其他地方找到此类指令的最新工作版本。对于iOS开发人员来说,我们的商店还很陌生,我个人对iOS开发人员和Xcode完全没有经验。我偶然发现了来自苹果公司和其他地方的数十篇教程,文章和故障发布,我觉得我可能快要出现了……
这是我必须要做的(请注意,我使用的是Xcode 4.3,最初尝试仅部署到iOS 5.1,我发现相对于早期版本的Xcode,最近发生了一些变化,但是我还是新手。这-并且发现它完全令人困惑和困惑):
1)我在iPhone上启用了推送功能的配置文件
2)在我的测试Xcode项目中,我已选择了配置文件作为签名身份(在Build Settings> Code Signing中)
3)我已在“摘要和信息”>“自定义iOS目标属性”下正确设置了我的捆绑包标识符*(我认为??)
4)我在我的代表的didFinishLaunchingWithOptions中调用了registerForRemoteNotificationTypes
5)我的委托中有didRegisterForRemoteNotificationsWithDeviceToken和didFailToRegisterForRemoteNotificationsWithError,分别设置为记录设备令牌或错误
6)我在摘要下选中了启用权利。
7)在所选的权利文件的正下方,是Tinker6(我的测试项目的名称),该文件是在我选中“启用权利”时自动生成的
8)在Tinker6.entitlements文件中,我得到了以下内容(基于网络上的许多不同帖子,我收集的内容是正确的,但我无法从Apple本身找到任何确定的信息):
更新
9)另外,我尝试了没有授权文件的整个过程,并且得到了基本上相同的结果。
10)我的mobileprovision文件内容正确包含权利(我已经打乱了数字和域名,但结构上相同):
<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设置为生产,所有四个可能的组合都相同。
我该如何克服?确切的文件在哪里?
- 随后的背景 -
*就捆绑包ID而言,我仍然不清楚应如何在Provisioning配置文件中相对于应用程序ID和配置文件ID进行设置。在App ID下的Provisioning门户中,我有这个(同样,对数字和域进行了加密):
并设置了两个地方的捆绑ID,我有这个:
我根本不确定这些是正确的,还是不确定是否应将其中之一或两者都设置为12355456A7.com.whatever.tinker,尽管我已经在此过程的早期尝试过这些方法,但均未成功...
请注意,我意识到有很多标题相似的帖子,但是根据文件名和给出的名称,它们似乎都已经过时了,事实上,这些解决方案似乎都没有用。我希望我所提供的更多细节可以保证质量。我可能会尽快分配赏金,如果您给出的高质量答案能够带来解决方案,我将奖励您赏金,并通过Twitter和我的博客推广您的答案。特别是如果你crosspost发布一个真正的好“这里是确切的,你需要得到一个简单的推送通知的应用程序工作,包括供应和任何其他500步”你的博客或任何物品。