วิธีแก้ปัญหา XCode 5.1 สร้างแอพ iOS ด้วย PhoneGap 3.4 ไม่ได้ (วิดีโอประกอบ)

XCode 5.1 เพิ่งอัพเดตได้ไม่กี่วัน ก็อาจจะก่อปัญหาให้คนที่ใช้ PhoneGap เวอร์ชั่นรุ่น 3.4 และต่ำกว่าได้ มาดูกันดีกว่าว่าเรามีปัญหาอะไร และจะแก้ไขอย่างไร 

ปัญหาที่คุณจะเจอ

1. CB-6150 – objc_msgSend ทำให้เกิด EXC_BAD_ACCESS (arm64)
2. CB-6223 – Build/linker errors
3. ios-sim ไม่ทำงาน

1. วิธีแก้ EXC_BAD_ACCESS

วิธีแก้คือคุณต้องเอาไฟล์เพิ่มเติมมาใส่ใน platforms/ios/CordovaLib/Classes ที่อยู่ในโปรเจคแอพ PhoneGap ของคุณ

  • สำหรับ PhoneGap 3.4: ให้ download ไฟล์นี้ และ ไฟล์นี้ ไปใส่ใน folder ดังกล่าว
  • สำหรับ PhoneGap รุ่นที่ต่ำกว่า 3.4: ให้ download 2 ไฟล์ด้านบน และ ไฟล์นี้ ไปใส่ใน folder ดังกล่าว

2. วิธีแก้ Build/Linker errors

วิธีนี้ต้องไปแก้ Build Setting ใน XCode Project ของเรา

  1. คลิกเลือกไอคอน Project
    1. เลือก Build Setting
    2. ใน “Architectures” ให้เลือก $ARCHS_STANDARD – Standard architectures (armv7, armv7s, arm64)
    3. ใน “Valid Architectures” เพิ่ม arm64 เข้าไปในรายการ
  2. คลิกเลือกไอคอน  CordovaLib.xcodeproj
    1. เลือก Build Setting สำหรับ Project
    2. ให้ลบ delete *all*  conditional architecture settings ทั้งหมด (ลบได้โดยการเอาเม้าส์ไปชี้แต่ละตัว จะมีเครื่องหมายลบแสดงขึ้นมา) อ้างอิงจาก Xcode 5.1 Release Notes ของ Apple
    3. ใน “Architectures” ให้เลือก $ARCHS_STANDARD – Standard architectures (armv7, armv7s, arm64)
    4. ใน “Valid Architectures” เพิ่ม arm64 เข้าไปในรายการ
    5. เลือก Build Setting สำหรับ Target แล้วทำแบบเดียวกับ Build Setting ของ Project

3. วิธีแก้ ios-sim ให้ทำงานเหมือนเดิม

แก้ไขโดยการอัพเดต ios-sim ให้เป็นเวอร์ชั่น 1.9.0 ขึ้นไปครับ

ให้เปิด Command line (Windows) หรือ Terminal (OS X) ขึ้นมาแล้วใช้คำสั่งต่อไปนี้

// ติดตั้ง ios-sim เป็นเวอร์ชั่นล่าสุดใหม่
npm install -g ios-sim

// เช็คเวอร์ชั่น ios-sim 
ios-sim --version

 

ปัญหาทั้งหมดจะได้รับการแก้ไขใน PhoneGap รุ่นต่อไป

วิธีการข้างบนเป็นวิธีที่ดีที่สุดสำหรับคนที่กำลังสร้าง iOS Application ด้วย PhoneGap เวอร์ชั่น 3.0 – 3.4 นะครับ ถ้ายังไม่รีบร้อน ข้อผิดพลาดทั้งหมดที่เกิดกับแอพ iOS ที่ทำงานกับ XCode 5.1 จะได้รับการแก้ไขใน PhoneGap 3.5 ที่กำลังจะออกมาเร็วๆ นี้

สนใจเรื่อง Web Design, Adobe for Web, และ PhoneGap ฝาก Email รับบทความใหม่ๆ จากผมได้ที่นี่ครับ

ดูเนื้อหารวมเรื่อง PhoneGap ได้ที่ nextflow.in.th/phonegap

Thank you Shazron & friend for this useful solution

[sc:Promo-below-post ]

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Menu