【发布时间】:2017-03-27 22:51:29
【问题描述】:
我正试图让我的几个朋友在 TestFlight 上测试我的应用。除了推送通知外,这一切都很好。我似乎无法提取他们的 Push 令牌。我已经仔细检查过,他们已授予应用程序获取推送令牌的权限。
在我看来,这一切看起来都很好:
然而,在我将应用程序上传到 TestFlight 后,Apple 确实会发送以下电子邮件:
缺少推送通知权利 - 您的应用包含 Apple 推送通知服务的 API,但应用签名中缺少 aps-environment 权利。要解决此问题,请确保您的 App ID 已启用供应门户中的推送通知。然后,使用包含 aps-environment 权利的分发配置文件对您的应用程序进行签名。这将创建正确的签名,您可以重新提交您的应用程序。有关详细信息,请参阅本地和推送通知编程指南中的“供应和开发”。如果您的应用程序不使用 Apple 推送通知服务,则无需执行任何操作。您可以从以后的提交中删除 API 以停止此警告。如果您使用第三方框架,您可能需要联系开发人员以获取有关删除 API 的信息。
从 TestFlight 下载新副本时,我能够提取自己设备的 Push 令牌。
我不知道发生了什么,我真的很想解决这个问题。谁能帮我吗?
万一有帮助。这是我的代码:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
let tokenChars = UnsafePointer<CChar>(deviceToken.bytes)
var tokenString = ""
for i in 0..<deviceToken.length {
tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]])
}
Constant.pushToken = tokenString
if (KeychainWrapper.hasValueForKey("user_id")){
let user = User()
user.id = Int(KeychainWrapper.stringForKey("user_id")!)!
ApiManager.sharedInstance.putPushToken(user){ (result, error) -> Void in
if error != nil {
//error
} else {
//success
}
}
}
}
【问题讨论】:
-
将链接沙箱从服务器端更改为苹果。