ios push实现的简单实现步骤

本文详细介绍了iOS开发中Push通知的配置步骤,包括本地钥匙串生成证书请求文件、创建新的AppID、配置Push相关项目、创建mobileprovision文件等,并提供了AppDelegate中相关方法的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实push这个东西已经做了好几次了,但是每次要做的时候总会先下意识地上网搜索

因为个人觉得ios开发的时候证书和签名实在是让人头疼,可能还是不够熟悉整套ios开发与发布流程的原因·

过些天项目里要加push的推送功能,所以先做了下功课,大致记录了步骤,免得到时候又忘记.

A>本地钥匙串生成证书请求文件,XXX.certSignningRequest

B>developer.apple.com,创建新的appId,用于新的项目.这里有一点需要注意,identify要和工程中plist中的属性保持一致

C>在完成B之后Configurable一下push相关的项目,可以根据实际需求,分别选择developement或者production.在configrable的时候会用到步骤A中生成的certSignningRequest,最后我们可以得到XXX.csr证书文件。下载双击进行安装

D>再回到developer.apple.com,在provision中create新的XX.mobileprovision,OK之后down下来,然后在xcode中的organizer中添加

E>xcode创建新的工程,配置相关信息,着重强调identify.

F>在工程中的AppDelegate重写以下方法

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

    NSLog(@"Registering for push notifications...");    
    [[UIApplication sharedApplication] 
        registerForRemoteNotificationTypes:
        (UIRemoteNotificationTypeAlert | 
         UIRemoteNotificationTypeBadge | 
         UIRemoteNotificationTypeSound)];
       application.applicationIconBadgeNumber = 0; //程序开启,设置UIRemoteNotificationTypeBadge标识为0

}

//得到deviceToken
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 

    NSString *str = [NSString 
        stringWithFormat:@"Device Token=%@",deviceToken];
    NSLog(str);

}

//注册失败后输出相关信息
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err { 

    NSString *str = [NSString stringWithFormat: @"Error: %@", err];
    NSLog(str);    

}

//应用接收到push信息后我们自己的处理
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
    }    
}


当然了,最后还是要把一些本地的证书导出后给我们的服务器,这样服务器才能向APPLE发送消息,APPLE确定这些消息来源安全可靠的情况下,就会安装了对应APP的设备push消息了。服务器那边的设置我就不再累述了···

我写得简单了点。这里有更详细的描述。···

http://tiny4cocoa.com/thread-1406-1-1.html

PS:但是导出证书的地方步骤还没有官方来得简洁:https://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ProvisioningDevelopment/ProvisioningDevelopment.html#//apple_ref/doc/uid/TP40008194-CH104-SW1

{

  1. Open Keychain Access utility and click the My Certificates category in the left pane.

  2. Find the certificate you want to install and disclose its contents.

    You'll see both a certificate and a private key.

  3. Select both the certificate and key, choose File > Export Items, and export them as a Personal Information Exchange (.p12) file.

  4. Servers implemented in languages such as Ruby and Perl often are better able to deal with certificates in the Personal Information Exchange format. To convert the certificate to this format, complete the following steps:

    1. In KeyChain Access, select the certificate and choose File > Export Items. Select the Personal Information Exchange (.p12) option, select a save location, and click Save.

    2. Launch the Terminal application and enter the following command after the prompt:

      openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes

  5. Copy the .pem certificate to the new computer and install it in the appropriate place

}


OVER...



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值