我一直在非常非常努力地创建一个简单的 iOS 应用程序,它可以接收推送通知。我这样做的唯一原因是为了建立一个程序供其他团队成员使用,并且还没有能够在网络其他地方找到这种指令的最新工作版本。我们的工作室对于 iOS 开发来说是相当新的,我个人对于 iOS 开发和 Xcode 完全没有经验。我已经从苹果和其他地方偶然发现了数十个教程、文章和问题帖子,我觉得我可能就快到了... ..。
这就是我要做的(注意我正在使用 Xcode 4.3,并且最初试图仅仅部署到 iOS 5.1,我猜想最近相对于 Xcode 的早期版本可能有一些改变,但是我对这些都是新的——并且发现它完全令人困惑和费解) :
1)我的 iPhone 上有一个启用了推送功能的配置文件
2)在我的测试 Xcode 项目中,我选择了那个供应配置文件作为签名标识(在构建设置 > 代码签名中)
3)我已经在 Summary 和 Info > Custom iOS Target Properties 下设置好了我的 bundle 标识符 * (我认为? ?)
4)在我的代表的 diFinishLaunchingWithOptions 中调用 registerForRemoteNotificationTypes
5)我已经在我的委托中设置了 did RegisterForRemoteNotificationsWithDeviceToken 和 did FallToRegisterForRemoteNotificationsWithError,分别记录设备令牌或错误
6)我在摘要下面检查了 Enable Entitments。
7)正下方选中的 Entitments File 是 Tinker6(我的测试项目的名称) ,它是在我选中 Enable Entitments 时自动生成的
8)在 Tinker6.entiments 文件中,我得到了以下内容(根据网络上几篇不同的帖子,我得出的结论是正确的,但是我找不到任何关于苹果自身的确切信息) :
更新
9)另外,我尝试了整个事情没有一个权利文件,并得到基本上相同的结果。
10)我的移动条款文件内容包括正确的权利(我扰乱了数字和域,但结构相同) :
<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,将 ap- 环境设置为 production,所有四种可能的组合,都是一样的。
我怎样才能通过这个? 哪里有这方面的明确文件?
—— 进一步的背景资料如下——
* 至于捆绑包 ID,我仍然不清楚应该如何设置相对于应用程序 ID 和配置文件 ID 在配置文件。在应用程序 ID 下的供应门户中,我有以下内容(同样,扰乱了数字和域名) :
把 bundle id 设置成这样:
我完全不确定这些是否正确,或者是否应该将其中一个或两个设置为12355456A7.com。随便啦,修补匠,虽然我之前试过,但没成功。
注意 我意识到有很多帖子有类似的标题,但是根据给出的文件名和其他信息,它们似乎都过时了,而且没有一个解决方案是有用的。我希望我提供的更详细的信息能保证得到高质量的回复。我可能会尽快分配一个赏金,如果你给出一个高质量的答案,导致一个解决方案,我会奖励你的赏金,以及推广你的答案通过推特和我的博客。特别是如果你交叉发布了一篇非常好的“这里是 一模一样500步骤,你需要得到一个简单的推送通知应用程序工作,包括供应和其他任何东西”的文章在你的博客或任何东西。