Push Notifications (iOS)


1) Enable push capabilities

Open Xcode with a right-click on your .storyboard and choose “Open With>Xcode Interface Builder”, navigate to the “Capabilities” tab of your app. You will need to enable “Push Notifications”.

capabilities


2) Generating a Certificate Request

2.1) Launch the “Keychain Access” app on your Mac.

2.2) Select “Keychain Access> Certificate Assistant> Request a Certificate From a Certificate Authority”.

keychain_request

2.3) Enter your e-mail, select “Save to disk” and press “Continue”. You should get a .certSigningRequest file.

save_request


3) Get the Certificate

3.1 Open developer.apple.com, select your app and press “Edit”.

edit_app

3.2 Scroll down the page and enable Push Notifications. Press “Create Certificate” (Usually you would want to create a production certificate).

enable_push

3.3 You should find yourself in the “Add iOS Certificate” wizard. Press “Continue”.

add_certificate

3.4 Press “Choose File” and upload the .certSigningRequest file you generated previously (chapter 2.3)

add_certificate

3.5 Your certificate is ready. Press “Download” to get the .cer file.

get_certificate


4) Upload a .p12 Key to NearIT

4.1 Click on the .cer certificate you generated previously (chapter 3.5). It will open the “Keychain Access” app on your mac.

4.2 Find your certificate, click on it and select “Export”. Enter a password, you will get a .p12 file.

export_p12

4.3 Open NearIT, select your app and navigate to “Settings> Push Settings”. Upload your .p12 under the “Setup iOS push notifications” block. You will be prompted to enter the password you have chosen previously (chapter 4.2)

export_p12


5) Get the device token

In your app code, ask for the token:

public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
    application.RegisterForRemoteNotifications();
}

When you get the token, just give it to the SDK:

public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
{
    NITManager.DefaultManager.SetDeviceTokenWithData(deviceToken);
}

To learn how to deal with in-app content see this section.