ในฐานะ iOS Developers เรารู้จักการจัดการ Environment ต่างๆ เช่น Development, QA, Beta, และ Production สำหรับ Environment แต่ละอัน มี Server URL, App Icon, และ Configuration ที่ต่างกัน
ก่อนสร้าง Build ใหม่ที่ชี้ไป Environment ใด Environment หนึ่ง ต้องจำว่าต้องเปลี่ยน Server URL ด้วย อาจทำโดยเปลี่ยนค่า Hardcoded Flag ในไฟล์ Constant หรือใช้ Macros แต่ทำให้ซับซ้อนขึ้น
แต่ถ้าคิดหน่อย จะได้ไอเดียที่จัดการสถานการณ์ใดๆ ได้ง่าย ไอเดียคือ สร้าง Schema และ Configuration ต่างๆ แล้วจะเปลี่ยน Application Server URLs, App Icon, Plist File, และ Configuration ได้ง่าย
บทเรียนนี้จะแสดงวิธีจัดการ Environment ต่างๆ ด้วย Schema และ Configuration
Project Setup:
เปิด Xcode สร้าง Single View Application ใหม่ด้วยชื่อที่เหมาะสม
เพิ่ม Schema และ Configurations:
ก่อนเพิ่ม Schema ต้องรู้ว่า Xcode Schema ทุกอันมาพร้อม Build Configuration 2 แบบ: Debug และ Release หากต้องการแก้ไขเฉพาะ Build Configuration ใด Configuration หนึ่ง ก็ทำได้
ตอนนี้เพิ่ม Build Configuration ของเรา เลือก Project ใน Project Navigator ด้านซ้าย แล้วเลือก Info จาก 2 ตัวเลือก (Info และ Build Settings) ใน Configurations ต้องเพิ่ม Configuration ของเราสำหรับ 5 Environment (Development, Production, QA, Beta, UAT) ไว้ที่นี่

ก่อนอื่น Double-click ที่ Debug เปลี่ยนชื่อเป็น Debug (Development) เช่นเดียวกัน Double-click ที่ Release เปลี่ยนเป็น Release (Development) ตอนนี้กด + และเลือก Duplicate Debug (Development) และ Duplicate Release (Development) แล้วเปลี่ยนชื่อ Environment ซ้ำให้ตรงชื่ออื่นๆ

สำหรับ Schema Creation ไปที่ Manage Schema มุมซ้ายบนของ Xcode จะเห็น Schema มีอยู่ 1 อัน เปลี่ยนชื่อเป็น Development — หรือลบเดิมและเพิ่มใหม่ชื่อ Development แล้วเพิ่ม Schema อีก 4 อันสำหรับ Environment อื่นๆ

อย่าลืมติ๊ก Shared Box ด้วย หลังเพิ่ม Schema ทั้งหมด หน้าจอ Manage Schema จะเป็นแบบนี้:

เพิ่ม Configuration Settings File:
คลิกขวาที่ Project เลือก New File เพิ่ม Configuration Settings File ตั้งชื่อเดียวกับ Environment

หลังเพิ่ม Config Files ทั้งหมด Project Navigator ด้านซ้ายจะเป็นแบบนี้:

ส่วนสำคัญที่สุด: ใส่ Server URL และ Key-Value อื่นๆ ที่ปรับแต่งได้ ใน Configuration File ที่ตรงกัน

เพิ่ม Plist Files:
เปลี่ยนชื่อ info.plist เป็น development.plist Copy และ Paste ไฟล์ Plist เดียวกันสำหรับ Environment ต่างๆ ภายในโปรเจกต์ แล้วเปลี่ยนชื่อแต่ละไฟล์ Plist ให้ตรงชื่อ Environment สามารถตั้ง Key-Value เฉพาะ Environment ใน Plist Files ได้ หลังจากนั้น ใส่ Key จาก Configuration File ลงใน Plist Files แบบนี้:

ตอนนี้ต้องตั้ง Plist Path ที่เหมาะสมสำหรับแต่ละ Build Configuration จาก Targets เลือก Plist File แล้วเปลี่ยนชื่อให้ตรงกันสำหรับ Configuration Debug และ Release


Linking Build Configuration กับ Configuration File:
เลือก Build Configurations ทั้งหมด (Debug และ Release) ใน Projects Info ทีละอัน ตั้ง Configuration File ที่เพิ่มในโปรเจกต์ให้เหมาะสม

หลังเพิ่ม Configuration Files ทั้งหมด Build Settings จะเป็นแบบนี้:

ตอนนี้ Link Configuration Files ทั้งหมดกับ Build Configurations ที่ตรงกันเสร็จแล้ว
Linking Schema กับ Build Configuration:
ขั้นตอนสุดท้าย Link Schema กับ Build Configuration เลือก Schema ใด Schema หนึ่ง ไปที่ Edit Schema ตั้ง Build Configuration ที่เหมาะสม

พร้อมรันโปรเจกต์:
Setup เสร็จแล้ว เหลือแค่เลือก Schema และ Run — Environment จะถูกเลือกอัตโนมัติ สำหรับดึง Server URL และค่าอื่นๆ ผมสร้างไฟล์ Environment.swift ดูได้เลย:
เพื่อดึง Server URL หรือ Settings อื่นใน ViewController.swift หรือไฟล์อื่น ต้องเขียนโค้ดแค่บรรทัดเดียว:
ยังจัดการ App Icon ต่างกันสำหรับ Environment ต่างๆ ได้จาก Build Settings แล้วแค่จ้อง 1 วินาที จะรู้ว่า Build Environment ไหนติดตั้งอยู่บนอุปกรณ์

โปรเจกต์ครบถ้วนอยู่บน GitHub ดาวน์โหลดได้หากมีคำถาม
อย่าเสียเวลาเปลี่ยน Server URL หรือ Config ทุกครั้งที่ Build นี่คือวิธีที่ง่ายที่สุดจัดการ Environment, App Icon, และ Config ต่างๆ
ถ้าชอบ อย่าลืม Clap จะเป็นกำลังใจให้ผม สำหรับข้อเสนอแนะ ส่งอีเมลมาที่ mail2boudhayan@gmail.com