วิธีตั้งค่าและใช้ Fastlane กับ GitHub Actions เพื่ออัตโนมัติการปล่อยแอป Android iOS อย่างปลอดภัย

ที่มาภาพ: 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 ActionsBitriseCircleCI
ค่าใช้จ่ายฟรี (GitHub) + ฟรี (Fastlane)มีแผนฟรีจำกัดแผนฟรี 2500 นาที/เดือน
รองรับ iOS/macOSใช่ (macos‑latest runner)ใช่ไม่ (ต้อง self‑host)
การจัดการ Signingmatch อัตโนมัติผ่าน UIต้องตั้งค่าเอง
ความยืดหยุ่นสคริปต์Ruby DSL + BashVisual workflowsYAML 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

Related

บทความที่เกี่ยวข้อง

วิธีตั้งค่า Cloudflare Workers‑KV เพื่อจัดเก็บข้อมูลแบบ Edge อย่างปลอดภัยGrowth
9 สิงหาคม 2569 เวลา 20:30

วิธีตั้งค่า Cloudflare Workers‑KV เพื่อจัดเก็บข้อมูลแบบ Edge อย่างปลอดภัย

Cloudflare Workers‑KV เป็นฐานข้อมูลแบบ key‑value ที่ทำงานบนเครือข่าย Edge ของ Cloudflare ทำให้ข้อมูลสามารถเข้าถึงได้จากจุดใกล้ผู้ใช้ที่สุด ลด latency อย่างมีประสิทธิภาพ การตั้งค่า KV ให้ปลอดภัยเป็นขั้…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ8 นาที
วิธีตั้งค่าและใช้งาน Elastic SIEM ร่วมกับ Machine Learning เพื่อตรวจจับภัยคุกคามแบบเรียลไทม์บน LinuxGrowth
9 สิงหาคม 2569 เวลา 19:00

วิธีตั้งค่าและใช้งาน Elastic SIEM ร่วมกับ Machine Learning เพื่อตรวจจับภัยคุกคามแบบเรียลไทม์บน Linux

Elastic SIEM เป็นส่วนหนึ่งของ Elastic Stack ที่ช่วยรวบรวม วิเคราะห์ และแสดงผลข้อมูลล็อกจากหลายแหล่งบน Linux พร้อมความสามารถ Machine Learning (ML) ในการตรวจจับพฤติกรรมที่ผิดปกติแบบเรียลไทม์ บทความนี้จะ…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ8 นาที
วิธีติดตั้งและกำหนดค่า Trivy สแกนคอนเทนเนอร์อิมเมจใน GitHub Actions อย่างปลอดภัยGrowth
9 สิงหาคม 2569 เวลา 11:30

วิธีติดตั้งและกำหนดค่า Trivy สแกนคอนเทนเนอร์อิมเมจใน GitHub Actions อย่างปลอดภัย

การสแกนคอนเทนเนอร์อิมเมจในขั้นตอน CI/CD ช่วยให้เจอช่องโหว่ก่อนที่ซอฟต์แวร์จะไหลเข้าสู่ production Trivy เป็นเครื่องมือสแกนแบบโอเพ่นซอร์สที่ทำงานเร็วและรองรับหลายรูปแบบของ image registry. ในบทความนี้เร…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ6 นาที
วิธียก OPA (Open Policy Agent) ไปทำ policy‑as‑code กับ GitHub Actions เพื่อตรวจสอบความสอดคล้องของ Terraform Plan อย่างอัตโนมัติและปลอดภัยGrowth
8 สิงหาคม 2569 เวลา 20:30

วิธียก OPA (Open Policy Agent) ไปทำ policy‑as‑code กับ GitHub Actions เพื่อตรวจสอบความสอดคล้องของ Terraform Plan อย่างอัตโนมัติและปลอดภัย

การทำ *policy‑as‑code* ด้วย OPA (Open Policy Agent) ช่วยให้ทีม DevOps ตรวจสอบความสอดคล้องของโครงสร้างพื้นฐานได้โดยอัตโนมัติในขั้นตอน CI/CD ของ GitHub Actions. บทความนี้จะอธิบายวิธีตั้งค่า OPA ให้ตรวจส…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ8 นาที
คัดลอกลิงก์แล้ว!