ปัญหากับ UIRequiredDeviceCapabilities property

หลายคนอาจจะกำลัง submit application ขึ้น review อยู่ดีๆแต่ต้องเจอกับ error แบบนี้อย่างหลีกเลี่ยงไม่ได้
The app’s Info.plist can’t contain values for the UIRequiredDeviceCapabilities key that would prevent this app from opening on any iOS device. For more information, see Understanding the UIRequiredDeviceCapabilities Key.

แล้วเราควรจะจัดการกับ Error ตัวนี้กันอย่างไรดี

 

ก่อนอื่นมารู้จักกับ UIRequiredDeviceCapabilities property กันก่อนว่าคุณลักษณะตัวนี้ไว้บอกถึงอะไร?

  • UIRequiredDeviceCapabilities property เป็นค่าที่ไว้บอกคุณลักษณะของฮาร์ดแวร์บนอุปกรณ์นั้นๆที่จะอนุญาติว่าจะยอมให้แอพลิเคชันของเรานั้นสามารถเปิดขึ้นมาได้หรือไม่

 

ค่า Property อยู่ที่ไหน?Screen Shot 2558-12-17 at 12.04.59 PM

  • ที่เก่าที่เดิม อยู่ที่ไฟล์ Info.plist นั่นเอง และคาดการณ์ส่วนตัวว่าน่าจะมาพร้อมกันกับการสร้างโปรเจคใหม่ด้วย Xcode เวอร์ชัน 7 เพราะโปรเจคเก่าๆ จะยังไม่มีค่านี้ ค่านี้จะถูกสร้างขึ้นอัตโนมัติเมื่อมีการสร้างโปรเจคใหม่

 

กำหนดคุณสมบัติค่าทำได้อย่างไรบ้าง

  •  ตามเอกสารของ Apple การกำหนดตัวแปรทำได้ 3 อย่างScreen Shot 2558-12-17 at 12.05.30 PM true: เครื่องนั้นๆ จะต้องมีคุณลักษณะตามที่ระบุ เพื่อจะเปิดแอพลิเคชันได้
    false: เครื่องนั้นๆ จะต้องไม่มีคุณลักษณะตามที่ระบุ เพื่อจะเปิดแอพลิเคชันได้
    non-existence: เครื่องนั้นๆ อาจจะมี หรือ ไม่มีคุณลักษณะตามที่ระบุ เพื่อจะเปิดแอพลิเคชันได้ ก็คือเราไม่ค่อยสนใจเรื่องนี้เท่าไร
    แต่ property ที่ถูกสร้างขึ้นมาจริงนั้นดันเป็น Array ไม่ใช่ Boolean อีก ตามรูปด้านล่าง

Screen Shot 2558-12-17 at 12.04.44 PM

 

จะทำอย่างไรกับ Error เวลาจะส่งแอพลิเคชันไปรีวิว?

  • จาก Error ตามข้างต้นจะเห็นว่า UIRequiredDeviceCapabilities มีปัญหาเพราะมีตัวนี้อยู่จะทำให้แอพลิเคชันไม่สามารถเปิดได้ไม่ว่าจะอยู่เครื่องไหนก็ตาม เพราะฉะนั้น เราจะแก้ด้วยวิธีการแบบโหดสุดคือ ลบ property นั้นออกซะเลยก็คือไปลงเงื่อนไข non-existence นั่นเอง

 

แก้ได้มั้ย?

  • ปรากฏว่าแก้ได้ สามารถ submit app ขึ้นไปรีวิว ได้สำเร็จ

 

สรุปง่ายๆคือ ลบ property นี้ทิ้งไปเลย จากนั้นก็สามารถส่งขึ้นรีวิวได้ตามปกติ

คาดว่าเค้าคงจะตั้งใจให้มี property ตัวนี้อยู่นั่นแหละ แต่อาจจะยังไม่สมบูรณ์หรือด้วยเหตุผลอะไรสักอย่าง ทำให้ property ตัวนี้ยังไม่สมบูรณ์

เอกสารอ้างอิง: property

พบกันตอนหน้าจ้า