【问题标题】:CloudKit + no valid aps-environment entitlement errorCloudKit + no valid aps-environment entitlement 错误
【发布时间】:2015-02-12 04:26:57
【问题描述】:

我尝试在我的应用中使用CloudKit 订阅,但didReceiveRemoteNotification 没有被触发。

我将CKSubscription 保存到CloudKit。为了确保它们存在,当应用程序启动时,我将它们绘制出来,例如:

<CKSubscription: 0x15576310; ; Query Subscription: recordType=DailyVote, predicate=TRUEPREDICATE, subscriptionOptions=7, subscriptionID=1FA456A6-9BA5-411D-97B9-1EB57121A5D0, zoneID=(null)> predicate: TRUEPREDICATE subscriptionType: (Enum Value) subscriptionOptions: C.CKSubscriptionOptions

我尝试按照apple doc 的建议在 APN 服务器上注册我的设备,但调用了错误委托方法,并显示消息:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert, categories: nil))
    application.registerForRemoteNotifications()

    return true
}

func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {

    println("error: \(error.localizedDescription)")
    //error: no valid aps-environment entitlement found for application
}
  • CloudKit 功能已开启
  • 我没有无效的配置文件
  • 我成功了:Xcode > Preferences > Accounts > pick your Account > pick your Team > View Details > PRESS REFRESH BUTTON
  • 我什至创建了一个新的应用程序,使用新的 iCloud 容器,移动了所有逻辑,但错误是一样的,订阅通知不起作用。

【问题讨论】:

  • 您确定推送通知的后端配置正确并发布推送通知吗?
  • 如果你在容器上做一个accountStatusWithCompletionHandler,它会返回什么?它是否返回可用状态?
  • 返回Available
  • 可能是您的配置文件设置不正确,或者可能是 Xcode 使用了不同的配置文件(您是否将其设置为自动选择配置文件?):stackoverflow.com/questions/10987102/…
  • @János 还不错。我将其发布为评论而不是答案是有原因的。也不要相信文档,它通常是错误的或仅适用于旧版本的 iOS。相反,你必须相信实际行为——你现在已经做到了。 :-) 抱歉,我目前没有什么可以提供的,除了可能要创建一个新的 Xcode 项目并尝试重现该错误。

标签: ios apple-push-notifications cloudkit cksubscription


【解决方案1】:

即使 Apple Doc 显示 here您无需在会员中心为应用的显式应用 ID 启用推送通知即可接收订阅通知。当您启用 CloudKit 时,Xcode 会自动将 APNs 权利添加到您的权利文件中。

如果您在Developer Portal 下的App IDs 下添加Push Notification,它将起作用,或者至少对我来说第二次尝试它起作用了。

【讨论】:

    【解决方案2】:

    这个错误主要是提示,你使用的provisioning profile不支持aps-environment,修改app id后请务必刷新provisioning profile,

    试试这个,在文本编辑器中打开您的配置文件并搜索以下内容,

    aps 环境

    如果你没有找到这个,那么问题是相关的配置文件,如果有,那么试试这个..

    How to fix "no valid 'aps-environment' entitlement string found for application" in Xcode 4.3?

    【讨论】:

      猜你喜欢
      • 2011-08-06
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-16
      相关资源
      最近更新 更多