当从xcode推送通知的安装版本工作时,但是当安装ipa时,它无法正常工作

时间:2015-02-06 10:51:41

标签: ios iphone apple-push-notifications

我在我的应用程序中实现了推送通知,当我从xcode安装构建但当我通过diawi.com生成的链接安装应用程序时无法正常工作,它正在工作吗?

5 个答案:

答案 0 :(得分:3)

推送apns证书对于Development& amp;生产

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

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

在解析时,我认为你已经上传了从开发证书生成的.p12文件。

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

答案 1 :(得分:1)

正如@sadiqxs注意到有两种类型的证书,在评论中你可以找到优秀的simplePush代码(http://d1xzuxjlafny7l.cloudfront.net/downloads/SimplePush.zip)。

但一个经常被遗忘的事情!

您编译到生产(ad-hoc)并从Xcode部署时,deviceToken 已更改(!!!)。我建议你做的是:

  1. 在开发人员中心(您已有的)创建开发人员和生产证书
  2. 下载这个简单的推送应用
  3. 阅读您的deviceToken以获取开发环境,并检查它是否正常工作
  4. NSLog方法中的令牌:-(void)application:didRegisterForRemoteNotificationsWithDeviceToken:
  5. 示例:

    - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {
        NSString *dt = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
        dt = [dt stringByReplacingOccurrencesOfString:@" " withString:@""];
        NSLog(@"%@",dt");
    }
    
    1. 查看设备日志并阅读生产令牌
    2. 如果推送到设备,请尝试简单推送
    3. 6a)如果是,问题解决了

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

      使用SimplePush脚本时,请记得将沙箱中的URL更改为生产(gateway.push.apple.com)。

答案 2 :(得分:0)

网站使用临时分发安装IPA。

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

我认为您在使用沙盒推送服务器时从Xcode安装它。

答案 3 :(得分:0)

在解析时上传.p12用于生产,以获取ipa上的通知。

答案 4 :(得分:0)

这个问题的后期,但有一个类似的困难经历,所以以为我分享。正如@sadiqxs所说:

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

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

当您尝试调试远程通知时,这会形成一个大问题。但是,有一个简单的解决方法!诀窍是安装AdHoc构建一次,它将使用产品证书注册手机。然后在您的注册方法周围添加以下块(代码中您决定注册用户以进行注释的位置)。

#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在连续构建上运行应用程序时,这将会跳过register语句,从而保持生产通知的进入!

希望这有帮助