สาเหตุและวิธีแก้ เมื่อแอพฯถูกปฏิเสธจาก Marketplace (Windows Phone)

ก่อนหน้านี้ได้เขียนแนะนำแอพฯตัวนึง ที่ส่งเข้า Marketplace ได้สำเร็จ (Minion Clock แอพฯวินโดวส์โฟนตัวแรกที่ส่งขึ้น Marketplace) เนื้อหาบางส่วนของโพสดังกล่าวก็มีการพูดถึงความล้มเหลวในการส่งแอพฯตัวอื่น เนื่องจากส่งไปตั้ง 3 แอพฯด้วยกัน แต่อีก 2 แอพฯยังไม่ผ่านเลย (โถ่ T^T ) ในโพสนี้ก็จะมาเล่าสู่กันฟังว่าทำไมถึง Failed และจะแก้ไขจุดที่เป็นปัญหานั้นอย่างไร

สาเหตุและวิธีแก้ เมื่อแอพฯถูกปฏิเสธจาก Marketplace (Windows Phone)

สาเหตุและวิธีแก้ เมื่อแอพฯถูกปฏิเสธจาก Marketplace (Windows Phone)

การที่เราจะส่งแอพฯสักตัวหนึ่งเข้าไปเฉิดฉายอยู่ใน Margetplace ได้ ต้องผ่านกรรมวิธีการตรวจสอบจากทีมงานของ Microsoft เขาก่อน ใช้เวลาประมาณ 5 วันทำการ (ขึ้นไป) ขั้นตอนนี้เรียกว่า Certification Test ถ้าแอพฯเราใช้งานได้ดี ไม่มีข้อผิดพลาด ก็จะได้รับการอนุมัติ แต่ถ้าเขาเจอข้อผิดพลาดในแอพฯของเรา หรือแม้กระทั่งข้อผิดพลาดใน Description เขาจะแจ้งว่ามัน failed ตรงไหน และเราควรแก้ยังไง

.

ต้องขอบอกก่อนเลยว่า ปัญหาที่จะเล่าต่อไปนี้เป็นปัญหาที่เจอมาเองระหว่างการพยายามดันแอพฯให้ผ่านด่านตรวจ ไม่ได้อ้างอิงถึงสถิติหรือสำรวจจากอะไรมาทั้งสิ้น เกิดจากความไม่รอบคอบในการตรวจสอบเสียส่วนใหญ่ สาเหตุแรกก็คือ…

1.) เนื้อหาในแอพฯ ไม่เหมาะสม
มาจากแอพฯ Pitbull Youtube Channel ที่บอกว่าเนื้อหาไม่เหมาะสมก็คือมันมี MV เซ็กซี่ๆอยู่เพียบเลย ตอน Submit ไม่ได้คิดถึงตรงนี เลยเลือกให้มัน Distribute to all available markets at the base price tier (เข้าใจว่าให้มันเผยแพร่ไปทุกหนทุกแห่งที่มี Margetplace) ทีนี้มันมีบางประเทศที่ไม่ยอมรับเนื้อหาแบบนี้ ก็เลยโดนตีกลับมาซะงั้น

  • วิธีแก้
    ต้องเลือกเป็น Distribute to all markets except those with stricter content rules นั่นคือเราจะยกเว้นการเผยแพร่ในประเทศที่เคร่งเรื่องข้อห้ามต่างๆ แล้ว Submit อีกที

 

2.) ไม่ว่าจะเกิดข้อผิดพลาดอะไรก็ตาม ห้ามเด้งผู้ใช้ออกมาหน้าจอหลักโดยไม่บอกกล่าว
อันนี้เกิดจากแอพฯ New York Weather เป็นแอพฯพยากรณ์อากาศที่มีการดึงข้อมูลผ่านอินเทอร์เน็ต ตอนทดสอบกับ emulator ก็ผ่านฉลุย แต่พอส่งไปขึ้นเขียงก็โดนสับมาเละเลย เขาบอกว่าแอพฯเราปิดตัวเองเมื่อเกิดปัญหา (เด้งผู้ใช้ออกมาหน้าจอหลักเฉยเลย – -“) และปัญหาที่ว่าเกิดจากผู้ใช้ไม่ต่ออินเทอร์เน็ตนั่นเอง

  • วิธีแก้
    • ก่อนอื่นจัดการไม่ให้แอพฯปิดตัวเอง ด้วย Error Handling (หรือ Exception Handling) เป็นการคงการทำงานของแอพฯไว้ ไม่ว่าจะเกิดข้อผิดพลาดอะไรขึ้น จะเป็นการ set ค่า อะไรประมาณ
      e.Handled = true;
    • จากนั้นทำ Error Reporting คือการแจ้งผู้ใช้ว่าเกิดปัญหาอะไรขึ้น สำหรับปัญหานี้ใช้ฟังก์ชั่นตรวจสอบว่าผู้ใช้ต่ออินเทอร์เน็ตอยู่รึเปล่า ถ้าไม่ได้เชื่อมต่ออยู่ก็จะแสดงข้อความแจ้ง ดังตัวอย่างด้านล่าง
      if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() == false)
      {
      MessageBox.Show(“ข้อความแจ้งผู้ใช้”);
      }
      อ้อ! ฟังก์ชั่นนี้ทดสอบกับ emulator ไม่ได้ผลนะคะ ฉะนั้นจะลองปิดเน็ตแล้วเทสดูมันก็ไม่แจ้งอะไร เพราะค่ามันเป็น true เสมอ! แต่ในการใช้งานจริงๆ ค่ามันก็จะออกมาตามจริง ถ้าไม่ได้ต่อเน็ตก็จะเป็น false ฉะนั้นก็ดักมันไว้อย่างงี้แหละ

 

3.) ตรวจสอบภาพ Screenshots ให้ดี ห้ามแต่ง ห้ามมีสิ่งแปลกปลอมเพิ่มเข้ามา
ข้อผิดพลาดนี้เกิดจากความสะเพร่าแท้ๆ ดันไปแคปฯรูปตอนเทสในโหมด Debug ซึ่งในโหมดนี้เนี่ย จะมีแถบอะไรไม่ทราบเหมือนกัน แสดงขึ้นตรงด้านข้างหน้าจอ แล้วมันก็ดันติดไปใน Screenshots ในหน้ารายละเอียดของแอพฯซะงั้น

  • วิธีแก้
    ให้ run แบบ without debugging แล้วค่อยแคปฯสกรีนช็อต จะได้ไม่มีสิ่งแปลกปลอมติดเข้ามานะจ๊ะ

 

ยาวเหยียดเลยแฮะ นี่ขนาดแค่ 3 สาเหตุ…

.

หวังว่าจะพอเป็นประโยชน์ให้กับนักพัฒนาแอพฯมือใหม่ ให้กลับไปตรวจเช็คแอพฯตัวเองให้ดี จะได้ไม่ต้องโดนตีกลับให้เสียเวลา โดยเฉพาะปัญหาที่เกิดจาก User Error เป็นเรื่องสำคัญ ลองสมมติตัวเองเป็นผู้ใช้ที่โง่ที่สุดในโลก ใช้แอพฯในวิธีที่โง่ที่สุดเท่าที่จะนึกออก ดูว่ามันจะเกิดอะไรขึ้นบ้าง? แล้วคุณจะทำให้ผู้ใช้ที่โง่ที่สุดมาเข้าใจการทำงานของแอพฯเราได้รึเปล่า

.

สำหรับโพสนี้ก็จบแล้ว เอาไว้ถ้าเจอปัญหาอื่นจะมาเขียนต่อ ภาค2
บายจ้าาาาาา

 

Leave a Reply

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