To receive message, an iOS application needs to register with both Apple Push Notification service (APNs) and the GCM connection server. When a client app registers with GCM, it receives a registration token, which it must then send to the app server (the APNs device token is not sent to the server). The client app must store a boolean value indicating whether the registration token has been sent to the server.
You can follow this documentation on how to set up a client app on IOS.
Based on this SO question, It is very simple to implement APNs and GCM. You can follow this steps
When APNs (iOS Devices) and GCM (Android Device) registers for Push Notification on Apple and Google Server it generates a unique token for every device.
After that, you need to save that device token, with your device id or user id (unique id on your server for device) and the OS of device.
IOS device is sending this information on your server (backend) you can use this JSON format- {"token":"abcdedfgehik2bd3d3ff3sffssdff","os":"iOS","userid":34}
This is how it will work.
- You request device token from APNs as usual.
- You need to send that token to GCM service with provided API.
- Then GCM sends back a another token.
- Then send that token to app server.
- App server can send notifications using that token.
Try also to check this for more information.