Dalam banyak situasi, Anda tidak benar-benar membutuhkan kompilasi bersyarat ; Anda hanya perlu perilaku kondisional yang dapat Anda aktifkan dan matikan. Untuk itu, Anda dapat menggunakan variabel lingkungan. Ini memiliki keuntungan besar yang sebenarnya tidak perlu Anda kompilasi ulang.
Anda dapat mengatur variabel lingkungan, dan dengan mudah mengaktifkan atau menonaktifkannya, di editor skema:
Anda dapat mengambil variabel lingkungan dengan NSProcessInfo:
let dic = NSProcessInfo.processInfo().environment
if dic["TRIPLE"] != nil {
// ... do secret stuff here ...
}
Inilah contoh kehidupan nyata. Aplikasi saya hanya berjalan di perangkat, karena menggunakan perpustakaan musik, yang tidak ada di Simulator. Lalu, bagaimana cara mengambil screenshot di Simulator untuk perangkat yang bukan milik saya? Tanpa cuplikan layar itu, saya tidak bisa mengirim ke AppStore.
Saya membutuhkan data palsu dan cara pemrosesan yang berbeda . Saya memiliki dua variabel lingkungan: satu yang, ketika dinyalakan, memberi tahu aplikasi untuk menghasilkan data palsu dari data nyata saat berjalan di perangkat saya; yang lain, ketika dihidupkan, menggunakan data palsu (bukan perpustakaan musik yang hilang) saat berjalan di Simulator. Mengaktifkan / menonaktifkan mode khusus tersebut mudah berkat kotak centang variabel lingkungan di editor Skema. Dan bonusnya adalah saya tidak dapat menggunakannya secara tidak sengaja di build App Store saya, karena pengarsipan tidak memiliki variabel lingkungan.