title: Are content-available and alert mutually exclusive keys in an APNS aps dictionary
body: <p>The iOS app I'm working on uses push notifications to deliver messages the user can view in a Message Center. These messages have a set of custom keys outside the aps dictionary that we use to provide different treatments, etc. However, if the user doesn't tap on the notification, the message never appears in the app (server-side messaging not available yet).</p>
  
  <p>So we started adding <code>content-available</code> to the aps dictionary so the app can consume the payload and prepare the message in the message center: the device still receives the notification but now the message is available if they open the app without tapping on the notification. This has been working great in practice.</p>
  
  <p>It looks like this was supported in <a href="https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html" rel="nofollow noreferrer">documentation</a> (Configuring a Background Update Notification section, now archived) but now <a href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app" rel="nofollow noreferrer">current docs</a> say "<em>To send a background notification, create a remote notification with an aps dictionary that includes only the content-available key.... You may include custom keys in the payload, but the aps dictionary must not contain any keys that would trigger user interactions.</em>" And the <a href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification" rel="nofollow noreferrer">documentation page</a> that leads to that says about <code>content-available</code>, "<em>The background notification flag. To perform a silent background update, specify the value 1 and don't include the alert, badge, or sound keys in your payload.</em>"</p>
  
  <p>I guess what we're trying to do you could call a Noisy Background Notification, one that updates the app in the background and still has user facing/interactive content.</p>
  
  <p>Are <code>content-available</code> and <code>alert</code> mutually exclusive keys in the <code>aps</code> dictionary?</p>
  
  <p>Thanks!</p>