Regarding "Overview of app transfer"

My iPhone VoIP app, which I'm developing, uses Apple Push Notification service (APNs). I have a question regarding the following statement found in "[Overview of app transfer > Apps using push notifications]"

Overview of app transfer

You must manually reestablish push notification services if transferring an app that uses the Apple Push Notifications service (APNs). The recipient must create a new client SSL certificate using their developer account, as associated client SSL certificates, TLS certificates, and authentication tokens aren’t transferred.

Question

Let's say the recipient of the app transfer creates a "new SSL certificates, TLS certificates, and authentication tokens." Afterward, we need to verify that the Apple Push Notification service (APNs) works correctly when combining the transferred app with this "new SSL certificates, TLS certificates, and authentication tokens."

However, until the recipient finishes verifying that it works correctly, the transferor want to keep the app available for download as before and be able to use the Apple Push Notification service. Is this possible?

More specifically, can the recipient test the app to be transferred on TestFlight "before the transfer is completed"? I want to combine it with the "new SSL certificates, TLS certificates, and authentication tokens." and test it on TestFlight.

Reading "[Initiate an app transfer]," it mentions the existence of a "Pending App Transfer" status. During this "Pending App Transfer" status, can the recipient test the app on TestFlight?

Initiate an app transfer

After you initiate the transfer, the app stays in its previous status, with the Pending App Transfer status added, until the recipient accepts it or the transfer expires after 60 days.

Also, if there are any documents describing these procedures, I would appreciate it if you could share them. Thank you very much.

The credentials of the new team will not work until the transfer is complete. And the credentials of the old team will stop working when the transfer is completed.

There will be a trivial but non-zero gap between the two while at the moment of transfer, but there cannot be an overlap.

The recipient can build their push servers and test it with another app they own, but not with the transferring app until the transfer is completed.

If the transferor opens a persistent connection to APNs before the transfer is complete and is able to hold that connection open through the transfer, they may be able to continue making push requests for a trivial but possibly non-zero amount of time after the transfer.

This is a side effect of the propagation delay between various servers holding app's various bits of information, and there will be no guarantees that it will work for a useful amount of time, and it is possible that the overlap time could be near zero.

In other words, while technically the transferor might be able to send notifications after transfer is complete, this is not something you should depend on and make sure that the recipient's push infrastructure is ready to take over as soon as the transfer is complete.

The recipient can build their push servers and test it with another app they own, but not with the transferring app until the transfer is completed.

Thank you for your previous guidance. I understood that a recipient can build their push servers and test them with another app they own, but not with the transferring app until the transfer is completed.

Based on this, my plan is to first register a new app specifically for PUSH testing under the transferor's account (Company A), confirm that PUSH works, then transfer this test app to the transferee (Company B), and finally, verify PUSH functionality again after the transfer is complete.

Now, I have a more specific question regarding the transfer of an existing app. For clarity, let's refer to the transferor's company as Company A, the transferee's company as Company B, and the app to be transferred as App C.

Currently, App C (owned by Company A) is widely used by many users who have it installed on their devices. My primary concern is to understand what happens to these existing users' VoIP push functionality when App C is formally transferred from Company A to Company B (meaning, an App Transfer within the Apple Developer Program).

Here's my specific question:

After App C's ownership is transferred from Company A to Company B, will users who had Company A's App C installed on their devices (before the transfer was completed) still be able to receive VoIP push notifications sent from Company A using Company A's P8 key?

My current understanding and proposed setup are as follows:

I acknowledge that the P8 key for VoIP push is specific to each developer account (Team ID). So, Company A has its own P8 key, and Company B will have its own P8 key. Therefore, I plan to place Company A's P8 key and Company B's P8 key on the push server, and add a feature that uses Company A's P8 key when pushing to Company A's app C, and Company B's P8 key when pushing to Company B's app C. Because I believe that even after App C is transferred to Company B, users who installed the original App C (signed by Company A) will still be able to receive VoIP push messages if these messages are sent from Company A's push server using Company A's P8 key.

Is this assumption correct?

Or will the APNs server, upon completion of after the transfer, reject push requests from Company A (using Company A's P8 key) directed at the App C (even if users have the original Company A-signed version installed)?

My main concern stems from this: If it's not possible for Company A to continue pushing to the existing installed base after the transfer, it would imply that all existing users would immediately lose push functionality from the moment the app transfer is completed. To regain functionality, they would then need to update their app to a version signed by Company B. This burden (requiring immediate updates from a large user base to maintain core functionality) would be significant and could cause considerable confusion.

Could you please clarify the exact behavior of APNs in such an app transfer scenario, specifically regarding the continued validity of the original owner's P8 key for previously installed app versions? If my assumption is incorrect, I would greatly appreciate any guidance or recommended workarounds to mitigate the disruption for existing users during and after an app transfer.

Thank you for your time and assistance.

Purpose

To clarify previous inquiries, we have reorganized our questions regarding the App Transfer of our VoIP PUSH enabled application "PhoneApp" to another company's (Company B) App Store account. Our goal is to understand the potential impact on existing users and the feasibility of conducting tests of the transfer process.

Current Status

App Store Publication:

"PhoneApp (signed with Company A's certificate)" is currently published by Company A on the App Store.

Our PUSH Server:

Our PUSH server uses an APNs Authentication Key (P8 Key: Company A) to send PUSH notifications to the Apple Push Notification service (APNs).

Existing Users:

Existing users receive VoIP PUSH notifications from "our PUSH server (using P8 Key: Company A)" on their iPhones with "PhoneApp (signed with Company A's certificate)" installed.

Q1.Regarding Continued Usage by Existing Users

After PhoneApp is transferred to Company B and "PhoneApp (signed with Company B's certificate)" is published on the App Store, existing users will continue to use "PhoneApp (signed with Company A's certificate)" until they update the app.

In this scenario, will "PhoneApp (signed with Company A's certificate)" on existing users' devices still be able to receive VoIP PUSH notifications from "our PUSH server (using P8 Key: Company A)" as before?

We are concerned that all users might need to update their apps to "PhoneApp (signed with Company B's certificate)" simultaneously with the transfer, or that all PUSH servers might need to update their P8 Keys to "P8 Key: Company B" at the same time. This would be difficult to manage.

Q2. Regarding Smooth Transition for Existing Users

There will be a coexistence period where existing user environments will have both "PhoneApp (signed with Company A's certificate)" and "PhoneApp (signed with Company B's certificate)".

We believe that by enabling the following functionalities in our PUSH server, we can ensure that customer operations are unaffected during this coexistence period. Is this understanding correct? Are there any other recommended best practices?

  • When our PUSH server sends a VoIP PUSH to "PhoneApp (signed with Company A's certificate)", it makes a PUSH request to APNs using Company A's APNs Authentication Key (P8 Key: Company A).
  • When our PUSH server sends a VoIP PUSH to "PhoneApp (signed with Company B's certificate)", it makes a PUSH request to APNs using Company B's APNs Authentication Key (P8 Key: Company B).

Q3. Regarding Feasibility of Transfer Testing

We believed that by temporarily maintaining the following state, we can conduct transfer tests in advance. is this impossible? I have received an answer to this question once, but I would like to re-question I am concerned that there may have been a misunderstanding for my question:

  1. Initiate the transfer of "PhoneApp" from Company A to Company B. Company B's Apple Account does not accept the transfer, maintaining a "Pending App Transfer" status.
  2. Build "PhoneApp (signed with Company B's certificate) with same bundle ID" and publish it on Company B's Apple Account via TestFlight.
  3. Install "PhoneApp (signed with Company B's certificate)" via TestFlight on test devices.
  4. The PUSH server sends a PUSH request to "PhoneApp (signed with Company B's certificate)" using "Company B's P8 Key".

if above is possible, While maintaining this "Pending App Transfer" status, is it possible to perform the following transfer tests?

  • Receive VoIP PUSH notifications using "Company B's P8 Key" on "PhoneApp (signed with Company B's certificate)".
  • Receive VoIP PUSH notifications using "Company A's P8 Key" on existing "PhoneApp (signed with Company A's certificate)".
  • Receive VoIP PUSH notifications using "Company A's P8 Key" on a newly installed "PhoneApp (signed with Company A's certificate)".
  • (We also want to confirm if "PhoneApp (signed with Company A's certificate)" can still be newly installed from the App Store once the transfer process begins.)
Regarding "Overview of app transfer"
 
 
Q