ไม่ใช้ fastlane อย่าเรียกตัวเองว่า iOS Developer
ให้เรียกว่า iOS Engineer แทน #ผิดแล้ว~ ใช่ที่ไหนกันเล่า!!
อารัมภบท
https://fastlane.tools/ เป็นเครื่องมือที่มีมาตั้งแต่สมัยกรุงสุโขทัย (ใช่ที่ไหนกันเล่า!) ทำให้นักพัฒนา iOS อยู่กันอย่างสงบสุขเรื่อยมา
ก่อนจะใช้ fastlane เนื่องจาก fastlane เขียนด้วย ruby และสามารถติดตั้งผ่าน gem ได้ เพราะฉะนั้นถ้าใครจะใช้ gem แล้วยังไม่รู้จัก rvm หรือ rbenv ให้ไปอ่าน เราไม่ควรใช้ “sudo gem” https://medium.com/odds-team/e1c37a0a02e4 ก่อน
จริง ๆ แล้ว fastlane ใช้กับ Android ได้ด้วย แต่มี feature ไม่เท่าใช้กับ iOS ในบทความนี้จะพูดถึงการใช้ fastlane กับ iOS เท่านั้น เพราะฉะนั้น macOS ก็ไม่เกี่ยว
ทำอะไรได้บ้าง
เอาที่มันโฆษณาได้ข้างหน้าเว็บมันก่อนเลยนะ
- Capture screenshots automatically ได้อย่างอัตโนัมติ (แน่นอน หลักจากเรา code ให้มัน capture ได้เรียบร้อยแล้ว 555) ซึ่งสามารถ capture แยกตามละ localization ด้วย (แต่งานในไทยไม่ค่อยมีใช้ใคร localization ที่มากับ iOS เลยทั้งที่มัน powerful มาก ๆ)
- Distribute beta builds ปล่อยตัวเบต้าไม่ว่าจะผ่าน Crashlytics beta (ซึ่งอนาคตจะถูกย้ายไป Firebase ละ) (Google), HockeyApp (Microsoft), TestFlight (Apple), และตัวอื่น ๆ ไปดูเพิ่มที่ https://docs.fastlane.tools/actions/#beta
- Publish your app with the push of a button เอา App ขึ้น Store ก็ง่าย ไม่ปวดหัวกับ Error ที่อ่านไม่ออก เพราะ fastlane แปลมาให้เป็นภาษาคนหมดแล้ว
- Automatic code signing for iOS ปัญหานี้ปวดหัวมากสำหรับชาว iOS สำหรับคนที่ต้องเอาขึ้น AppStore fastlane ก็สามารถทำได้ ตั้งแต่สร้าง Development Certificate, Distribute Certificate, Provisioning Profile ตัว fastlane ก็สามารถทำให้ได้แค่ปลายนิ้วสัมผัส ไม่ก็หันไปบอกให้น้องในทีมจัดการให้หน่อยก็ไม่ยากเหมือนกัน (ใช่ที่ไหนกันเล่า!)
ทั้งนี้ ๆ ถ้าคุณใช้ CI ตัวไหนอยู่ก็ตามก็สามารถเอา fastlane มาแปะได้เลย ไม่ว่าจะเป็น Jenkins, TravisCI, CircleCI, Bitrise ก็สามารถใช้ได้หมดเลย
ติดตั้งยังไง
ก่อนลงต้องรันคำสั่ง xcode-select install
ก่อนนะครับ บางครั้งมันหา xcode ไม่เจอก็รัน xcode-select -s <PATH ของ XCODE>
เช่น xcode-select -s /Application/Xcode.app
- ถ้าใครใช้แมคอยู่แล้วก็สามารถลงผ่าน
brew
ก็ได้ด้วยคำสั่งbrew cask install fastlane
ก่อนสั่ง install อย่างลืมbrew update
ก่อนนะครับ - ถ้าใครใช้
bundle
ก็เอาไปใส่ไว้ในGemfile
มีเขียนถึงไว้นิดหน่อยใน อย่าใช้ “sudo gem” https://medium.com/odds-team/e1c37a0a02e4
source "https://rubygems.org"gem "fastlane"
ไว้ได้ประมาณนี้
ถ้าใครไม่ติดเรื่องภาษาอังกฤษ กระโดดไปดูได้เลยที่ https://docs.fastlane.tools/getting-started/ios/setup/
หลังจากติดตั้งเสร็จแล้ว
ใน bash ของเราควรตั้งค่าตามนี้ด้วย
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
เพราะว่า fastlane ใช้ UTF-8 ครับ
ถ้าใครที่ขี้เกียจพิมพ์คำสั่งนี้ทุกครั้งให้เอาไปใส่ไว้ใน shell profile ของเราขึ้นอยู่กับว่าใช้ shell ตัวไหน ซึ่งไฟล์ก็จะชื่อประมาณนี้ ~/.bashrc
, ~/.bash_profile
, ~/.profile
หรือ ~/.zshrc
จะใช้งานครั้งแรก
ให้เปิด shell แล้วเข้าที่ path ของโปรเจค iOS ของเราแล้วพิมพ์ว่า fastlane init
แล้วเลือกตัวช่วยการตั้งค่าตามต้องการ ใครยังไม่รู้จะเลือกอะไรให้เลือก manual
ไปนะครับ แล้วเราจะได้ Appfile
กับ Fastfile
มา
ซึ่ง Appfile
จะเก็บค่าปริยายของโปรเจค (Default Setting File) อ่านเพิ่มได้ที่ https://docs.fastlane.tools/advanced/#appfile
และ Fastfile
จะเป็นตัว เก็บชุดคำสั่งที่เราได้เขียนไว้ก่อนหน้าแล้ว
ส่วนถ้าใครไม่ชอบ fastlane แบบ ruby ๆ ก็สามารถเขียนมันแบบ swift ได้ด้วยการใช้คำสั่ง fastlane init swift
ได้
.gitignore
แน่นอน fastlane สามารถ generate ของบางอย่างออกมาได้เช่นผลการทดสอบ ซึ่งเราสามารถใส่ไว้ใน .gitignore
ไว้ได้ดังนี้
# fastlane specific
fastlane/report.xml
# deliver temporary files
fastlane/Preview.html
# snapshot generated screenshots
fastlane/screenshots/**/*.png
fastlane/screenshots/screenshots.html
# scan temporary files
fastlane/test_output
ซึ่งก็เอามาจาก gitignore.io หนะแหละ ใครไม่รู้จัก gitignore ให้ไปอ่าน “.gitignore ความสามารถของ git และการใช้งานอย่างง่าย” https://medium.com/odds-team/a77d1677a9d3 ก่อนนะครับ
วันนี้พอแค่นี้
ตอนนี้ผมเชื่อว่าทุกคนที่อ่านจะอยู่ใน state ของ acknowledge แล้ว ว่ามี tools ที่ชื่อว่า fastlane อยู่ พอรู้ว่าทำอะไรได้บ้าง ติดตั้งยังไง แต่ยังไม่รู้ว่าใช้งานยังไงซึ่งจะมาเล่าในบลอคถัด ๆ ไปครับ