Build configurations for the real world iPhone app with in-app purchases (in-app product is a time-limited subscription):
Debug — uses localhost;
Debug sandboxing storekit — tells server to use sandbox verification URL;
Debug bypassing storekit — ignores storekit and assumes subscription is always valid;
Debug simulated storekit — substitutes SK* classes with our in-house mocks, allows testing on Simulator and localhost;
Debug simulated storekit + restored transactions — same as above + allows restoring valid subscriptions;
Release bypassing storekit — uses real host, but ignores storekit and assumes subscription is always valid;
Release sandboxing storekit — uses real host, tells the server to use sandbox verification URL;
Release — regular release config (obsolete; we are using “Release sandboxing storekit” instead);
Distribution — config for AppStore publishing.
Note: I have written simulated storekit classes when we experienced iTunes Connect outage and “add new sandbox user” form issues.
Note-2: Each non-release configuration issues a #warning in every place where some non-shippable value is used (e.g. localhost, hardcoded default location, storekit substitution)
