สำหรับคนที่ติดตามข่าวของ Xcode (โปรแกรมครอบจักรวาลที่ใช้พัฒนาแอพ iOS, Watch App, Mac App) จะพอทราบว่า
Xcode ได้ผ่อนปรนให้นักพัฒนาสามารถรันแอพของตัวเองในอุปกรณ์ iOS ได้ โดยที่ไม่ต้องเสียเงินสมัคร Developer Program เรียกเล่นๆ ว่า Free Account
แต่ถ้าต้องการขายบน App Store ก็ต้องเสียเงินก่อน เพื่อให้กลายเป็น Paid Account นะคร้าบ
สำหรับบทความนี้สามารถใช้ได้กับแอพ iOS ที่สร้างแบบต่างๆ ต่อไปนี้
- แบบ Native อย่าง Objective-C, Swift
- แบบเขียนด้วยภาษาเว็บ (Cross Platform) อย่าง PhoneGap และ Ionic Framework รวมถึง React Native ด้วยครับ
- แบบเขียนด้วยภาษาของแต่ละเจ้าอย่าง Google Flutter (Dart) และ Xamarin (C#.NET)
ซึ่งข้อจำกัดของการใช้ Apple ID ที่ยังไม่ได้สมัครเสียเงินให้ Developer Program ก็คือ
- รันทดสอบแอพได้จำกัดแค่ 3 โปรเจค (แยกตาม bundle identifier) ถ้าต้องการมากกว่านั้น ต้องลบแอพทดสอบที่มีอยู่ออกก่อน
- การรันครั้งแรกต้องไปตั้งค่าใน setting (ขั้นตอนที่ 9)
วิธีการรันแอพ iOS ลงในอุปกรณ์จริง โดยไม่ต้องเสียเงินสมัคร Developer Program
1.เปิดบัญชี Apple ID
อย่างแรกสุดเราต้องมี Apple ID ที่เราสามารถสมัครได้ง่ายๆ ทีนี่ ซึ่ง Apple ID นี้สามารถใช้เป็นตัวเดียวกับที่เราสมัครใช้ซื้อแอพ หรือเพลงผ่านระบบ iTune หรือ iCloud ของ Apple ได้ครับ
![Apple ID registration thai](https://nextflow.in.th/wp-content/uploads/Apple-ID-registration-thai.png)
คนที่ทำกิจกรรมเหล่านี้เป็นปกติ เรียกว่ามี Apple ID อยู่แล้วก็ได้
- ซื้อเพลงผ่าน iTune
- โหลดแอพ ผ่าน App Store
- ใช้ iCloud
2. ติดตั้ง Xcode 7 หรือสูงกว่า
เราสามารถติดตั้ง Xcode 7 ได้จาก Mac App Store (มีมาให้ตั้งแต่ OS X 10.6.6 รหัส Snow Leopard) ซึ่งสามารถคลิกจากหน้าเว็บนี้เพื่อไปยัง Mac App Store ได้เลย
อัพเดตล่าสุดตอนนี้ Xcode 12 ขึ้นไปก็ยังใช้ได้อยู่นะ
ปล. ไฟล์ใหญ่มาก ควรเผื่อเวลาในการดาวน์โหลด
![Xcode 7 in Mac App store](https://nextflow.in.th/wp-content/uploads/Xcode-7-in-Mac-App-store.png)
3. เพิ่มบัญชี Apple ID ใน Xcode
- คลิกเปิดเมนู Xcode
- คลิก Preferences…
- คลิก Accounts
- คลิกปุ่ม +
![Add Apple ID to Xcode](https://nextflow.in.th/wp-content/uploads/Add-Apple-ID-to-Xcode-.png)
กรอก Apple ID ของเราลงไป
- กรอก Apple ID (Email และ Password)
- กดปุ่ม Add
![Add Apple ID to Xcode fill the form](https://nextflow.in.th/wp-content/uploads/Add-Apple-ID-to-Xcode-fill-the-form.png)
4. สร้าง หรือเปิดโปรเจคแอพ iOS
ทีนี้ให้สร้าง หรือเปิดโปรเจคแอพ iOS ที่มีอยู่ขึ้นมา
โดยในที่นี้โค้ชพลใช้โปรเจคแอพ iOS แบบ Native ที่สร้างด้วย React Native ครับ
สำหรับมือใหม่ ลองดูขั้นตอนการสร้างโปรเจคแอพ iOS ด้านล่างนี้ได้เลย
- ไปที่เมนู File เลือก New
- เลือก Project…
![New project in Xcode](https://nextflow.in.th/wp-content/uploads/New-project-in-Xcode.png)
- เลือกหมวด “Application”
- เลือกประเภทโปรเจคที่ต้องการ (ในที่นี้โค้ชเลือก Single View Application)
- กดปุ่ม Next และกรอกข้อมูลที่จำเป็น
![Choose iOS application template](https://nextflow.in.th/wp-content/uploads/Choose-iOS-application-template.png)
5. กำหนด Bundle Identifier และเลือก Team Profile
- ให้เราคลิกเลือกชื่อโปรไฟล์ ของโปรเจคเราจากบริเวณด้านซ้ายของ Xcode
- กรอก Bundle Identifier: (คล้ายๆ กับเลขประจำตัวประชาชนของแอพเรา มีหลักในการตั้งคือ Reverse domain name หรือเขียนชื่อ domain name เราแบบย้อนกลับ)
- เลือกโปรไฟล์ Team : ในที่นี้ควรจะมีชื่อ Apple ID ที่เราใส่ไปในข้อ 3
![Add team and bundle identifier to Xcode project](https://nextflow.in.th/wp-content/uploads/Add-team-and-bundle-identifier-to-Xcode-project.png)
6. เชื่อมต่ออุปกรณ์ iOS เข้ากับเครื่องคอมพิวเตอร์ของเรา
ให้ทำการเสียบสาย Lighting เข้ากับอุปกรณ์ iOS (เช่น iPhone, iPod, หรือ iPad) และคอมพิวเตอร์ของเราผ่าน port USB
7. เลือกอุปกรณ์ iOS ที่เชื่อมต่อเป็นเป้าหมายในการรันแอพของโปรเจค
ขั้นตอนนี้เราสามารถกำหนดเป้าหมายในการรันตัวแอพบน Xcode ไปที่อุปกรณ์พกพาของเราได้
ถ้าเป็นการเชื่อมต่อครั้งแรก อาจจะมีหน้าต่างขึ้นมาขออนุญาตในอุปกรณ์ iOS และ/หรือ Xcode ให้กด Trust, หรือ Enable อย่างใดอย่างหนึ่งตามสถานการณ์
บน Xcode เราสามารถเลือก Destination เป็นชื่อเครื่องของเราได้
- ไปที่ Product เมนู
- เลือก Destination
- เลือกชื่อเครื่องที่เราเชื่อมต่อไว้แล้ว
![Set Destination to iOS Device](https://nextflow.in.th/wp-content/uploads/Set-Destination-to-iOS-Device.png)
เราสามารถเลือกอุปกรณ์ที่เราเชื่อมต่อไว้แล้ว ได้จากส่วนของ Scheme เช่นเดียวกัน
![Set Scheme to iOS Device](https://nextflow.in.th/wp-content/uploads/Set-Scheme-to-iOS-Device.png)
8. กดปุ่ม Build & Run
ถ้าเราพร้อมแล้ว ก็กดปุ่ม Build & Run เพื่อให้ Xcode เร่ิมกระบวนการคอมไฟล์ส่งแอพพลิเคชั่นเข้าอุปกรณ์ iOS ของเรากันเลย
9. อนุญาตการติดตั้งใช้งานแอพ
ในกรณีที่แอพของเราถูกสร้างจาก Apple ID ที่ยังไม่ได้จ่ายเงินเข้า Apple Developer Program
แม้ว่าการ compile กับ build ตัวแอพผ่าน แต่ก็จะมีป๊อปอัพหน้าต่างแบบด้านล่างขึ้นมา
![Xcode operation couldn't be completed. inadequate entitlements profile has bot been explicitly trusted by the user](https://nextflow.in.th/wp-content/uploads/2021-02-06_15-44-41.png)
วิธีแก้ไขให้ทำตามนี้
เริ่มต้นจากให้เปิด Setting บนอุปกรณ์ iOS ขึ้นมา จากนั้นเข้าไปในส่วน General
![iOS App trusted by user on setting 1](https://nextflow.in.th/wp-content/uploads/IMG_7634.png)
เลื่อนลงมาด้านล่าง จะเห็นส่วนที่เรียกว่า Device Management เข้าไปเลย
![iOS App trusted by user on setting 2](https://nextflow.in.th/wp-content/uploads/IMG_7635.png)
เข้ามาแล้วจะเห็น ชื่อ Apple ID ของเราอยู่ในส่วน Developer App กดเข้าไปเลย
![iOS App trusted by user on setting 3](https://nextflow.in.th/wp-content/uploads/IMG_7636.png)
ส่วนนี้จะมีให้กด trusted ที่จะทำให้เครื่อง iOS ยอมรับแอพที่สร้างจาก Apple ID ดังกล่าว
![iOS App trusted by user on setting 4](https://nextflow.in.th/wp-content/uploads/IMG_7637.png)
เรียบร้อยแล้ว
สรุป
จะเห็นได้ว่าขั้นตอนทั้งหมดคล้ายกับการใช้บัญชี Apple Developer Program มาก เพียงครั้งนี้เราใช้แค่ Apple ID เท่านั้นเอง
ส่วนประกอบสำคัญ 3 ส่วนก็คือ
- ต้องมี Apple ID
- ต้องติดตั้ง Xcode เวอร์ชั่น 7 เป็นต้นไป
- อุปกรณ์ iOS และเครื่อง Mac จะต้องเชื่อมต่อและตั้งค่าให้ถูกต้อง
ถ้าติดปัญหาอะไร ลองคอมเม้นต์ฝากไว้ หรือคุยกันด้านล่างได้ครับ
เริ่มต้นเรียนรู้สร้างแอพ iOS และ Android ด้วย Google Flutter ไปกับโค้ชพล
✅ เหมาะสำหรับผู้เริ่มต้น
✅ เขียนครั้งเดียว ใช้ได้ทั้งระบบ iOS และ Android ประหยัดเวลา
✅ เรียนได้ทุกเวลา ไม่มีวันหมดอายุ
✅ ได้รู้ตั้งแต่วิธีติดตั้งโปรแกรม จนเอาขึ้นApp Store และ Play Store
✅ ได้ทำแอพของจริง เริ่มต้นจาก 0 ทุกโปรเจค มีระบบถามตอบ กรณีติดปัญหา