`
shappy1978
  • 浏览: 700555 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

apns备忘

阅读更多

以前生成的develop证书过期了,今天死活client都无法获取tockenid了,报告“未找到应用程序的xxx的全力字符串”,经过一翻调试,重做证书后,ok

1 push(certification)证书必须和开发证书(key)一起才能导出为p12

2 必须手动把支持push的profile加入到device,之前一直用team develop的证书,可以运行,但是不支持push,导致有上面的错误。

3 第一次安装后启动程序会提示是否允许通知,以后即使卸载后再次安装都不会再有提示,即使通知被禁用也不会提示打开

//***************************************************

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ProvisioningDevelopment/ProvisioningDevelopment.html

Provisioning and Development

Sandbox and Production Environments

To develop and deploy the provider side of a client/server application, you must get SSL certificates from the iPhone Provisioning Portal. Each certificate is limited to a single application, identified by its bundle ID. Each certificate is also limited to one of two development environments, each with its own assigned IP address:

  • Sandbox: The sandbox environment is used for initial development and testing of the provider application. It provides the same set of services as the production environment, although with a smaller number of server units. The sandbox environment also acts a virtual device, enabling simulated end-to-end testing.

    You access the sandbox environment at gateway.sandbox.push.apple.com, outbound TCP port 2195.

  • Production: Use the production environment when building the production version of the provider application. Applications using the production environment must meet Apple’s reliability requirements.

    You access the production environment at gateway.push.apple.com, outbound TCP port 2195.

You must get separate certificates for the sandbox (development) environment and the production environment. The certificates are associated with an identifier of the application that is the recipient of push notifications; this identifier includes the application’s bundle ID. When you create a provisioning profile for one of the environments, the requisite entitlements are automatically added to the profile, including the entitlement specific to push notifications, <aps-environment>. The two provisioning profiles are called Development and Distribution. The Distribution provisioning profile is a requirement for submitting your application to the App Store.

You can determine in Xcode which environment you are in by the selection of a code-signing identity. If you see an “iPhone Developer: Firstname Lastname” certificate/provisioning profile pair, you are in the sandbox environment. If you see an “iPhone Distribution: Companyname” certificate/provisioning profile pair, you are in the production environment. It is a good idea to create a Distribution release configuration in Xcode to help you further differentiate the environments.

Although an SSL certificate is not put into a provisioning profile, the <aps-environment> is added to the profile because of the association of the certificate and a particular application ID. As a result this entitlement is built into the application, which enables it to receive push notifications.

Provisioning Procedures

In the iOS Developer Program, each member on a development team has one of three roles: team agent, team admin, and team member. The roles differ in relation to iPhone development certificates and provisioning profiles. The team agent is the only person on the team who can create Development (Sandbox) SSL certificates and Distribution (Production) SSL certificates. The team admin and the team agent can both create both Development and Distribution provisioning profiles. Team members may only download and install certificates and provisioning profiles. The procedures in the following sections make reference to these roles.

Note: The iPhone Provisioning Portal. makes available to all iOS Developer Program members theProgram Portal User Guide and a series of videos that explain all aspects of certificate creation and provisioning. The following sections focus on APNs-specific aspects of the process and summarize other aspects. To access the portal, iOS Developer Program members should go to the iOS Dev Center (http://developer.apple.com/devcenter/ios), log in, and click the Program Portal button.

 

Creating the SSL Certificate and Keys

In the program portal of the iOS Dev Center, the team agent selects the application IDs for APNs. He also completes the following steps to create the SSL certificate:

  1. Click App IDs in the sidebar on the left side of the window.

    The next page displays your valid application IDs. An application ID consists of an application’s bundle ID prefixed with a ten-character code generated by Apple. The team admin must enter the bundle ID. For a certificate, it must incorporate a specific bundle ID; you cannot use a “wildcard” application ID.

  2. Locate the application ID for the sandbox SSL certificate (and that is associated with the Development provisioning profile) and click Configure.

    You must see “Available” under the Apple Push Notification Service column to configure a certificate for this application ID.

  3. In the Configure App ID page, check the Enable Push Notification Services box and click the Configure button.

    Clicking this button launches an APNs Assistant, which guides you through the next series of steps.

  4. The first step requires that you launch the Keychain Access application and generate a Certificate Signing Request (CSR).

    Follow the instructions presented in the assistant. When you are finished generating a CSR, click Continue in Keychain Access to return to the APNs Assistant.

    When you create a CSR, Keychain Access generates a private and a public cryptographic key pair. The private key is put into your Login keychain by default. The public key is included in the CSR sent to the provisioning authority. When the provisioning authority sends the certificate back to you, one of the items in that certificate is the public key.

  5. In the Submit Certificate Signing Request pane, click Choose File. Navigate to the CSR file you created in the previous step and select it.

  6. Click the Generate button.

    While displaying the Generate Your Certificate pane, the Assistant configures and generates your Client SSL Certificate. If it succeeds, it displays the message “Your APNs Certificate has been generated.” Click Continue to proceed to the next step.

  7. In the next pane, click the Download Now button to download the certificate file to your download location. Navigate to that location and double-click the certificate file (which has an extension of cer) to install it in your keychain. When you are finished, click Done in the APNs Assistant.

    Double-clicking the file launches Keychain Access. Make sure you install the certificate in your login keychain on the computer you are using for provider development. In Keychain Access, ensure that your certificate user ID matches your application’s bundle ID. The APNs SSL certificate should be installed on your notification server.

When you finish these steps you are returned to the Configure App ID page of the iOS Dev Center portal. The certificate should be badged with a green circle and the label “Enabled”.

To create a certificate for the production environment, repeat the same procedure but choose the application ID for the production certificate.

Creating and Installing the Provisioning Profile

The Team Admin or Team Agent must next create the provisioning profile (Development or Distribution) used in the server side of remote-notification development. The provisioning profile is a collection of assets that associates developers of an application and their devices with an authorized development team and enables those devices to be used for testing. The profile contains certificates, device identifiers, the application’s bundle ID, and all entitlements, including <aps-environment>. All team members must install the provisioning profile on the devices on which they will run and test application code. Refer to theProgram Portal User Guide for the details of provisioning-profile creation.

To download and install the provisioning profile, team members should complete the following steps:

  1. Go to the Provisioning page in the program portal.

  2. Create a new provisioning profile that contains the App ID you registered for APNs.

  3. Modify any existing profile before you download the new one.

    You have to modify the profile in some minor way (for example, toggle an option) for the portal to generate a new provisioning profile. If the profile isn't so “dirtied,” you're given the original profile without the push entitlements.

  4. From the download location, drag the profile file (which has an extension of mobileprovision) onto the Xcode or iTunes application icons.

    Alternatively, you can move the profile file to ~/Library/MobileDevice/Provisioning Profiles. Create the directory if it does not exist.

  5. Verify that the entitlements in the provisioning-profile file are correct. To do this, open the .mobileprovision file in a text editor. The contents of the file are structured in XML. In the Entitlements dictionary locate the aps-environment key. For a development provisioning profile, the string value of this key should be development; for a distribution provisioning profile, the string value should beproduction.

  6. In the Xcode Organizer window, go the Provisioning Profiles section and install the profile on your device.

When you build the project, the binary is now signed by the certificate using the private key.

Installing the SSL Certificate and Key on the Server

You should install the SSL distribution certificate and private cryptographic key you obtained earlier on the server computer on which the provider code runs and from which it connects with the sandbox or production versions of APNs. To do so, complete the following steps:

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

  2. Find the certificate you want to install and open its disclosure triangle.

    When you open the disclosure triangle, you'll see both a certificate and a private key.

  3. Select both the certificate and key, select Export Items from the File menu, 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 Export Items from the File menu. Choose 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.

 

分享到:
评论

相关推荐

    notnoop-java-apns.zip_com.notnoop.apns_java apns_notnoop apns_no

    在Java开发环境中,当需要构建一个能够向Apple Push Notification Service (APNS)发送推送通知的服务时,`notnoop-java-apns`是一个常用的第三方库。这个压缩包`notnoop-java-apns.zip`包含了开发者用于实现这一功能...

    最新java整合APNS推送服务

    Java整合APNS推送服务是将Java应用程序与Apple Push Notification Service(APNS)相结合,以便能够向iOS和tvOS设备发送即时消息。APNS是苹果公司提供的一个服务,它允许开发者在用户不打开应用的情况下,向他们的...

    java调用apns推送的实现

    Java调用APNs(Apple Push Notification service)推送是iOS应用开发者在进行远程通知服务时常见的需求。APNs是苹果提供的一项服务,允许开发者将实时消息推送到用户的iOS设备上,如应用更新、消息提醒等。在Java...

    JavaAPNS开源库apns4j.zip

    apns4j 是 Apple Push Notification Service 的 Java 实现!Maven:   &lt;groupId&gt;com.github.teaey&lt;/groupId&gt;   &lt;artifactId&gt;apns4j   &lt;version&gt;1.0.1  示例代码:KeyStoreWraper keyStore = ...

    ApnsPHP_apnsphp_php_

    APNSPHP是一个专门为苹果推送通知服务(Apple Push Notification service,简称APNs)设计的PHP库。这个库的主要目的是帮助PHP开发者方便地与苹果服务器进行通信,以便向iOS、macOS和watchOS设备发送推送通知。从...

    .net APNS推送

    .NET APNS推送是一个基于.NET框架实现的用于向Apple Push Notification Service (APNS)发送推送通知的项目。APNS是苹果公司提供的服务,允许开发者通过云端将实时消息推送到iOS、iPadOS、watchOS以及macOS设备上的...

    C# apns 推送

    【C# APNS推送】 APNS(Apple Push Notification Service)是苹果公司提供的一个服务,用于向iOS、iPadOS、watchOS、tvOS等设备发送实时通知。开发者可以通过使用APNS来实现在应用未运行时向用户发送消息的功能,...

    C# .net 实现APNS

    在IT行业中,苹果推送通知服务(Apple Push Notification Service,简称APNS)是苹果公司提供的一项服务,用于向iOS、iPadOS、watchOS以及macOS设备发送实时的通知。开发者可以使用APNS来实现在应用程序不在前台运行...

    php实现的APNs服务端

    APNs通过安全的TLS(Transport Layer Security)连接与应用服务器进行通信,服务器将推送通知发送到APNs,然后APNs将这些通知转发给目标设备。这个过程涉及到证书的创建、设备Token的获取以及推送消息的格式化。 1....

    iOS苹果推送apns测试工具.zip

    在iOS应用开发中,苹果推送服务(Apple Push Notification service,简称APNs)是苹果公司提供的一项功能,允许开发者向已安装其应用的iOS设备发送消息、通知和其他数据。`iOS苹果推送apns测试工具.zip`文件包含的...

    apns.jar包用于apns推送

    apns.jar包,用于apns推送,直接导入就可以使用了

    tornado_apns, 在PyAPNS上,基于 Tornado的异步 APNS.zip

    tornado_apns, 在PyAPNS上,基于 Tornado的异步 APNS tornado_apns用于与苹果推送通知服务( APNs ) 进行 Tornado 异步编程的python 库示例用法import timefrom apns import APNs, Payloadfrom

    APNS消息推送服务端

    APNS(Apple Push Notification service)是苹果公司提供的一项服务,用于向iOS、iPadOS、watchOS、tvOS以及macOS设备发送远程通知。通过APNS,应用开发者可以在他们的应用程序不在前台运行时,仍然能够向用户发送...

    关于IOS_APNS推送消息(iphone端+服务端)

    在iOS应用开发中,Apple Push Notification service (APNs) 是苹果公司提供的一个关键服务,用于向用户的iPhone设备发送远程通知。这些通知可以是系统级别的消息,也可以是应用程序自定义的内容,比如新消息提醒或者...

    apns iphone源码下载

    APNs (Apple Push Notification service) 是苹果公司提供的一项服务,用于向iOS、iPadOS、watchOS、tvOS以及macOS设备发送即时推送通知。在本文中,我们将深入探讨APNs的工作原理、iPhone上的实现以及如何利用源码...

    iphone消息推送APNS

    **苹果推送通知服务(Apple Push Notification service,简称APNS)** APNS是苹果公司提供的一项服务,用于向iOS、iPadOS、watchOS、tvOS以及macOS设备推送通知。通过APNS,应用开发者可以在他们的应用不在前台运行...

    APNS推送jar

    阿里封装的APNS推送工具包 可以使用ios客户端的APNS推送功能

    Java向苹果服务器推送消息(Java实现HTTP/2协议发送APNS)

    APNs(Apple Push Notification service)是苹果公司提供的推送服务,允许开发者将消息推送到用户的iOS设备上。本教程将重点讲解如何使用Java实现基于HTTP/2协议的APNS推送,并假设你已经对JDK 11及以上版本有一定的...

    C# 苹果推送后台APNS

    **C# 苹果推送后台APNS** 苹果推送通知服务(Apple Push Notification service,简称APNS)是苹果公司为iOS、iPadOS、watchOS、tvOS等设备提供的一项功能,允许应用程序在未运行时接收消息。这些消息可以是提醒、...

    IOS APNS 官方开发文档

    ### IOS APNS 官方开发文档关键知识点解析 #### 关于本地通知与推送通知 - **本地通知与推送通知概述**:本地通知和推送通知在iOS应用开发中扮演着重要的角色,它们帮助开发者向用户传递信息,提升用户体验。这两...

Global site tag (gtag.js) - Google Analytics