Posted on Leave a comment

เผยวิธีรันแอพ iOS ด้วย Xcode 7 แบบไม่ต้องเสียเงิน

iOS Touch ID

สำหรับคนที่ติดตามข่าวของ Xcode 7 (โปรแกรมครอบจักรวาลที่ใช้พัฒนาแอพ iOS, Watch App, Mac App) จะพอทราบว่า

Xcode 7 ได้ผ่อนปรนให้นักพัฒนาสามารถรันแอพของตัวเองในอุปกรณ์ iOS ได้ โดยที่ไม่ต้องเสียเงินสมัคร Developer Program

แต่ถ้าต้องการขายบน App Store ก็ต้องเสียเงินก่อนนะแจ้

สำหรับบทความนี้สามารถใช้ได้กับแอพ iOS ที่สร้างด้วย

  • ภาษา Native อย่าง Objective-C, Swift
  • ภาษาเว็บอย่าง PhoneGap และ Ionic Framework รวมถึง React Native ด้วยครับ

วิธีการรันแอพ iOS ลงในอุปกรณ์จริง โดยไม่ต้องเสียเงินสมัคร Developer Program

1.เปิดบัญชี Apple ID

อย่างแรกสุดเราต้องมี Apple ID ที่เราสามารถสมัครได้ง่ายๆ ทีนี่

Apple ID registration thai

ซึ่ง Apple ID นี้สามารถใช้เป็นตัวเดียวกับที่เราสมัครใช้ซื้อแอพ หรือเพลงผ่านระบบ iTune หรือ iCloud ของ Apple ได้ครับ

คนที่ทำกิจกรรมเหล่านี้เป็นปกติ อาจจะมี Apple ID อยู่แล้วก็ได้

1. ซื้อเพลง, แอพ ผ่าน iTune

2. ใช้ iCloud

2. ติดตั้ง Xcode 7

เราสามารถติดตั้ง Xcode 7 ได้จาก Mac App Store (มีมาให้ตั้งแต่ OS X 10.6.6 รหัส Snow Leopard) ซึ่งสามารถคลิกจากหน้าเว็บนี้เพื่อไปยัง Mac App Store ได้เลย

ปล. ไฟล์ใหญ่มาก ควรเผื่อเวลาในการดาวน์โหลด

Xcode 7 in Mac App store

 

3. เพิ่มบัญชี Apple ID ใน Xcode

  1. คลิกเปิดเมนู Xcode
  2. คลิก Preferences…
  3. คลิก Accounts
  4. คลิกปุ่ม +

Add Apple ID to Xcode

กรอก Apple ID ของเราลงไป

  1. กรอก Apple ID (Email และ Password)
  2. กดปุ่ม Add

Add Apple ID to Xcode fill the form

4. สร้าง หรือเปิดโปรเจคแอพ iOS

ทีนี้ให้สร้าง หรือเปิดโปรเจคแอพ iOS ที่มีอยู่ขึ้นมา

โดยในที่นี้โค้ชพลใช้โปรเจคแอพ iOS แบบ Native ที่สร้างด้วย React Native ครับ

สำหรับมือใหม่ ลองดูขั้นตอนการสร้างโปรเจคแอพ iOS ด้านล่างนี้ได้เลย

  1. ไปที่เมนู File เลือก New
  2. เลือก Project…

New project in Xcode

  1. เลือกหมวด “Application”
  2. เลือกประเภทโปรเจคที่ต้องการ (ในที่นี้โค้ชเลือก Single View Application)
  3. กดปุ่ม Next และกรอกข้อมูลที่จำเป็น

Choose iOS application template

5. กำหนด Bundle Identifier และเลือก Team Profile

  1. ให้เราคลิกเลือกชื่อโปรไฟล์ ของโปรเจคเราจากบริเวณด้านซ้ายของ Xcode
  2. กรอก Bundle Identifier: (คล้ายๆ กับเลขประจำตัวประชาชนของแอพเรา มีหลักในการตั้งคือ Reverse domain name หรือเขียนชื่อ domain name เราแบบย้อนกลับ)
  3. เลือกโปรไฟล์ Team : ในที่นี้ควรจะมีชื่อ Apple ID ที่เราใส่ไปในข้อ 3

Add team and bundle identifier to Xcode project

6. เชื่อมต่ออุปกรณ์ iOS เข้ากับเครื่องคอมพิวเตอร์ของเรา

ให้ทำการเสียบสาย Lighting เข้ากับอุปกรณ์ iOS (เช่น iPhone, iPod, หรือ iPad) และคอมพิวเตอร์ของเราผ่าน port USB

7. เลือกอุปกรณ์ iOS ที่เชื่อมต่อเป็นเป้าหมายในการรันแอพของโปรเจค

ขั้นตอนนี้เราสามารถกำหนดเป้าหมายในการรันตัวแอพบน Xcode ไปที่อุปกรณ์พกพาของเราได้

ถ้าเป็นการเชื่อมต่อครั้งแรก อาจจะมีหน้าต่างขึ้นมาขออนุญาตในอุปกรณ์ iOS และ/หรือ Xcode ให้กด​ Trust, หรือ Enable อย่างใดอย่างหนึ่งตามสถานการณ์

บน Xcode เราสามารถเลือก Destination เป็นชื่อเครื่องของเราได้

  1. ไปที่ Product เมนู
  2.  เลือก Destination
  3. เลือกชื่อเครื่องที่เราเชื่อมต่อไว้แล้ว

Set Destination to iOS Device

เราสามารถเลือกอุปกรณ์ที่เราเชื่อมต่อไว้แล้ว ได้จากส่วนของ Scheme เช่นเดียวกัน

Set Scheme to iOS Device

8. กดปุ่ม Build & Run

ถ้าเราพร้อมแล้ว ก็กดปุ่ม Build & Run เพื่อให้ Xcode เร่ิมกระบวนการคอมไฟล์ส่งแอพพลิเคชั่นเข้าอุปกรณ์ iOS ของเรากันเลย

สรุป

จะเห็นได้ว่าขั้นตอนทั้งหมดคล้ายกับการใช้บัญชี Apple Developer Program มาก เพียงครั้งนี้เราใช้แค่ Apple ID เท่านั้นเอง

ส่วนประกอบสำคัญ 3 ส่วนก็คือ

  • ต้องมี Apple ID
  • ต้องติดตั้ง Xcode เวอร์ชั่น 7 เป็นต้นไป
  • อุปกรณ์ iOS และเครื่อง Mac จะต้องเชื่อมต่อและตั้งค่าให้ถูกต้อง

ถ้าติดปัญหาอะไร ลองคอมเม้นต์ฝากไว้ หรือคุยกันด้านล่างได้ครับ

โค้ชพลขอตัวก่อนล่ะ แว้บบบบบ

เปิดอบรมสร้าง Cross Platform Mobile Application ด้วย Ionic Framework

เหมาะสำหรับคนทำเว็บ, เริ่มต้น JavaScript ES6 และ Angular เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

โปรหน้าฝน! เรียนรอบสด รับคอร์สออนไลน์มูลค่ากว่า 5800 บาทฟรี!

Posted on Leave a comment

รู้จักกับ CocoaPods ในการพัฒนาแอพ iOS และ Android

CocoaPods

กลางเดือนที่ผ่านมาในงาน Google I/O ทาง Google ได้ประกาศว่านักพัฒนา Android จะได้ใช้ CocoaPods ในการทำแอพของตัวเองด้วย ซึ่งเป็นการดีที่เราจะมาทำความเข้าใจ

CocoaPods: ผู้จัดการระบบ Library อันยุ่งเหยิงของการทำแอพ

หากจะนึกถึงการเอาพวก Library (โค้ดที่นักพัฒนาเขียนไว้เพื่อนำไปใช้ซ้ำในระบบอื่นๆ) มาใช้ในการทำแอพ iOS ยุคแรกๆ ก็ใช้นึกถึงทีมฟุตบอลที่สมาชิกทั้ง 11 คนที่ตอนแรกก็เขี่ยบอลกันดีๆ แต่ท้ายเกมต่างแย่งบอลกันเอง (นั่นหมายถึงโกลด์ออกมาแย่งบอลด้วย โอววววว)

ดังนั้นปัญหาคือเมื่อแผนการเล่นซับซ้อนขึ้น จำเป็นต้องมี “ผู้จัดการทีม” มาลำดับการรับส่งบอลของผู้เล่นแต่ละคนนั่นเอง ซึ่งนี่แหละ คือหน้าที่ของ CocoaPods ครับ

โดย CocoaPods เกิดมาสำหรับใช้งานในการพัฒนาแอพ iOS แต่ Google ก็กำลังจะนำระบบ CocoaPods มาใช้กับการพัฒนา Android

วิธีติดตั้ง CocoaPods

CocoaPods สร้างด้วยภาษา Ruby ดังนั้นคุณจำเป็นต้องติดตั้งระบบ Ruby ในเครื่องให้เรียบร้อย ไม่ว่าจะเป็น Mac OS X หรือ Windows ครับ

จากนั้นให้เปิดโปรแกรม Terminal (บน Mac OS X) หรือ Command Prompt (บน Windows) แล้วรันคำสั่งต่อไปนี้

sudo gem install cocoapods

ถ้าเจอปัญหาก็ลองดูวิธีการแก้ไขจากที่นี่

PodFile: รายชื่อนักเตะที่จะลงสนาม

ถ้าเป็นคอบอล หรือเคยดูการแข่งขันกีฬาต่างๆ ก่อนที่จะเริ่มการแข่ง มักจะมีรายชื่อนักกีฬา และตำแหน่งแสดงขึ้นมาก่อนเสมอ หรือเวลาที่ผู้จัดการทีม จะดูว่าใครจะลงแข่งบ้างก็จะมีการกำหนดชื่อผู้เล่นในรายการ ใน CocoaPods ก็เช่นกัน

ในตอนแรก โค้ชพลอธิบายว่า CocoaPods เป็นระบบที่จะมาจัดการ Library ต่างๆ ที่เราเอามาใช้ในโปรเจคแอพ iOS ของเรา ซึ่ง CocoaPods ก็จะให้ไฟล์เรามาอันหนึ่งในโปรเจค เพื่อให้เราระบุ Library ให้มันไปจัดการให้เรา

ไฟล์นี้ เรียกว่า PodFile ครับ

โดยใน PodFile เปล่าๆ นี้คุณสามารถระบุชื่อของ Library และเวอร์ชั่นที่ต้องการลงไปได้ เช่น Google App Indexing

platform :ios, '8.0'
pod 'GoogleAppIndexing', '~> 1.0.0'

วิธีสร้าง Pod File ในโปรเจคแอพ iOS

ในการใช้งาน CocoaPods กับโปรเจคแอพ iOS เราสามารถใช้งาน PodFile ได้ 2 รูปแบบด้วยกัน:

  1. ใช้กับโปรเจคที่มีอยู่แล้ว
  2. ใช้กับโปรเจคที่สร้างใหม่

1. ใช้ CocoaPods ในโปรเจคแอพ iOS ที่มีอยู่แล้ว

1.1 สร้าง PodFile โดยเปิดโปรแกรม Terminal ใน folder ที่เก็บโปรเจค Xcode ไว้ แล้วรันคำสั่ง

touch PodFile

1.2 เพิ่มรายชื่อ Library ที่ต้องการ เช่น Google App Indexing

pod 'GoogleAppIndexing', '~> 1.0.0'

1.3 บันทึกไฟล์

1.4 รันคำสั่งด้านล่างในโปรแกรม Terminal

pod install

1.5 เปิดโปรเจค Xcode และสั่ง build ตัวโปรเจค

2. ใช้ CocoaPods ในโปรเจคแอพ iOS ที่สร้างขึ้นใหม่

1.1 สร้างโปรเจคแอพ iOS ใหม่

1.2 สร้าง PodFile ใน folder ของโปรเจคโดยเปิดโปรแกรม Terminal ใน folder ที่เก็บโปรเจค Xcode ไว้ แล้วรันคำสั่ง

touch PodFile

1.3 ระบุชื่อ platform และเวอร์ชั่นที่ต้องการ (ตอนใช้ได้กับ Android ก็จะมาระบุตรงนี้)

platform :ios, '8.0'

1.4 เพิ่มรายชื่อ Library ที่ต้องการ เช่น Google App Indexing

pod 'GoogleAppIndexing', '~> 1.0.0'

1.5 บันทึกไฟล์

1.6 รันคำสั่งด้านล่างในโปรแกรม Terminal

pod install

1.7 เปิดโปรเจค Xcode และสั่ง build ตัวโปรเจค

สรุป

จะเห็นว่าCocoaPods เปิดโอกาสให้เราจัดการ Library ใน iOS ง่ายขึ้นโดยการกำหนดชื่อของ Library และ version ที่ต้องการเท่านั้น เมื่อถึงเวลาที่ Google ทำให้ CocoaPods สามารถใช้งานกับโปรเจคแอพ Android ได้ ก็คงเป็นอะไรที่น่ารื่นรมย์ไม่น้อยเลยครับ

เปิดอบรม React Native สำหรับผู้เริ่มต้น

ปูพื้นฐาน React และ React Native เข้าใจง่าย, ใช้ได้จริง, เนื้อหาใช้ในการทำแอพ Enterprise ขององค์กรได้

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

อ้างอิง – CocoaPods, Using CocoaPods

 

Posted on Leave a comment

Apple เปิดระบบ App Analytic ให้นักพัฒนาทั่วไปใช้แล้ว

Apple App Analytic

App Analytics ที่ Apple ได้สร้างไว้เพื่อให้นักพัฒนาวิเคราะห์แอพของตัวเอง ที่ตอนแรกเปิดให้ทดสอบในวงจำกัด ตอนนี้ได้ปล่อยให้นักพัฒนาทุกคนใช้ได้แล้วครับ (ตอนที่เขียนนี้เป็นเวอร์ชั่น Beta)

บริการนี้ไม่มีค่าใช้จ่าย และไม่ต้องใส่ code พิเศษใดๆ สามารถใช้ได้ทันที

โดยโค้ชพลแว้บเข้าไปดูรายละเอียดของ App Analytic มีข้อมูลน่าสนใจดังนี้

  • ดูได้ทั้งยอดขาย (Sales), ข้อมูลที่เกี่ยวกับการใช้งาน (Usage), และข้อมูลเกี่ยวกับรายได้ (Monetization) ของแอพ
  • ทำงานบน iOS 8 หรือเวอร์ชั่นที่สูงกว่าเท่านั้น (เอิ่ม) และการนับต่างๆ เช่นยอดดาวน์โหลด (App Units), ยอดคนเข้าดู (App Store views), หรือยอดซื้อของในแอพ (In-App Purchases) จะนับจาก iOS 8 ขึ้นไปเท่านั้น
  • ไม่สามารถเจาะจงดูข้อมูลของผู้ใช้คนใดคนหนึ่งได้
  • ผู้ใช้แอพสามารถเลือกให้ไม่ส่งข้อมูลของตัวเองเข้า App Analytic ได้
  • Event ที่เกิดขึ้นใน Apple Watch ยังไม่ถูกรวมเข้ามาตอนที่ผมเขียนอยู่นี้ (ไว้เปลี่ยนแปลงจะมาอัพเดตให้นะ)

สนใจเริ่มใช้ App Analytic ไปที่นี่เลยครับ

 

Posted on Leave a comment

รวมวิธีแก้ปัญหา PhoneGap/Cordova พัฒนา iOS Application

iPhone5s by Janitors - flickr

โค้ชพลได้รวบรวมปัญหาในการติดตั้งและใช้งาน PhoneGap/Cordovaให้พร้อมสำหรับการพัฒนา iOS Application มาไว้ที่นี่เดียวนะครับ

ส่วนของแอพ Android  ให้ไปดูที่ “รวมวิธีแก้ปัญหา พัฒนา Android Application ด้วย PhoneGap/Cordova

ถ้าใครมีปัญหาเพิ่มเติมนอกเหนือจากนี้ ให้ comment ไว้ด้านล่างนะครับ

 

A. เจอ “Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.”

ปัญหา

พยายามเพิ่ม iOS platform หรือ Build iOS platform แล้วเจอข้อความนี้ใน Terminal

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

ต้นเหตุ

XCode และ iOS 8 SDK ที่เราเพิ่งดาวน์โหลดมาติดตั้งในเครื่อง ยังไม่ได้ถูกเปิดใช้ เวลาเปิดใช้งานครั้งแรกโปรแกรมจะให้เราอ่านสัญญา และกด Accept (ใช่ครับ ที่เราคุ้นเคยในชื่อ Accept License Agreement)

จึงเป็นผลทำให้ระบบยังไม่สามารถเข้าไปใช้งาน iOS SDK ได้ครับ

วิธีแก้

  • ง่ายสุด ให้เปิดโปรแกรม XCode ขึ้นมา (ครั้งแรกอาจจะนานหน่อย เครื่องโค้ชพลเก่านิดหนึงเลยช้า) แล้วมันจะให้อ่านสัญญา แล้วกดปุ่ม Accept เป็นอันเรียบร้อย ให้ลองสั่งคำสั่งผ่าน Terminal อีกที
  • ถ้าต้องการแก้จากโปรแกรม Terminal ให้ใช้คำสั่ง sudo xcrun cc  (ที่มา) จากนั้นดำเนินตามขั้นตอนจนเสร็จสมบูรณ์แล้วลองใหม่
Posted on Leave a comment

สรุป 11 เหตุผลที่ Apple จะปฏิเสธ (Reject) แอพพลิเคชั่นของคุณ

UI Do and dont by apple ios

“Rejected” หรือ “รีเจ็ค” เป็นคำที่นักพัฒนาแอพพลิเคชั่นสำหรับอุปกรณ์พกพาไม่อยากได้ยินเลย

ซึ่งทางฝั่ง iOS จะมีการรีเจ็คสูงกว่าฝั่งของ Android มาก ปัญหามันก็อยู่ที่ว่า ทำไม Apple ถึงรีเจ็คแอพพลิเคชั่นของเรา?​

ทาง Apple คงได้รับคำถามนี้กันอย่างท่วมท้น เลยรวบรวมกรณีที่เขาใช้ในการรีเจ็คแอพกันบ่อยๆ มาเผยแพร่ให้นักพัฒนาเอาไปดูกัน จะได้ไม่ต้องโดนรีเจ็คอีก (สงสัยทางคนตรวจก็คงเริ่มขี้เกียจเหมือนกันครับ ฮา)

1. แอพอุดมไปด้วยข้อผิดพลาด (Crashes and Bugs)

อันนี้ค่อนข้างแน่นอนว่าจะผ่านการตรวจไปไม่ได้แน่นอน แอพที่ทดสอลแล้วว่ามีข้อผิดพลาด (หรือ “บั้ก”) ที่ร้านแรงที่สุดคงแอพพัง (Crash) ออกมาที่หน้า Home screen จะโดนรีเจ็ค

วิธีแก้ก็คือทดสอบแอพพลิเคชั่นให้รัดกุม มากกว่าที่จะเสียเวลารอตรวจเพื่อที่จะเจอข้อผิดพลาดจาก App Store

2. ส่วนติดต่อผู้ใช้ห่วย ไม่ตรงตามเกณฑ์ของ Apple (Substandard User Interface)

UI Do and dont by apple ios

เรื่องของหน้าตา และประสบการณ์การใช้งาน (หรือที่เรียกกันว่า “User Experience”) ของแอพพลิเคชั่นจาก Apple จะมีแนวทางไว้ให้ศึกษาอยู่แล้ว ไม่ว่าจะใช้ภาษา Native อย่าง Objective-C หรือ Swift หรือใช้ Framework อื่นๆ อย่าง Unity, PhoneGap, หรือ Ionic ก็ควรที่จะทำตามแนวทางที่เขาวางกรอบไว้

ดู Design Guide ของ Apple ที่นี่ หรือ อะไรควร อะไรไม่ควรในการออกแบบ UI ที่นี่ 

3. ลิงค์ไม่ติด (Broken Links)

Link ทุกอันที่เราใส่ไว้ในแอพพลิเคชั่นต้องสามารถใช้งานได้

ในที่นี้รวมถึง link ติดต่อฝ่าย support หรือแม้แต่เอกสารอ้างอิงทางกฎหมายที่เกี่ยวข้องกับแอพด้วยครับ

4. ลืม Content จำลองไว้ในแอพ (Placeholder Content)

Place holder from Placeholdit

ในการสร้างแอพพลิเคชั่น ผมชอบใช้ content พวก place holder (ข้อความที่ไม่มีความหมายจาก lorem ipsum หรือภาพสีเทาเพื่อบอกขนาดของตัวภาพ) เพื่อสร้าง “ตัวต้นแบบ” ของแอพอย่างรวดเร็ว

แต่ถ้าคุณลืมเอาข้อความ หรือพวกภาพดังกล่าวออกจากแอพ ก่อนส่งให้ App Store พิจารณาล่ะก็ เขาจะถือว่าแอพนี้ยังไม่พร้อม (เพราะดันมีข้อมูลจำลองอยู่นี่นา)​ และรีเจ็คครับ

5. ข้อมูลไม่ครบ (Incomplete Information)

อันนี้สำคัญ เพราะบางแอพพลิเคชั่นไม่สามารถทดสอบโดยการเปิดใช้ในเครื่องอย่างเดียวได้ ผมสรุปมาให้ 2 กรณีครับ

กรณีที่ 1 แอพที่ต้องลงชื่อเข้าใช้ (sign in หรือ log in)

สำหรับแอพที่ต้องมีการลงชื่อเข้าใช้ ต้องมีการเตรียมบัญชีผู้ใช้สำหรับทดสอบให้ทางผู้ตรวจด้วย

Apple อยากตรวจทุกซอกมุม ที่จะถูกใช้จริงตอนที่แอพถูกปล่อยให้ดาวน์โหลดแล้ว ถ้าเขาไม่สามารถลงชื่อเข้าใช้ได้ ก็จะรีเจ็คกลับมา (ไม่ยอมให้ตรวจนิ)

กรณีที่ 2 ต้องการสภาพแวดล้อมพิเศษเพิ่มเติม

บางแอพพลิเคชั่นออกแบบมาให้ทำงานกับอุปกรณ์อื่นๆ อย่างเช่น แอพควบคุมโดรน หรือแอพที่สั่งถ่ายภาพกับกล้อง GoPro

ถ้าเป็นจำพวกนี้ต้องมี link ไปยังวิดีโอที่สาธิตการใช้งานให้ทีมตรวจสอบดู และทำตามได้ด้วย ไม่งั้น ไม่ผ่านครับ

6. มีโฆษณา แต่ไม่ดำเนินการให้ถูกต้อง (Advertisements)

สำหรับแอพที่มีการแทรกโฆษณามาในแอพ ในขั้นตอนการส่งตรวจ จะมีการถามข้อมูลเกี่ยวกับ Advertising Identifier (IDFA) ด้วย

ซึ่งถ้าคุณระบุว่ามีการใช้งาน IDFA แต่ตัวโฆษณากลับไม่ได้ใช้งานตรงตามที่กำหนด ก็จะถูกรีเจ็ค

ทีมตรวจสอบบอกว่าให้ทดสอบว่าตัวโฆษณาแสดงผลได้อย่างถูกต้องบนอุปกรณ์ iOS ให้เรียบร้อยก่อนส่งให้ตรวจครับ

และในกรณีที่เราไม่ได้แจ้งว่าแอพเรามี Ads แบบ IDFA (แต่จริงๆ เรามี) ทีมตรวจสอบจะเปลี่ยนสถานะของการพิจารณาเป็น Invalid Binary แทน

7. การแสดงผลเว็บไซต์ หรือเนื้อหาจากเว็บที่ไม่เหมาะสมกับ iOS (Web clippings, content aggregators, or a collections of links)

การทำงานของแอพส่วนใหญ่จะมีการนำ content หรือข้อมูลจาก Internet มาแสดง ซึ่งถ้าการแสดงผลข้อมูลนั้น ไม่เหมาะสมที่จะแสดงบนอุปกรณ์ iOS ก็มีสิทธ์เหมือนกัน

ส่วนใหญ่ที่พบก็อาจจะเป็นแอพที่ดึง feed เนื้อหาข่าว หรือรวม link จาก internet มาแสดงผลนั่นเอง ซึ่งทีมตรวจสอบ จะพิจารณาเป็นพิเศษว่าเหมาะสมหรือไม่

8. ส่งแอพคล้ายๆ กันบ่อยๆ (Repeated Submission of Similar Apps)

การส่งแอพลักษณะคล้ายๆ กัน (ยกตัวอย่างเช่นแอพดูทีวี ช่อง 3 แล้วก็สร้างแอพอีกตัวไว้ดูช่อง 7 โดยการเปลี่ยนรายละเอียดด้านในนิดเดียว) อาจจะโดนพิจารณาให้แอพทั้งหมดถูกรีเจ็ค

9. รายละเอียดที่แสดงไม่ชัดเจน (Inaccurate Descriptions)

อันนี้จะเป็นส่วนข้อมูลที่ต้องให้กับทาง App Store ครับ

ถ้าคำอธิบายความสามารถของแอพเรากำกวม ไม่ชัดเจนว่าแอพเราจริงๆ แล้วมีประโยชน์ หรือทำอะไรกันแน่ อาจถูกพิจารณาให้โดนรีเจ็ค

10. แอพทำไม่ได้อย่างที่โม้ (Misleading Users)

ในบางครั้งเราอธิบาย, ให้รายละเอียด, หรือโฆษณาแอพของเราอย่างสวยหรู แต่ตัวแอพจริงๆ กลับทำไม่ได้อย่างที่อ้างไว้ ก็จะถูกรีเจ็ค

11. แอพไม่มีคุณค่าพอที่จะอยู่บน App Store (Not enough lasting value)

ถ้าแอพพลิเคชั่นของเราถูกพิจารณาว่ามีความสามารถในการทำงานน้อยมาก (อย่างเช่น กดปุ่มแล้วมีคำว่า “สวัสดี” โผล่ขึ้นมา) ก็จะถูกรีเจ็ค

สัดส่วนของกรณีแอพพลิเคชั่นโดนรีเจ็ค

กราฟด้านล่างนี้ Apple สรุปมาให้ดูว่าในรอบ 7 วันมีแอพโดนรีเจ็คเพราะอะไรบ้าง

Top 10 reasons for app rejections

ที่มา – Apple Developer

Posted on Leave a comment

วิธีย้ายไปพัฒนา iOS แอพบนเครื่องอื่น

Get news machine to move Xcode iOS developer profile to

มี Mac เครื่องเดียว จะไม่เจอปัญหานี้หรอก แต่ถ้าคุณมาเจอบทความนี้ แปลว่าคงเสียเงินให้ Apple ไป 2 เครื่องแล้วสินะครับ (ผมก็เหมือนกัน)

ในกรณีที่เรามี Mac 2 เครื่องขึ้นไป และอยากใช้ Developer profile เดียวกันในการพัฒนา iOS Application เราจำเป็นต้องมีการ export profile ในเครื่องแรก ไปใช้ในเครื่องที่ 2 ครับ ว่าแต่ทำไงอ้ะ? มาดูกันดีกว่าว่าเราจะทำกันยังไง

ขั้นตอนโดยรวม

  1. ใช้ XCode export บัญชีนักพัฒนาของเราออกมาเป็นไฟล์ 1 ไฟล์
  2. นำไฟล์ที่ได้มา ไปไว้ในเครื่องที่ต้องการ ส่งไฟล์ทาง email หรือ copy ใส่ usb drive ได้หมด
  3. ใช้ XCode import ไฟล์เข้าไปใช้งาน

ดูรายละเอียดและขั้นตอนด้านล่างได้เลยครับ

วิธีการ Export Developer Profile

  1. เปิด XCode เข้าไปที่ Preference > Accounts
  2. คลิกเลือก Apple ID (ตรงนี้ถ้ายังไม่มี Developer account ก็ให้เพิ่มเข้าไปนะครับ จำเป็นต้องมีการสมัคร iOS Developer Program ก่อนนะ ใช่ครับ ไอ $99 นั่นแหละ)
  3. คลิกเลือกปุ่มเฟืองด้านล่าง และเลือก Export Accounts
  4. ตั้งชื่อ File, เลือกที่ Save, และใส่รหัสที่เคยตั้งไว้ตอนสร้าง Profile ครั้งแรก
  5. เรียบร้อย ได้ไฟล์นามสกุล .developerprofile มาแล้ว คราวนี้เราจะเอาไปลงอีกเครื่องล่ะ

วิธีการ Import Developer Profile

เอาล่ะตอนนี้เราพา Developer Profile ของเรามาถึงเครื่องปลายทางแล้ว มาติดตั้งกันเลย

  1. เปิด XCode เข้าไปที่ Preference > Accounts
  2. คลิกปุ่มเฟืองด้านล่าง และเลือก Import Accounts
  3. เลือกไฟล์นามสกุล .developerprofile 
  4. กรอกรหัสผ่าน
  5. ตัว XCode จะแจ้งว่าการ import นำอะไรเข้ามาบ้างเป็นอันเสร็จสมบูรณ์

สรุป

ง่ายใช่ไหมครับ? แต่ตอนแรกก็เอาผมตาแตกเหมือนกัน หวังว่าวิธีที่ผมโพสไว้ที่นี่จะเป็นประโยชน์สำหรับคุณที่กำลังหาวิธีทำแล้วผ่านมาเจอนะครับ ถ้ายังไงก็สามารถไปดูวิธีเริ่มต้นพัฒนา iOS App ด้วย HTML5 และ PhoneGap 3 ที่นี่ เผื่อสนใจครับ

Posted on Leave a comment

PhoneGap Tips: วิธีตั้งค่าให้แอพไม่หมุนตามการเอียงเครื่องใน Android และ iOS

พอเราเอา PhoneGap มาพัฒนาแอพกันจริงๆ จังๆ ก็ต้องเจอสเปคนี้แน่ๆ

“ถ้าไม่อยากให้แอพมันเอียงไปตามการถือเครื่อง จะทำยังไง?”

ซึ่งใน PhoneGap เวอร์ชั่น 3 ขึ้นไปได้รวมการตั้งค่าของทุกๆ platform มาอยู่ใน file ที่ชื่อว่า config.xml ซึ่งอยู่ใน folder ที่ชื่อ www ของเรานั่นเองครับ

วิธีล็อคไม่ให้แอพหมุนตามการถือของเครื่องสำหรับ Android และ iOS

1. กำหนดค่า

เริ่มจากการเปิดไฟล​์ config.xml ใน folder ที่ชื่อ www ของโปรเจคเราขึ้นมา และใส่ คำสั่งด้านล่างลงไประหว่างแท็ก <widget>  โดยค่าของ value จะเป็นlandscape  (แนวนอน) หรือportrait  (แนวตั้ง) ก็ได้ครับ

<widget>
..

<preference name="Orientation" value="landscape" />

..
</widget>

 

2. บันทึกไฟล์

หลายคนจะลืมกด Save ไฟล์ config.xml นะครับ ตรงนี้สำคัญนะ เพราะถ้าเราไม่ save ยังไงให้ตายมันก็ไม่ lock ครับ

3. สั่ง build แอพใน platform ต่างๆ ใหม่

หลังจากนั้นใช้คำสั่ง build เพื่อให้ PhoneGap SDK (หรือ Cordova SDK) สร้างแอพใน platform ต่างๆ ให้เราโดยใช้ค่าที่เราเพิ่งกำหนดลงไปใน config.xml ครับ

cordova build

 

4. ทดสอบ

พอขั้นตอนการ build เสร็จสมบูรณ์ ก็ให้ทดสอบในมือถือดูครับ หวังว่าได้ผลที่ต้องการทุกคนนะครับ

ถ้ากดสูตรนี้ไม่ติด ก็ comment คุยกันด้านล่างได้นะครับ

[us_cta controls=”bottom” title=”อบรม PhoneGap 3.0 Essential ” color=”primary” btn_label=”ดูรายละเอียด และลงทะเบียน” btn_color=”primary” btn_size=”18px” btn2_label=”” btn2_color=”light” btn2_size=”” btn_link=”url:http%3A%2F%2Fbit.ly%2F16xa6Zq” btn2_link=””]ผมเปิดอบรม course แบบ private ให้คุณมาเรียนรู้การใช้งาน PhoneGap แบบครบทุกองค์ความรู้ที่จำเป็นทั้งหมด ตั้งแต่การสร้างแอพ, การเขียน Javascript ควบคุมการทำงานต่างๆ ของเครื่องเช่นถ่ายรูป หรือฐานข้อมูล, และเทคนิคและวิธีหลีกเลี่ยงปัญหาที่ควรทราบ ทั้งหมด 2 วันสนุกๆ

สนใจลงทะเบียนได้ด้านล่างครับ [/us_cta]

 

Posted on 1 Comment

[Windows] วิธีสร้าง iOS Certificate Signing Request และ P12 เพื่อใช้ใน PhoneGap Build

PhoneGap Logo Thai ภาษาไทยสำหรับการใช้งาน PhoneGap Build ในการสร้าง iOS Application นั้น แม้คุณจะเคยได้ยินว่าต้องใช้ Mac OS X ในการสร้างไฟล์ที่จำเป็นในการทำงานเช่น CSR และ P12 แต่สำหรับผู้ที่ใช้ Windows ก็สามารถสร้างไฟล์พวกนี้ขึ้นมาได้เช่นกัน เพียงแต่ต้องทำผ่าน command line เท่านั้นเอง

สิ่งที่คุณต้องมี

  • iOS Developer Program
    ก็คือที่ต้องเสียเงิน 99 ดอลลาร์สหรัฐต่อปีนั่นแหละครับ จะเป็นแบบบุคคลทั่วไป (Individual) ก็ได้ หรือรูปแบบบริษัทก็ได้

1. สร้าง Certificate Signing Request File

  1. ติดตั้ง OpenSSL และ Visual C++ Distribution Package ทั้ง 2 ไฟล์สามารถ download ได้จากที่นี่ (ควรเลือกให้ตรงกับระบบ 32 bit และ 64 bit)
  2. เปิด Command Line
  3. ไปที่ folder ที่ติดตั้ง OpenSSL (ในที่นี้คือ C:OpenSSL )
  4. ไปที่ folder bin (ในที่นี้คือ C:OpenSSLbin )
  5. รันคำสั่งต่อไปนี้
    openssl genrsa -out mykey.key 2048
  6. ถ้าเจอ Warning Message ว่า “WARNING: can’t open config file: /usr/local/ssl/openssl.cnf” ให้ทำตามข้อ 6.1 ถ้าไม่เจอ ก็ไปข้อ 7 ได้เลยครับ
    1. run คำสั่งต่อไปนี้
      set OPENSSL_CONF=C:[OpenSSL Folder]­binopenssl.cfg

      โดยในส่วน [OpenSSL Folder]  ต้องเป็นชื่อ folder ที่คุณติดตั้ง OpenSSL ลงไป (ในตัวอย่างคือ C:OpenSSL )

    2. run คำสั่งต่อไปนี้
      set RANDFILE=.rnd
    3. กลับไปที่ข้อ 5
  7. สร้าง CSR File โดยรันคำสั่งต่อไปนี้
    openssl req -new -key mykey.key -out CertificateSigningRequest.cert­SigningRequest -subj "/emailAddress=training@nextflow.in.th, CN=Teerasej Ji, C=TH"

    emailAddress: ใส่เป็น email address ที่สมัคร iOS Developer Program (ในตัวอย่างคือ training@nextflow.in.th)
    CN: ชื่อและนามสกุลภาษาอังกฤษ (เว้นช่องว่างได้, ในตัวอย่างคือ Teerasej Ji)
    C: รหัสประเทศ 2 หลัก (เช่น US, ในตัวอย่างคือ TH)

  8. เราจะได้ไฟล์ที่ชื่อว่า CertificateSigningRequest.cert­SigningRequest มา
  9. เข้าไปที่ iOS Provisioning Portal (เข้าส่วนนี้ได้ต้องจ่าย $99 จากด้านบนนั่นแหละครับ)
  10. ทำการอัพโหลดไฟล์​  CertificateSigningRequest.cert­SigningRequest ขึ้นไป
  11. รอสักพัก (อาจต้องกด Refresh นิดหน่อย) ไฟล์จะพร้อมให้ download ดังภาพ

ios certificate created for phonegap - nextflow

2. การสร้างไฟล์ P12

การสร้างไฟล์ P12 บน Windows จะมี 2 ขั้นตอนคือการเปลี่ยน iOS Developer Certificate เป็น PEM file และจากนั้นเราจะสร้าง P12 ด้วย PEM file อีกที มาทำพร้อมกันเลยครับ

  1. ทำการ download iOS Developer Certificate file มาจากส่วนของ Certificate section (จากภาพด้านบน) มาไว้ใน folder bin ของ OpenSSL (ตัวอย่างคือ C:OpenSSLbin )
  2. รันคำสั่งต่อไปนี้ เพื่อสร้างไฟล์ PEM
    openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM

    developer_certificate.cer  คือไฟล์ที่เรา download มาจาก iOS Provisioning Portal
    developer_identify.pem  คือไฟล์ PEM ที่เราจะสร้างขึ้นมา

  3. รันคำสั่งต่อไปนี้ เพื่อสร้างไฟล์ P12
    openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iOS_dev.p12

    mykey.key  คือไฟล์ที่เราสร้างไว้ตอนแรกในข้อ 4 ของหัวข้อ “สร้าง Certificate Signing Request File”
    developer_identity.pem  คือไฟล์ PEM ที่สร้างจากข้อ 4
    iOS_dev.p12  คือไฟล์ P12 ที่เราต้องการ

  4. เราจะได้ไฟล์ P12 มาพร้อมใช้งาน

ติดตามเนื้อหาที่เกี่ยวข้องเพิ่มเติม

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

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

[sc:Promo-below-post ]
Posted on Leave a comment

[OS X] วิธีสร้าง iOS Developer Certificate และ Mobile Provision เพื่อใช้ใน PhoneGap Build

1. วิธีสร้าง Certificate Signing Request (CSR)

  1. เปิดโปรแกรม Keychain Access
  2. ไปที่คำสั่ง Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority.
  3. ในหน้าต่างให้ใส่ชื่อ, email, เลือก save the request to disk, เลือก Let me specify key pair information (ดังภาพด้านล่าง), และกด Continue.

Figure 3. Create a certificate request.
Figure 3. Create a certificate request.

  1. เลือกว่าจะ save  fileไว้ที่ไหน
  2. กด Save
  3. ในหน้า Key Pair Information page, ให้เลือกแบบ RSA และ 2048 bits key. (สำคัญมาก ถ้าไม่เลือกแบบ 2048 bits จะทำให้ iOS Provisioning Portal ตีกลับไฟล์ CSR
  4. เราจะได้ certificate request file มาไว้ในเครื่อง

2. วิธีสร้าง P12

เราจะใช้โปรแกรม Keychain Access ในการสร้างไฟล์ p12

  1. เปิด Keychain Access
  2. Double-click ไฟล์ WWDR certificate file (AppleWWDRCA.cer)  หรือ ใช้คำสั่ง select File > Import ใน Keychain Acces เพื่อ import AppleWWDRCA.cer.
  3. Double-click ไฟล์ develop_identity.cer file  หรือ ใช้คำสั่ง select File > Import ใน Keychain Acces เพื่อ import
  4. ไปที่ส่วนของ Certificates เราควรจะเห็น Certificate สองอัน (เป็นอย่างน้อย) ในภาพด้านล่าง
  5. เปิดดูส่วนของ developer certificate เราจะเห็น private key (ดังภาพด้านล่าง).

Figure 4. Import the developer certificate.
Figure 4. Import the developer certificate.

  1. คลิกขวาที่ private key และเลือก Export.
  2. ให้เลือก file format เป็น Personal Informatin Exchange (.p12)
  3. กำหนดชื่อไฟล์ และที่อยู่ของไฟล์ (ดังภาพด้านล่าง)
  4. กด Save

Figure 5. Create a P12 version of the certificate.
Figure 5. Create a P12 version of the certificate.

  1. จะมีกล่องข้อความขึ้นมา ให้เรากำหนด password สำหรับไฟล์ P12 ซึ่ง password ดังกล่าว ต้องใช้ทุกครั้งที่เราจะ sign applications
[sc:Promo-below-post ]
Posted on Leave a comment

PhoneGap Build เพิ่มการสนับสนุน Google Analytic Plugin แล้ว

google analytic logoบริการ PhoneGap Build ได้เพิ่มการสนับสนุน plugin สำหรับ Google Analystic แล้วครับ

โดยทั่วไปเราจะรู้จัก Google Analytic ในการ track พฤติกรรมของผู้ใช้ (User) ในการเข้ามาใช้งาน Website หรือ Web application ของเรา แต่เดิมทีโครงสร้างที่เราสามารถควบคุมได้ใน PhoneGap ก็เป็น web platform อยู่แล้ว จึงสามารถนำประโยชน์ส่วนนี้มาใช้งานใน Mobile app เช่นกัน

สำหรับ platform ที่สนับสนุนในปัจจุบันก็คือ iOS และ Android ครับ

สนใจก็ลองดูเข้าไปดูวิธีติดตั้ง plugin ใน project ของคุณสำหรับ PhoneGap Build และดูวิธีการเรียนใช้งาน Google Analystic Plugin ได้ที่นี่

อย่าลืมสมัคร Google Analytic account ก่อนด้วยล่ะ 🙂