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.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
根据提供的引用[1],TNetHttpClient是Delphi中的一个HTTP客户端组件,而APNSApple Push Notification Service的缩写,是苹果公司提供的推送服务。因此,TNetHttpClient APNS是使用Delphi中的TNetHttpClient组件来与APNS进行通信。 使用TNetHttpClient APNS的步骤如下: 1.创建TNetHttpClient对象,并设置请求的URL和请求方法为POST。 2.设置请求头部信息,包括Content-Type、Authorizationapns-topic等信息。 3.设置请求体信息,包括设备的token、推送的payload等信息。 4.发送请求并获取响应结果。 以下是一个使用TNetHttpClient APNS发送推送通知的示例代码: ```delphi uses System.Net.HttpClient, System.Net.HttpClientComponent; procedure SendAPNSNotification; var HttpClient: TNetHttpClient; Request: TNetHTTPRequest; Response: IHTTPResponse; APNSUrl: string; APNSPayload: string; APNSToken: string; APNSAuth: string; APNSTopic: string; begin HttpClient := TNetHttpClient.Create(nil); Request := TNetHTTPRequest.Create(nil); try APNSUrl := 'https://api.push.apple.com/3/device/'; APNSPayload := '{"aps":{"alert":"Hello World!"}}'; APNSToken := 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; APNSAuth := 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; APNSTopic := 'com.example.app'; Request.MethodString := 'POST'; Request.URL := APNSUrl + APNSToken; Request.ContentType := 'application/json'; Request.CustomHeaders['Authorization'] := APNSAuth; Request.CustomHeaders['apns-topic'] := APNSTopic; Request.Source := TStringStream.Create(APNSPayload, TEncoding.UTF8); Response := HttpClient.Execute(Request); if Response.StatusCode = 200 then ShowMessage('Push notification sent successfully.') else ShowMessage('Failed to send push notification.'); finally Request.Free; HttpClient.Free; end; end; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值