在mac上配置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,点击添加,输入密码

在xcode中配置:

然后在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的问题

时间: 2024-11-08 14:10:18

在mac上配置push notification的问题的相关文章

mac上配置php开发环境

玉忠之前在我的mac上配置过,当时项目不能区分大小写,所以就没成功,我现在在他得基础上继续配置,希望成功. 教程:http://my.oschina.net/joanfen/blog/171109 以这个教程为准. 1.apache sudo apachectl start sudo apachectl -v 2.php /etc/apache2/  找到httpd.conf  httpd-2.conf是default 取消#LoadModule php5_module libexec/apac

Delphi for iOS开发指南(1):在Mac上配置你的开发环境

http://cache.baiducontent.com/c?m=9d78d513d99516f11ab7cf690d678c3b584380122ba7a0020fd18438e4732b40506793ac57240773a4d20c1116dc4348adb0687d6d4566f58cc9fb57c0ebcc757a9f2743215dd01d05d36ef39c00388477cb4deedb5ca0bcfb3092aad2d2de49008a155e2bdea7960c575299

教你在mac上配置adb环境变量!!附上adb无法识别M2的解决办法

[经验技巧] 教你在mac上配置adb环境变量!!附上adb无法识别M2的解决办法 楼主表于 2012-11-13 15:47:26 最近小编突然换了mac做了主力机,作为一个习惯在Windows使用adb刷机和安装卸载软件的屌丝来说,突然不能使用adb简直就是痛不欲生啊.还好经过度娘的指点,我成功的配置了环境变量. 下面就跟大家简单说一下具体的一些步骤,其中我为了大家更容易理解,精简掉了一些无关紧要的步骤,该教程只限于配置使用adb命令刷机或者做一些简单操作的用户~ -------------

Mac上配置GTK环境

Mac上配置GTK环境 安装command line工具, 如果安装了Xcode, 就直接跳过该步骤 安装Homebrew 使用brew install pkg-config 使用brew install gtk+3 使用clang编译时, 使用clang 'pkg-config --libs --cflags gtk+-3.0' main.c 原文地址:https://www.cnblogs.com/caijunchao/p/10686703.html

在mac上配置Apache服务器

Apache服务器是mac上自带的服务器,Apache的安装目录在:/etc/apache2/,etc默认是隐藏的. 查看方式有: 1.dock下右键Finder,选择"前往文件夹",输入"/etc". 2.在终端输入"open /etc" . 打开Apache服务器的方式: sudo apachectl start .打开后,在Safari浏览器地址栏输入 “http://localhost”,可以看到内容为“It works!”的页面. 关闭

Mac上配置不同版本的JDK

Mac上JDK的版本为1.8,编译AOSP时发现需要JDK 1.7.想找一种比较容易切换JDK版本的方式,经过一番Google发现Jenv比较合适. 安装Jenv至少有三种方式: - $ git clone https://github.com/gcuisinier/jenv.git ~/.jenv - $ curl -L -s get.jenv.io | bash - $ brew install jenv 我是用第三种方式安装的. 安装后运行          jenv doctor 报了两

mac上配置python的安装环境杂记

现在的python的包都是通过pip安装的. 所以非常重要的一步是配置pip的安装源 vi ~/.pip/pip.conf [global] index-url = http://pypi.douban.com/simple 另外mac上python的包有两个位置 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/Library/Python/2.7/site-packages 第一个位置优先.

Mac上配置Git和设置SSH

一.配置Git1.下载安装gitMac上是自带git的,所以不需要自己下载和安装 2.生成SSH KEY$ ssh-keygen -t rsa -C [email protected] 注意:这里的邮箱填写你提交代码时要用的邮箱 3.查看.pub文件$ cd ~/.ssh 切换目录到这个路径 $ vim id_rsa.pub 将这个文件的内容显示到终端上 当然你也可以直接前往.shh文件所在的路径(前往~/.ssh 这个路径),然后用xcode打开.pub这个文件,同样可以看到里面的内容 4.将

Mac上配置 Ruby on Rails和Git

Ruby on Rails on Mac ==================================================================================== http://morizyun.github.io/blog/marvericks-rails-setup-ruby-rvm-msyql/ for general : useful : http://qiita.com/keneo/items/0a58b188183b5100e3af f