I'm trying to integrate Exact Target MobilePush SDK version 3 into an iOS application. So far I haven't found any step-by-step documentation for this process. The SDK does include an example, but the example has not been updated for version 3, so the process has been frustrating. If anyone has leads on better documentation that would also be very much appreciated.

Following the code in the example, I try to start MobilePush in the app delegate's application:didFinishLaunchingWithOptions: method like this:

[[ETPush pushManager] configureSDKWithAppID:@"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" andAccessToken:@"xxxxxxxxxxxxxxxxxxxxxxxx" withAnalytics:NO andLocationServices:NO andCloudPages:NO];

This line causes some log output which looks like this:

2014-01-28 15:58:55.812 MyApp[1460:907] MobilePush configured for ET App ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

So far so good. However, a little later in the startup process, I am getting an uncaught exception which crashes the app:

Uncaught exception: *** setObjectForKey: object cannot be nil (key: app_version)

When I comment out the call to ETPush configureSDKWithAppID:, shown above, this exception is not raised. What do I need to do in order to avoid this exception when initializing MobilePush?

I have tried this with and without the other initialization code and other ETPush events from the example in the SDK, but I get the same crash regardless. It looks like maybe I need to set app_version somewhere, but I see no references to app_version anywhere in the example project.

1 Answer 1


Very hard to say for certain because this SDK is a private framework.

But if I had to guess: have you specified in your app's Info.plist both a major version (CFBundleShortVersionString) and build number (CFBundleVersion)?

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .