[iOS]ทำงานกับ BackEnd หลายๆEnvironments(Production,Dev,Beta) ง่ายๆด้วย Build Configuration

ถ้าคุณทำ Apps ที่ต้องติดต่อขอข้อมูลกับ Server ซึ่งมันก็เกือบทุก Apps สมัยนี้ สิ่งนึงที่เราต้องเจอก็คือ server ของเรา จำเป็นต้องมี environment หรือ api endpoint สำหรับ Production หรือไว้สำหรับ Develop feature ใหม่ๆ (คงไม่มีใครอยากให้ตอนกำลัง dev อยู่แล้วเราก็ไประเบิด server production เล่น ถึงแม้ว่า Real programmer test on production ก็เหอะ ถ้ายังไม่มี มีเถอะ ถือว่าขอร้อง) เราจึงจำเป็นต้องมีการเลือก api endpoint ในการ build แต่ละครั้ง ซึ่งถ้าคนปกติก็อาจจะไป เปลี่ยน url เอาเองตอนทำงาน ซึ่งมันไม่ cool อย่างแรง และก็เกิด human error ได้ง่ายมาก เราจึงนำเสนอ สิ่งที่เรียกว่า build configuration ยังไงหละครับผมมมมม

เริ่มแรกสร้างโปรเจคทดสอบขึ้นมาสักอันนึงเป็น Single page apps ละกันง่ายๆ

Screen Shot 2559-02-17 at 11.31.52 PM

ตั้งชื่อซะหน่อยScreen Shot 2559-02-17 at 11.32.17 PM

ไปที่ Project setting ตามภาพ จะเห็น ว่ามี section ชื่อ Configurations อยู่ ซึ่งโดยปกติ Project ที่ให้มาจะมี 2 อันคือ Debug และ Release ซึ่ง Release จะเป็น config สำหรับการ อัพแอพซึ่งมีผลต่อพวก cert ที่ต้องใช้Screen Shot 2559-02-17 at 11.37.40 PMกด + เลือก Duplicate “Debug” Configuration เพื่อ copy ข้อมูล config มาจาก debugScreen Shot 2559-02-17 at 11.38.12 PM

ตั้งชื่อ ให้กับ Config ของเราหน่อย โดยผมสร้างขึ้นมาสองอันคือ DevServer และ BetaServer สำหรับใครจะชอบชื่ออะไรก็ตามใจเลยครับ โดยผมจะไม่สร้าง Production Server เพราะว่า ผมจะใช้ตัว Debug ปกติแทนเลย

Screen Shot 2559-02-17 at 11.40.09 PM

หลังจากนั้นเราจะมาสร้าง Scheme เอาไว้ใช้เลือกว่า เรากำลัง Build ด้วย server ไหนกัน
โดยกดที่ Edit Scheme…

Screen Shot 2559-02-17 at 11.42.27 PM

หลังจาก กด Edit Scheme จะมีหน้าต่างใหม่ขึ้นมา ให้เรากดที่ Duplicate Scheme ด้านล่างซ้าย แล้วตั้งชื่อ ตามชอบ โดยผมตั้งชื่อเป็น DevServerBuildConfigutations , BetaServerBuildConfigurations

Screen Shot 2559-02-17 at 11.42.43 PM

ถ้าสร้างเสร็จ จะมีให้เลือกเพิ่มขึ้นประมาณนี้

Screen Shot 2559-02-17 at 11.44.51 PM

กลับมาที่เดิม จะเห็นด้านซ้าย มีให้เลือก Build, Run, Test, Profile, Analyze,Archive
ซึ่งมันคือ การทำงานทั้งหมดที่เป็นไปได้ ของเรา ให้เราเลือกตามรูป ถ้า DevServer ก็เลือก DevServer โดยเขาไปเลือกในทุกอันตามเมนู  Run, Test, Profile, Analyze,Archive

Screen Shot 2559-02-17 at 11.46.22 PM

หลังจากตั้งค่าทุกอย่างเสร็จแล้ว ให้ไปที่ไฟล์ info.plist ตามภาพ

Screen Shot 2559-02-17 at 11.59.48 PM

ให้เพิ่ม key Configuration โดยการ คลิ๊กขวา แล้ว Add row

Screen Shot 2559-02-18 at 12.00.46 AM

หลังจากนั้นมาสร้าง Label โดยที่เราจะเอามา แสดง ชื่อ config ที่เรากำลัง run อยู่Screen Shot 2559-02-17 at 11.54.19 PM

มาที่ไฟล์ ViewController ใส่ Code ตามภาพ ซึ่งใน Code จะทำงานโดยการ ไปนำชื่อ Configuration ออกมา แสดงใน label ที่เราสร้างขึ้นScreen Shot 2559-02-18 at 12.43.36 AM

ลอง Run ดูครับ จะได้ประมาณในภาพนี้ ให้ลอง run ดูให้ครบทั้ง 3 Scheme จะเห็นว่า แต่ละ config จะขึ้นอยู่กับ Scheme ที่เราเลือก ครับScreen Shot 2559-02-18 at 12.02.07 AM

หลังจากนั้น การใช้งาน ให้เรานำ configuration ไปใช้ในการ เลือก url endpoint เอาครับ

จบแล้วครับ สำหรับการ ทำ Scheme เพื่อเลือก Server Environment ง่ายๆ แต่คุ้มที่จะทำแน่นอน!

สามารถ Download Project ที่เสร็จแล้วได้ที่นี้

สำหรับสาวก แอนดรอย ก็มีวิธีแบบเดียวกัน สามารถดูได้ที่นี้เบย

 

Advertisements
[iOS]ทำงานกับ BackEnd หลายๆEnvironments(Production,Dev,Beta) ง่ายๆด้วย Build Configuration

One thought on “[iOS]ทำงานกับ BackEnd หลายๆEnvironments(Production,Dev,Beta) ง่ายๆด้วย Build Configuration

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s