gpt4 book ai didi

ios - APNS 推送通知已发送但未在 iOS 设备上收到

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:04 25 4
gpt4 key购买 nike

经过大量研究后,我发现这是一个很受欢迎的问题,但我发布了一个新问题,因为它们都没有帮助解决我的问题。

我正在关注 this tutorial以便为 iOS 设备创建 Push Notifications

看起来一切正常,因为当我执行 simplepush.php 代码时它返回

Connected to APNS

Message successfully delivered

但设备没有收到任何推送消息。

几个要点:

  • 是的,它是一个开发人员证书,它正在与 sandbox 服务器通信。生产问题没有问题。
  • 使用 Pusher 进行测试时它返回“APN 无效 token ”日志,但我认为 token 生成正确。

这就是我在 AppDelegate.m 文件中获取 token 的方式:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.

if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)])
{
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];

}
else
{
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
}

return YES;
}

#ifdef __IPHONE_8_0
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
//register to receive notifications
[application registerForRemoteNotifications];
}

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler
{
//handle the actions
if ([identifier isEqualToString:@"declineAction"]){
}
else if ([identifier isEqualToString:@"answerAction"]){
}
}
#endif

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSLog(@"My token is: %@", deviceToken);
}

-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"Failed to get Token, error: %@",error);
}

启动应用程序时的 token 响应(对我来说没问题):

2015-12-03 13:27:27.930 PushChat[598:246912] My token is: 8a0b645c 46c0547a 3078be82 52b4a82d 9b579530 fb9a902d>

可能发生了什么?

最佳答案

刚刚解决了同样的问题。在我的例子中,问题与证书或私钥无关,而是与通配符 App Id 有关。我有一个用于许多业务应用程序的应用程序包,所以我有一个通配符应用程序 ID com.domain.* 和一组关联的配置文件(开发、应用程序商店、临时)。我知道为了使用 Push Notifications,需要一个唯一的 App ID,事实上 XCode 会自动从通配符中生成唯一的 App ID。但这还不够:配置文件仍然连接到通配符 App Id。我必须使用与 com.domain.appname 唯一应用程序 ID 直接关联的新唯一 配置文件(我使用 XCode 自动生成的配置文件)对目标进行签名。当然,如果你想使用推送通知,你不能为多个应用程序使用一个配置文件,但你必须为每个应用程序 ID 创建一个配置文件。

If you plan to use services such as Game Center, In-App Purchase, and Push Notifications, or want a Bundle ID unique to a single app, use an explicit App ID.

关于ios - APNS 推送通知已发送但未在 iOS 设备上收到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34070583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com