码迷,mamicode.com
首页 > 其他好文 > 详细

在mac上配置push notification的问题

时间:2014-06-30 10:48:04      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:push notification

在代码的deletegater中写:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge
                                                                           | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
    return YES;
}

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    NSLog(@"my device token=%@",deviceToken);
}

- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err
{
    NSString *str = [NSString stringWithFormat: @"Error: %@", err];
    NSLog(@"%@",str);
}

然后运行在真机上,得到机器的deviceToken


然后在生成的证书上双击Certificates.p12,点击添加,输入密码

bubuko.com,布布扣


在xcode中配置:

bubuko.com,布布扣


然后在mac上用终端到证书所在的文件夹,先看看mac是否能连上苹果服务器:

$ telnet gateway.sandbox.push.apple.com 2195
Trying 17.172.232.226...
Connected to gateway.sandbox.push-apple.com.akadns.net.
Escape character is '^]'.

如果出现上面的内容,说明没问题,如果不是,看看是不是防火墙什么的问题,然后接着把p12和aps_development.cer文件转为pem文件,把转完的两个pem文件合并为ck.pem

$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12
Enter Import Password: 
MAC verified OK
Enter PEM pass phrase: 
Verifying - Enter PEM pass phrase: 
$ cat PushChatCert.pem PushChatKey.pem > ck.pem

<img src="http://img.blog.csdn.net/20140628153305687" alt="" />
看看是否返回成功,如果返回一大堆字符串说明是成功的

最后到http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

下载那个simplepush.php文件,注意

<?php

// Put your device token here (without spaces):
$deviceToken ='d4bb74c6f54d5ff6a2fbb45ea9b083738bdba936a690138f58b4a8b5dc4c65e84';

// Put your private key's passphrase here:
$passphrase = '111111';

// Put your alert message here:
$message = 'My first push notification!';
这个$passphrace的mac会自动转成中文的引号,导致连接不成功,报下面的错误,
kouyuukenmatoMacBook-Pro:Archive2 kouyuuken$ php simplepush.php 

Warning: stream_socket_client(): Unable to set private key file `/Users/kouyuuken/Desktop/ios项目/Archive2/ck.pem' in /Users/kouyuuken/Desktop/ios项目/Archive2/simplepush.php on line 21

Warning: stream_socket_client(): failed to create an SSL handle in /Users/kouyuuken/Desktop/ios项目/Archive2/simplepush.php on line 21

Warning: stream_socket_client(): Failed to enable crypto in /Users/kouyuuken/Desktop/ios项目/Archive2/simplepush.php on line 21

Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /Users/kouyuuken/Desktop/ios项目/Archive2/simplepush.php on line 21
Failed to connect: 0 

所以必须自己改成英文的引号

如果是成功,会出现以下信息,device也会收到notification

kouyuukenmatoMacBook-Pro:Archive2 kouyuuken$ php simplepush.php 
Connected to APNS
Message successfully delivered




在mac上配置push notification的问题,布布扣,bubuko.com

在mac上配置push notification的问题

标签:push notification

原文地址:http://blog.csdn.net/baidu_nod/article/details/35567777

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!