Prima di un rapido definirei una serie di schemi per build alfa, beta e di distribuzione. Ognuno di questi schemi avrebbe una serie di macro definite per bloccare determinati comportamenti a livello di progetto. L'esempio più semplice è la macro DEBUG = 1 definita per impostazione predefinita per tutti i progetti Xcode nello schema predefinito per la build Run. Si potrebbe interrogare #ifdef DEBUG ... e prendere le decisioni nel codice di conseguenza, anche compilando il codice non necessario.
Sembra che questo tipo di gating configurazionale non sia facile usando swift, poiché le macro non sono supportate. Qualcuno può suggerire un approccio comparabile, non mi interessa se il codice è compilato, di per sé. Vorrei però trasferire le funzionalità in base allo schema di creazione.