title: How implement Apple Push Notifications for iOS versions 9 + 10 (and perhaps 8)?
body: <p>I have not found any official Apple document that discusses correctly implementing push notification simultaneously for old iOS versions, as well as iOS 10. And the independent tutorials I have seen, likewise cover a single iOS version.</p>
  
  <p>I see this official document for iOS 10:
  <a href="https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/index.html#//apple_ref/doc/uid/TP40008194-CH3-SW1" rel="nofollow noreferrer">Local and Remote Notifications Overview</a> But it doesn't comment on supporting earlier iOS versions.</p>
  
  <p>And a tutorial for iOS 9:
  <a href="https://www.raywenderlich.com/123862/push-notifications-tutorial" rel="nofollow noreferrer">Push Notifications Tutorial - Ray Wenderlich</a></p>
  
  <p>And I see various stackoverflow threads about changes people had to make to get their old solutions to work on newer versions:</p>
  
  <p><a href="https://stackoverflow.com/questions/32718273/push-notifications-are-not-working-in-ios-9">Push notifications are not working in iOS 9</a>
  Which does show code for handling 6 - 9.</p>
  
  <p><a href="https://stackoverflow.com/questions/39382852/didreceiveremotenotification-not-called-ios-10">didReceiveRemoteNotification not called , iOS 10</a></p>
  
  <hr>
  
  <p>BUT what I don't see, is what is correct to do, starting today (with iOS 10), but also supporting older devices.  ** <strong>UPDATE</strong> ** App Store says only 6% of devices downloading apps are older than ios 9, so <strong>if it is easier to just support 9 + 10, i'll just do that.</strong></p>
  
  <p>(I tried starting with an iOS 10 example, but it immediately crashed on iOS 9.3 emulated device, though it works fine in iOS 10. So I conclude that I should be starting with information about correctly setting up for the different versions. I could post that code, but I think that leads this thread in the wrong direction. I would rather start with what "should" work on multiple versions of iOS, including 10.)</p>
  
  <p>If I don't find some solution, I'll start combining code from different stackoverflow code snippets ... but seriously?  I must be missing something, as presumably every iOS developer has this issue.</p>
  
  <hr>
  
  <p>Conversely, <strong>I could start with an older example</strong>, and then follow the changes to get that to work with iOS 10 - <strong>but will that take full advantage of iOS 10?</strong></p>
  
  <p>NOTE: I'm programming in Xamarin C#, but Objective-C or Swift answer is just as useful.</p>