
ที่มาภาพ: Unknown Source
วิธีตั้งค่าและใช้ Fastlane กับ GitHub Actions เพื่ออัตโนมัติการปล่อยแอป Android iOS อย่างปลอดภัย
⚡ สรุป 30 วิ
Fastlane เป็นเครื่องมือที่ช่วยอัตโนมัติขั้นตอนการสร้างและปล่อยแอป iOS/Android ได้อย่างครบวงจร การผสานกับ GitHub Actions ทำให้กระบวนการ CI/CD สามารถทำงานบนคลาวด์โดยไม่ต้องจัดการเซิร์ฟเวอร์เอง บทความนี้…
ภาพรวม — Overview
Fastlane เป็นเครื่องมือที่ช่วยอัตโนมัติขั้นตอนการสร้างและปล่อยแอป iOS/Android ได้อย่างครบวงจร การผสานกับ GitHub Actions ทำให้กระบวนการ CI/CD สามารถทำงานบนคลาวด์โดยไม่ต้องจัดการเซิร์ฟเวอร์เอง บทความนี้จะพาคุณตั้งค่า Fastlane และ GitHub Actions เพื่อปล่อยแอปแบบปลอดภัยและเชื่อถือได้
- Fastlane จัดการขั้นตอนต่าง ๆ เช่น signing, build, upload ไปยัง Store
- GitHub Actions ทำให้เราสามารถรันสคริปต์ Fastlane ได้ทุกครั้งที่โค้ดเปลี่ยนแปลง
- การใช้ Secrets ของ GitHub ช่วยเก็บข้อมูลสำคัญอย่าง keystore หรือ API keys อย่างปลอดภัย
ความต้องการเบื้องต้น — Prerequisites
ก่อนเริ่มใช้งานคุณต้องเตรียมเครื่องมือและบัญชีที่เกี่ยวข้องให้พร้อม ทั้งนี้เพื่อหลีกเลี่ยงปัญหาในขั้นตอนต่อไป
- มี GitHub repository ที่เก็บโค้ด Android/iOS ของแอป
- ติดตั้ง Ruby, Bundler, และ Fastlane บนเครื่องพัฒนา (หรือใช้ Docker)
- สมัครบัญชี Google Play Console และ Apple Developer Program พร้อมรับ API credentials
ควรตรวจสอบว่าเวอร์ชันของ Fastlane รองรับ Xcode/Android Gradle ปัจจุบัน เพื่อป้องกันการเกิด error ระหว่าง build
ติดตั้งและกำหนดค่า Fastlane — Setup Fastlane
การตั้งค่า Fastlane เริ่มจากการสร้างไฟล์ `Fastfile` ที่บรรจุ lane ต่าง ๆ สำหรับ Android และ iOS
- เปิดเทอร์มินัลที่โฟลเดอร์โปรเจค แล้วรัน `fastlane init` เลือกประเภท “Android” หรือ “iOS” ตามต้องการ
- แก้ไขไฟล์ `Fastfile` เพิ่ม lane ที่จำเป็น เช่น `beta`, `release` และกำหนดค่า signing
``` lane :android_release do gradle(task: "assembleRelease") upload_to_play_store(track: "production") end
lane :ios_release do match(type: "appstore") # จัดการ signing ด้วย match gym(scheme: "MyApp") # สร้าง .ipa pilot(skip_waiting_for_build_processing: true) # ส่งไป TestFlight end ```
- สร้างไฟล์ `Gemfile` เพื่อบังคับเวอร์ชันของ Fastlane และทำการ bundle install
การจัดเก็บ Secrets บน GitHub — Secure Secrets
ข้อมูลสำคัญเช่น keystore password, Google service account JSON หรือ Apple API key ต้องไม่อยู่ในโค้ด
- ไปที่หน้า Repository Settings Secrets and variables Actions New repository secret
- เพิ่มค่า `ANDROID_KEYSTORE_PASSWORD`, `GOOGLE_PLAY_JSON`, `APP_STORE_CONNECT_API_KEY` เป็นต้น
อย่าใช้คำอธิบายยาว ๆ ในชื่อ Secret เพียงแค่สั้นและชัดเจนเพื่อให้จำง่าย
กำหนด Workflow ของ GitHub Actions — Configure GitHub Actions
สร้างไฟล์ workflow ที่อยู่ใน `.github/workflows/ci.yml` เพื่อเรียกใช้ Fastlane
- ระบุ trigger เช่น `push` หรือ `pull_request` บน branch `main` หรือ `release/*`
- ตั้งค่า environment ให้ใช้ Ruby, Bundler, และ Java (สำหรับ Android)
```yaml name: CI/CD
on: push: branches: [ main ]
jobs: build_android: runs-on: ubuntu-latest steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1 with: ruby-version: '3.2'
- name: Install dependencies
run: | bundle install
- name: Build and release Android
env: ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} GOOGLE_PLAY_JSON: ${{ secrets.GOOGLE_PLAY_JSON }} run: bundle exec fastlane android_release ```
- เพิ่ม job สำหรับ iOS ด้วย `runs-on: macos-latest` เพื่อให้เข้าถึง Xcode
ขั้นตอนอัตโนมัติสำหรับ Android — Android Build & Deploy
เมื่อ workflow ถูก trigger ระบบจะทำตาม lane ที่กำหนดใน Fastfile
- ตรวจสอบว่า keystore อยู่ในโฟลเดอร์ `android/app/keystore` และตั้งค่า path ใน `gradle.properties`
- Fastlane จะใช้ `upload_to_play_store` เพื่ออัปโหลดไฟล์ `.aab` หรือ `.apk` ไปยัง Google Play ตาม track ที่ระบุ
ขั้นตอนอัตโนมัติสำหรับ iOS — iOS Build & Deploy
การสร้างและปล่อย iOS ต้องทำบน macOS เนื่องจากต้องใช้ Xcode และ tools ของ Apple
- ใช้ `match` เพื่อดึงใบรับรอง (certificate) จากเก็บข้อมูลที่กำหนด (เช่น Git repo หรือ S3)
- `gym` ทำหน้าที่ compile โปรเจคเป็น `.ipa` แล้วส่งต่อให้ `pilot` ส่งไปยัง TestFlight หรือ App Store Connect
เปรียบเทียบเครื่องมือ CI/CD — Tool Comparison
| คุณสมบัติ | Fastlane + GitHub Actions | Bitrise | CircleCI |
|---|---|---|---|
| ค่าใช้จ่าย | ฟรี (GitHub) + ฟรี (Fastlane) | มีแผนฟรีจำกัด | แผนฟรี 2500 นาที/เดือน |
| รองรับ iOS/macOS | ใช่ (macos‑latest runner) | ใช่ | ไม่ (ต้อง self‑host) |
| การจัดการ Signing | match อัตโนมัติ | ผ่าน UI | ต้องตั้งค่าเอง |
| ความยืดหยุ่นสคริปต์ | Ruby DSL + Bash | Visual workflows | YAML scripts |
เคล็ดลับและข้อควรระวัง — Tips & Cautions
**Tip: ใช้ `bundle exec fastlane` เสมอเพื่อให้แน่ใจว่าใช้เวอร์ชัน Fastlane ที่กำหนดใน `Gemfile.lock`
>
**Caution: อย่าเปิดเผยไฟล์ keystore หรือ API keys ใน log ของ GitHub Actions; ควรตั้งค่า `mask-secrets: true` เพื่อลบข้อมูลออกจาก output
- เก็บ `Google Play JSON` เป็นไฟล์ base64 แล้ว decode ภายใน workflow เพื่อป้องกันการอ่านโดยตรง
- ตรวจสอบว่าเวอร์ชันของ Xcode ใน runner ตรงกับที่ใช้พัฒนาในเครื่องมือ CI/CD
- ตั้งค่า branch protection rules ให้ต้องผ่าน workflow ก่อน merge เพื่อลดโอกาสปล่อยแอปผิดเวอร์ชัน
สรุป — Summary
การผสาน Fastlane กับ GitHub Actions ทำให้กระบวนการปล่อยแอป Android/iOS เป็นอัตโนมัติ ปลอดภัย และตรวจสอบได้ง่าย เพียงทำตามขั้นตอนตั้งค่า Secrets, กำหนด lane ใน Fastfile, แล้วสร้าง workflow บน GitHub Actions
- Fastlane จัดการขั้นตอน build, signing, upload อย่างครบวงจร
- GitHub Actions ให้สภาพแวดล้อม CI/CD ที่ปรับขนาดได้และเก็บ Secrets อย่างปลอดภัย
- ตรวจสอบ version compatibility และปกป้องข้อมูลสำคัญด้วย Secrets masking
ทำตามแนวทางนี้ คุณจะมั่นใจได้ว่าแอปของคุณจะถูกส่งออกสู่ Store อย่างต่อเนื่องโดยไม่มีข้อผิดพลาดที่ไม่คาดคิด.
แชร์บทความนี้:
ชอบบทความแบบนี้?
สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม
แหล่งข่าวต้นฉบับ
- ชื่อต้นฉบับ
- วิธีตั้งค่าและใช้ Fastlane กับ GitHub Actions เพื่ออัตโนมัติการปล่อยแอป Android iOS อย่างปลอดภัย
- ผู้เขียน
- กองบรรณาธิการ Thai Tech News
- แหล่ง
- บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
- วันที่เผยแพร่
- 9 สิงหาคม 2569 เวลา 19:51



