New apps often become available in the App Store a few minutes or hours before their in-app purchases. Early downloaders have no indication that the inability to make a purchase is the result of a temporary App Store propagation issue. This is my plan to handle that:

  • Add a server API endpoint that returns false to indicate that in-app purchases are not yet available, true to indicate that in-app purchases are available.
  • The app will check that endpoint before looking for products. When that API endpoint returns false, it will display a message stating that the purchases should become available soon.
  • I need a way to determine whether the purchases are available to me in the live app while the API endpoint is returning false. The app will check whether the device has another app that can open a URL with a specific scheme. If it does then the app will try to load purchases regardless of the server setting. An internal app on my device will be able to open URLs with that scheme.

I will also hold off announcing the app until the in-app purchases are available to me, I am confident enough time has passed for those purchases to become available to everyone else, and I have made the server API endpoint return true.