当从Xcode推送通知安装生成工作,但是当安装Ipa它不工作

我在我的应用程序中实现推送通知,它正在工作,当我从xcode安装生成,但不工作时,我通过diawi.com生成的链接安装应用程序为什么发生这种情况?

推动证书是不同的开发和生产

  • 如果你从xcode安装 – 它使用开发证书

  • 如果从diawi.com安装 – 它使用生产证书

在parsing,com我想你已经上传.p12文件生成的开发证书。

你必须上传生产证书的.p12文件然后检查。

作为@sadiqxs通知有两种types的证书,并在评论中,你可以find优秀的simplePush代码( http://d1xzuxjlafny7l.cloudfront.net/downloads/SimplePush.zip )。

但是一个经常被遗忘的东西!

当您编译为生产(ad-hoc)并从Xcode进行部署时,您的deviceToken 更改 (!!!)。 我build议你要做的是:

  1. 在开发人员中心创build开发人员和生产证书(您已经拥有)
  2. 下载这个简单的推送应用
  3. 阅读你的deviceToken进行开发env并检查它是否工作
  4. NSLog方法中的令牌: -(void)application:didRegisterForRemoteNotificationsWithDeviceToken:

样品:

 - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken { NSString *dt = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]; dt = [dt stringByReplacingOccurrencesOfString:@" " withString:@""]; NSLog(@"%@",dt"); } 
  1. 检查设备日志并阅读生产令牌
  2. 如果推到设备尝试简单的推

6a)如果是,问题就解决了

6b)如果没有,并且您收到dev env的推送,那么肯定会遇到证书问题并重新生成它们

当你使用SimplePush脚本的时候,记得把沙箱中的url改成生产(gateway.push.apple.com)。

该网站安装IPA与临时分配。

对于临时推送通知,您需要使用Apple的生产推送服务器,即gateway.push.apple.com

我想你是从Xcode安装时使用沙箱推送服务器。

上传.p12进行parsing制作以获取ipa上的通知。

迟到这个问题,但有一个类似的麻烦,所以我想分享经验。 正如@sadiqxs所指出的那样:

•如果从xcode安装 – 它使用开发证书

•如果从diawi.com安装 – 它使用生产证书

当您尝试debugging远程通知时,这形成一个大问题。 但是, 有一个简单的解决方法! 诀窍是安装一次AdHoc构build,这将使用生产证书注册电话。 然后在你的注册方法中添加下面的代码块(代码中你决定注册用户的地方)。

 #ifndef DEBUG //your code to register for notifications, something along the lines of UIApplication* application = [UIApplication sharedApplication]; [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; #endif 

这将做什么,当你通过XCode连续编译运行应用程序时,跳过注册语句,从而保持生产通知不会进入!

希望这可以帮助