Failed to register with Apple


#1

I’ve followed the directions in the book, but can’t seem to connect to the Notification server from my iPad. I get the following in my console window:
[color=#0000FF]2012-03-02 11:34:48.116 Notified[860:707] Error Domain=NSCocoaErrorDomain Code=3000 “no valid ‘aps-environment’ entitlement string found for application” UserInfo=0x12f8f0 {NSLocalizedDescription=no valid ‘aps-environment’ entitlement string found for application}[/color]

Some things that seem weird:

  1. Dragging the .mobileprovision file into the Xcode window doesn’t seem to make any difference. (p. 485, paragraph 3)
  2. When I set the build settings (figure 29.5), the pulldown does not contain a section for “Notified,” only what looks like a a generic code signing entity (i.e. the list is the same when opened up with another xcode project)

I am using xcode 4.2.1, and iOS 5.0.1 on my iPad.

Any ideas?


#2

I figured this out, and am posting my solution in case it helps others. Unfortunately, I don’t know which of these steps solved the problem…

  1. After downloading the aps_developer_identity.cer file, I double-clicked it to install it in the keychain.

  2. After downloading the .mobileprovision file, I double-clicked it to install it in the Organizer

  3. When setting the Bundle identifier on the Info tab, I used the AppID found in the organizer. For me, this is com.bignerdranch.dashausvonruh.Notified. I was previously using the AppID found on the iOS Provisioning Portal, which for me is .com.bignerdranch.dashausvonruh.Notified

In Build Settings, when I set Code Signing Identity, I now see an entry for Notified.

If anyone knows which of the steps above actually fixed the problem, I’d love to learn. Objective-C code is easy compared to this provisioning stuff!


#3

I had a similar experience. I think the key is to get the provisioning certificate onto the iPad.
For reasons I don’t know, it appears that while Xcode will automatically get a developer certificate
onto an iPad; it does not do the same thing for a provisioning certificate. It is the provisioning
certificate with its private key that allows the iPad to talk with Apple’s Notify server.

So, as indicated in an earlier post, the correct procedure is to double click on the provisioning certificate with the iPad/iPhone connected to your development machine. When that procedure is followed you will see a code signing identity choice similar to the one shown in the book.

Incidentally, you can do the same thing with a developer certificate without first using Xcode.

NOTE: My experience is on ios5 and using Xcode 4.2.1


#4

I followed the book and had the exact same problem.

Then I found after I turned on the “Enable Entitlements” in the Target Summary tab of the project configuration, an entitlement is automatically generated and the problem goes away.

The book didn’t mention the entitlement, maybe the entitlement is only required in iOS 5 for push notification. Just guessing.