registerUserNotificationSettings:
method of UIApplication
.registerForRemoteNotifications:
method of UIApplication
(iOS) or the method registerForRemoteNotificationTypes:
of NSApplication
(OS X).application:didRegisterForRemoteNotificationsWithDeviceToken:
method of UIApplicationDelegate
(iOS) or NSApplicationDelegate
(OS X) to receive the unique device token generated by the push service.application:didFailToRegisterForRemoteNotificationsWithError:
method of UIApplicationDelegate
(iOS) or NSApplicationDelegate
(OS X) to receive an error if the registration failed.application:didRegisterForRemoteNotificationsWithDeviceToken:
nor application:didFailToRegisterForRemoteNotificationsWithError:
is called, that means that this connection has not yet been established.aps-environment
(on iOS) or com.apple.developer.aps-environment
(on OS X) code signing entitlement. Xcode takes this entitlement from the provisioning profile used when building the app, and it controls which push environment the app will connect to in order to receive remote notifications.application:didFailToRegisterForRemoteNotificationsWithError:
will be called if the code signing entitlements for accessing the push service are invalid. If you have not implemented this method in your application, you should do that as a way of checking that your aps-environment
(iOS) or com.apple.developer.aps-environment
(OS X) entitlement is present at runtime.aps-environment
(iOS) or com.apple.developer.aps-environment
(OS X) entitlement shown.aps-environment
or com.apple.developer.aps-environment
entitlement is missing, check which provisioning profile is listed on the Summary sheet. Click the gray arrow to the right of the profile name to show it in Finder.aps-environment
or com.apple.developer.aps-environment
in the entitlements, you've either not configured your app ID for production push notifications, or you haven't updated your distribution provisioning profile since configuring your app ID.CFBundleIdentifier
matching this attribute.content-available
key, your app will receive the notification if iOS or OS X determines it is energy-efficient to do so. If the energy or data budget for the device has been exceeded, your app will not receive any more notifications with the content-available
key until the budget has been reset. This occurs once a day and cannot be changed by user or developer action. This throttle is disabled if the app is run from Xcode, so be sure to test your app by running it from the device to have the same user experience your customers will have.~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME>/PersistentConnection/
.apsd
process. Ideally you'll see Connected to courier x-courier.sandbox.push.apple.com
where x
is a small integer. That indicates that the device has successfully established its persistent connection to the push service.Disconnecting in response to connection failure.
That means that the persistent connection failed. In that case, the goal is to figure out what's going on with your network that's causing the connection failure. Check that no firewalls are blocking TCP traffic on port 5223.connection set ignored topics
means that the user chose to turn off notifications for the apps listed in the message. That will be followed by Sending filter message for enabled hashes
which is where iOS actually sends the enabled and ignored topics to APNs.Failed to parse JSON message payload
indicates that the JSON dictionary in the notification payload is not in valid JSON format.Received message for enabled topic <your app's CFBundleIdentifier>
means that the device received a notification from the push service.CFBundleIdentifier
. Here's how to compute this SHA-1 hash:/Library/Logs/apsd.log
.s_client
command, like this for the HTTP/2 APNs provider API:server-ca-cert.pem
is the Entrust CA (2048) root certificate.CRITICAL | 14:48:40.304061 | Exception creating ssl connection to Apple: [Errno 1] _ssl.c:480: error:14094414:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate revoked
verify error:num=20:unable to get local issuer certificate
.CAfile
argument to s_client
specifies the trusted root certificates to use to verify the server certificate. The trusted root certificate for the push servers is the GeoTrust or Entrust root certificate mentioned previously.telnet
command on your server to see if the server can reach APNs, like this:EPIPE
or broken pipe error in response to sending a notification. On the other hand, the enhanced notification format will send an error response with more detailed information about what was wrong with the notification before dropping the connection. Be sure your provider catches and handles these conditions properly.req
command:Date | Notes |
---|---|
2016-07-28 | Updated links to Local and Remote Notification Programming Guide. |
2016-07-25 | Updated for iOS 8 and later. Refreshed logging profile. |
2016-07-20 | Updated for iOS 8 and later. Refreshed logging profile. |
Updated for iOS 8 and later. Refreshed logging profile. | |
2014-10-01 | Updated maximum payload size. |
2013-09-24 | Minor editorial changes. |
2013-09-17 | Updated the PersistentConnectionLogging configuration profile and instructions for resetting the push permissions alert. Other minor changes. |
2013-03-29 | Fixed link to PersistentConnectionLogging configuration profile. |
2013-03-27 | Expanded coverage of checking code signing entitlements and error responses. |
2011-09-26 | Update link to Entrust root certificate. Replace apsd logging configuration profile with a signed version. |
2011-06-08 | Added information about push notifications in Mac OS X Lion. |
2010-09-29 | New document that describes steps developers can take to troubleshoot sending and receiving of push notifications. |
Aspyr has released two The Sims udpates. One update is for classic MacOS while the Carbon update will work on OS X and MacOS (if you have CarbonLib 1.2.5 or later installed). The Sims Carbon is an update to the original (1.x) version of The Sims for Macintosh, and as such requires an existing installation of the The Sims 1.x. The Sims Carbon cannot be used to update an existing installation of The Sims Livin' Large or The Sims House Party. Once you have installed The Sims Carbon under either Mac OS 8/9 or Mac OS X, you can play The Sims Carbon under either Mac OS environment without reinstalling it. On Mac OS 8.6 or 9.x, The Sims Carbon requires CarbonLib 1.2.5 or later to be installed. Classic Only The Sims The Sims (Carbon OS X) 1.89 MB The Sims (Classic Mac OS 8.x/9.x) 1.29 MB
View All Ratings & Reviews |