[iOS]สร้างหน้า Acknowledgements สำหรับ Third-party library ใน iOS Application

เคยไหมครับ ที่กำลังเล่นแอพต่างๆอยู่ดีๆ ก็เปิดไปเจอหน้าที่เขียนว่า Third-party notices / acknowledgements พร้อมกับรายละเอียด open-source library ที่แอพเหล่านั้นใช้

คุ้นๆกันมั้ยเอ่ย?

ซึ่ง License บางประเภทเช่น MIT License เราสามารถนำไปใช้, แก้ไข, แจกจ่าย หรือขายก็ได้ เพียงแค่ต้องระบุ MIT License ลงไปในผลงานของเราด้วย ซึ่งในประเด็นของข้อกฎหมาย หรือเรื่องของ Open Source นั้น ผมยังไม่เข้าใจรายละเอียดมากซักเท่าไหร่ เอาเป็นว่าเราจะข้ามมันไปก่อนนะครับ 5555

ในฐานะ Mobile Developer ทุกวันนี้ ก็บอกได้เลยว่าส่วนใหญ่น่าจะใช้กันนะครับ แต่จะมีซักกี่แอพใน Appstore ที่มีการ Notice ถึง Library เหล่านี้บ้าง ดังนั้น ผมเลยอยากจะมาเสนอวิธีง่ายๆ ในการทำหน้าเหล่านี้

โดยบทความนี้จะแบ่งเป็นสองส่วนนะครับ

  • การ generate licenses ด้วย Cocoapods
  • การทำหน้า Acknowledgements ใน Setting

มาเริ่มกันเถอะ!

ตามชื่อเลยครับ ขอแสดงความเสียใจด้วย ผู้ใช้ Carthage และ Swift Package Manager..คุณไม่ได้ไปต่อ แต่อ่านไว้เพลินๆก็ได้ครับ 555

โดยปกติแล้วหลังจากที่เราสั่ง pod install แล้ว Cocoapods จะทำการรวบรวม license ของ library ต่างๆระหว่างที่ดึงมาจาก repo และทำการเก็บไว้ใน pods ของโปรเจคเราครับ โดยที่เราไม่ต้องใช้คำสั่งอะไรเพิ่มเลย

โดยผมจะลองสร้างโปรเจคขึ้นมาอันนึง แล้วทำการเพิ่ม library ต่างๆด้วย Cocoapods นะครับ

สมมติว่าผมใช้ 3 ตัว

หลังจากที่ pod install แล้ว เราจะได้ .xcworkspace และ โฟลเดอร์ของ Pods มาตามปกตินะครับ ให้เราเข้าไปใน Directory

{Working Directory}/Pods/Target Support Files/

จะเห็นโฟลดอร์นึง ชื่อ Pods-XXXX โดยที่ XXXX คือชื่อ Target ใน Xcode นั่นเองครับ พอเข้าไปข้างใน จะมีเจอไฟล์อยู่หลายไฟล์ แต่เราจะสนใจแค่

Pods-XXXX-acknowledgements.markdown

และ Pods-XXXX-acknowledgements.plist ครับ

โดยทาง Cocoapods เค้าทำไว้ให้สองไฟล์ เผื่อใครสะดวกนำไปใช้แบบไหนแล้วแต่สะดวกเลยครับ จะนำ markdown ไปใส่ใน ViewController ในแอปก็ได้ครับ หรือจะนำ plist ไปใช้ใน Setting ก็ได้

ทั้งสองไฟล์ก็ประมาณนี้ครับ

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

เหมือนอย่างแอป iA Writer ครับ

เริ่มกันเลยดีกว่า!

ให้ทำการสร้างไฟล์ใหม่ในโปรเจคเราครับ โดยเลือกชนิดไฟล์เป็น Settings Bundle ที่อยู่ในหมวด Resource

โดยเราจะได้ไฟล์ Settings.bundle มาตามนี้ครับ

เมื่อลองรันแอพดู ก็จะมี section เพิ่มขึ้นมาในแอพของเราใน Settings

ไฟล์ Root.plist (ซ้าย) vs Settings ของแอพเรา (ขวา)

จากน้ันให้นำไฟล์ Pods-XXXX-acknowledgements.plist ที่เราได้มาจากวิธีข้างบน ลากมาใส่ใน Settings.bundle ของเราครับ แล้วทำการเปลี่ยนชื่อให้พิมพ์ง่ายๆ

แล้วทำการแก้ไขไฟล์ Root.plist ครับโดยเราจะลบ Item ใน Preferences Item ออกให้หมด แล้วเพิ่ม Item ใหม่หนึ่งอัน พร้อมกับเลือกชนิดเป็น Child Pane ระบุชื่อ และ ชื่อไฟล์ plist ซะก็เรียบร้อยครับ

ได้ Acknowledgements มาอยู่ใน Settings แล้วว

ถามว่า วีธีนี้นำไปประยุกต์กับอะไรได้บ้าง

  • ใส่ Version ของ app ใน Settings ก้ได้ครับ
  • Legal Notices
  • Privacy Policy
  • Term and Conditions
  • Version History + Changes list (คงไม่มีใครใส่หรอกเนอะ 555)

หรือจะนำไปโชว์ในแอพเลยก็ได้เช่นกันครับ ขึ้นอยู่กับเราเลย (และหัวหน้าของเรา)

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

Android & iOS developer. Interest in UI/UX design. Software Engineering Student, KMITL. Currently, Mobile UI Developer at Agoda

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store