# สร้างแอปด้วย Claude Code: สอนทำแอป iPhone ทีละขั้น

> ติดตั้ง Claude Code สร้างโปรเจกต์ Expo เขียน CLAUDE.md สั่งงานทีละหน้าจอ แล้วส่งขึ้น TestFlight ด้วย EAS: บทสอนฉบับเต็ม

หน้าต้นฉบับ: [สร้างแอปด้วย Claude Code: สอนทำแอป iPhone ทีละขั้น](https://devoria.fr/th/blog/create-app-with-claude-code-iphone-tutorial)
ผู้เขียน: [Mehdi Azizi](https://devoria.fr/th/mehdi-azizi)
เผยแพร่: 2026-09-23
แก้ไขเนื้อหาล่าสุด: 2026-10-09


## สร้างแอปด้วย Claude Code: คำตอบแบบสั้น

ถ้าจะสร้างแอปด้วย Claude Code คุณต้องมีสิทธิ์ใช้ Claude Code แบบเสียเงิน (แพ็กเกจสมาชิกที่รองรับ หรือ Console แบบจ่ายตามการใช้งาน), Node.js, iPhone ที่ติดตั้ง Expo Go และโปรเจกต์ Expo คุณเขียนไฟล์ `CLAUDE.md` ที่อธิบาย stack และกฎของคุณ สั่งงานทีละหน้าจอ ทดสอบแต่ละหน้าจอบน iPhone แล้วส่งแอปขึ้น TestFlight ด้วย EAS

บทสอนนี้เป็นภาคต่อของคู่มือ [สร้างแอป iOS ด้วย AI](https://devoria.fr/th/blog/build-ios-app-with-ai-pitfalls-checks) ที่อธิบายว่า AI ทำอะไรได้ดีและพลาดตรงไหน ส่วนตรงนี้เราจะลงมือจริง: คำสั่ง ไฟล์ และ prompt

ผมเขียนแอป iOS ด้วย Claude Code และ Cursor ทุกวัน stack ของผมคือ React Native, Expo, EAS, RevenueCat และ Supabase แอป Solys ซึ่งเป็นนาฬิกาปลุกที่มีมินิเกม และ TradaZen แอปฝึกเทรด เผยแพร่บน App Store แล้ว ส่วน Nolera และ Clic เคยถูก Apple ปฏิเสธ แล้วผมก็แก้จนผ่าน ทุกอย่างด้านล่างมาจากงานจริงเหล่านี้

ถ้าอยากเห็นวิธีนี้ใช้กับแอปที่เผยแพร่จริง ผมบันทึก [เส้นทางของ TradaZen ตั้งแต่ commit แรกจนถึงการถูก Apple ปฏิเสธและการเปลี่ยนทิศทาง](https://devoria.fr/th/blog/tradazen-case-study-launch-iphone-app) ไว้แล้ว ประสบการณ์นี้ช่วยเสริมขั้นตอนในบทสอนได้ดี

## ขั้นที่ 1: เตรียมสิ่งที่ต้องมี

ก่อนพิมพ์คำสั่งแรก เช็กให้แน่ใจว่าคุณมีครบทุกอย่างนี้

### บัญชี Claude แบบเสียเงิน

Claude Code ไม่รวมอยู่ในแพ็กเกจฟรีของ claude.ai [ตามเอกสารของ Anthropic](https://code.claude.com/docs/en/setup) คุณต้องมีบัญชี Pro, Max, Team, Enterprise หรือ Console แพ็กเกจ Pro เพียงพอสำหรับเริ่มต้น ภายในขีดจำกัดการใช้งานของมัน

### Node.js และเทอร์มินัล

Expo ต้องใช้ [Node.js เวอร์ชัน LTS](https://docs.expo.dev/get-started/create-a-project/) บน macOS, Windows หรือ Linux ส่วน Claude Code รันได้บน macOS 13 ขึ้นไป, Windows 10 ขึ้นไป และ Linux distribution หลัก ๆ

### iPhone และ Expo Go

ติดตั้ง Expo Go จาก App Store บน iPhone เพื่อลองหน้าจอแรก ๆ โดยไม่ต้องคอมไพล์แอปของตัวเอง ก่อนสร้างโปรเจกต์ [เช็กเวอร์ชัน SDK ที่ใช้ได้กับเครื่องของคุณในหน้า Expo Go](https://expo.dev/go) SDK ล่าสุดกับเวอร์ชันที่เผยแพร่บน App Store ไม่ได้ออกพร้อมกันเสมอ Expo เคยบันทึก [ความคลาดเคลื่อนนี้ในเดือนพฤษภาคม 2026](https://expo.dev/changelog/expo-go-and-app-store-may-2026) ไว้ด้วย ดังนั้นอย่าเริ่มจากเลขเวอร์ชันที่เจอในบทสอนเก่า ถ้าจะใช้โมดูล native ของตัวเอง ให้เตรียมทำ development build

### ต้องมี Mac ไหม? ไม่จำเป็น

build ของ iOS ถูกคอมไพล์บนเซิร์ฟเวอร์ของ Expo ผ่าน EAS Build โดยใช้เวอร์ชัน Xcode ที่ SDK Expo ของคุณเลือก (ITMS-90725) และ [EAS Submit ทำงานได้บน macOS, Linux และ Windows](https://docs.expo.dev/submit/ios/) คุณจึงไปถึง TestFlight ได้จาก PC คู่มือ [เผยแพร่แอป iOS โดยไม่มี Mac](https://devoria.fr/th/blog/publish-ios-app-without-mac-expo-eas) อธิบายขั้นตอนนี้ไว้อย่างละเอียด

### บัญชี Apple Developer ไว้ทีหลัง

คุณยังไม่ต้องใช้มันตอนเขียนโค้ดและทดสอบใน Expo Go จาก App Store แต่จะจำเป็นตอนส่งแอปขึ้น TestFlight เราจะกลับมาพูดถึงในขั้นที่ 7

## ขั้นที่ 2: ติดตั้ง Claude Code

บน macOS, Linux หรือ WSL วิธีที่ Anthropic แนะนำคือตัวติดตั้งแบบ native:

```bash
curl -fsSL https://claude.ai/install.sh | bash
```

บน Windows ใน PowerShell:

```powershell
irm https://claude.ai/install.ps1 | iex
```

จากนั้นเช็กว่าติดตั้งสำเร็จ:

```bash
claude --version
```

ถ้าชอบใช้ npm คำสั่งคือ `npm install -g @anthropic-ai/claude-code` อย่าใส่ `sudo` ข้างหน้า เอกสารบอกไว้ชัดว่าไม่แนะนำ

ตอนรัน `claude` ครั้งแรก เบราว์เซอร์จะเปิดขึ้นให้คุณล็อกอินบัญชี หลังจากนั้นคุณพิมพ์เป็นภาษาไทยได้เลย Claude จะอ่านไฟล์ เสนอการแก้ไข และรันคำสั่ง โดยขออนุญาตคุณก่อน

## ขั้นที่ 3: สร้างโปรเจกต์ Expo

เข้าไปในโฟลเดอร์ที่คุณเก็บโปรเจกต์ แล้วรัน:

```bash
npx create-expo-app@latest my-app
cd my-app
npx expo start
```

ถ้าเครื่องมือให้เลือกระหว่างความเข้ากันได้กับ Expo Go จาก App Store กับ SDK ล่าสุด สำหรับแบบฝึกหัดนี้ให้เลือกความเข้ากันได้ ไม่ว่ากรณีไหน ก่อนไปต่อให้เช็กว่าเวอร์ชันที่สร้างขึ้นรองรับโดย Expo Go ที่ติดตั้งบน iPhone ของคุณ คุณค่อยเตรียม development build เมื่อโปรเจกต์ต้องใช้

QR code จะขึ้นในเทอร์มินัล สแกนด้วยกล้องของ iPhone แล้วแอปจะเปิดใน Expo Go มีรายละเอียดหนึ่งที่มักทำให้ติดในครั้งแรก: [Expo Go จะเปิดโปรเจกต์ของคุณได้ก็ต่อเมื่อ Expo CLI และ Expo Go ล็อกอินบัญชี Expo เดียวกัน](https://docs.expo.dev/get-started/start-developing/) รัน `npx expo login` บนคอมพิวเตอร์ แล้วล็อกอินบัญชีเดียวกันในแอป

ทำไมเลือก Expo แทน Swift? Claude รู้จัก React Native ดีมาก และคุณทดสอบได้โดยไม่ต้องมี Mac ผมอธิบายเหตุผลไว้ในหน้า [React Native และ Expo สำหรับแอปมือถือ](https://devoria.fr/th/expertise/react-native-expo-mobile-app)

จำข้อจำกัดของ Expo Go ไว้ข้อหนึ่ง: มันมีแค่โมดูล native ที่ติดมาในตัวเท่านั้น ทันทีที่คุณเพิ่มไลบรารี native ที่มันไม่รู้จัก เช่น การซื้อในแอป คุณจะต้องใช้ development build ซึ่งไม่ใช่ปัญหาสำหรับหน้าจอแรก ๆ

### เลือกสภาพแวดล้อมทดสอบให้ถูก

Expo Go, development build และ TestFlight พิสูจน์คนละเรื่องกัน [Expo อธิบาย development build](https://docs.expo.dev/develop/development-builds/introduction/) ว่าเป็นแอปทดสอบของคุณเอง ที่มีโมดูล native ที่โปรเจกต์ต้องใช้

| สิ่งที่คุณต้องการตรวจสอบ                      | ทดสอบที่ไหน                                            | ข้อจำกัดของการทดสอบ                               |
| --------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------- |
| แสดงหน้าจอแรกและลองการนำทาง                   | Expo Go ที่ใช้ SDK ที่เข้ากันได้                       | พฤติกรรมของโมดูล native ที่ไม่มีใน Expo Go        |
| ใช้ไลบรารี native ที่เพิ่มเข้ามาในโปรเจกต์    | development build ที่รวมไลบรารีนั้นไว้                 | ไม่บอกถึงเวอร์ชันที่เผยแพร่หรือการยอมรับของ Apple |
| ใช้งานแอปที่จะให้ผู้ทดสอบใช้ แล้วทดสอบการซื้อ | build ที่ส่งขึ้น TestFlight และสินค้าที่ตั้งค่าถูกต้อง | การจ่ายเงินจริงของลูกค้าหรือการอนุมัติให้วางขาย   |

ก่อนเพิ่ม dependency ใด ๆ ให้ถาม Claude ว่า "มันเข้ากันได้กับ SDK และสภาพแวดล้อมทดสอบปัจจุบันของผมไหม? ต้องคอมไพล์แอปใหม่หรือเปล่า? อ้างอิงคำตอบจากเอกสารด้วย" คุณจะไม่ต้องเสียทั้งคืนไปกับการแก้โมดูลที่ Expo Go โหลดไม่ได้อยู่แล้ว หรือ SDK ที่ถูกปฏิเสธตอนอัปโหลดเพราะ API ที่ไม่เปิดเผยต่อสาธารณะ

## ขั้นที่ 4: เขียนไฟล์ CLAUDE.md ของโปรเจกต์

นี่คือขั้นที่คุ้มที่สุด Claude Code เก็บความจำของโปรเจกต์ได้ แต่คุณต้องเขียนกฎให้ชัด ไฟล์ `CLAUDE.md` ที่วางไว้ที่ root ของโปรเจกต์ จะให้คำสั่งร่วมกันกับทุก session ตรงนี้คือที่ที่คุณเขียนสิ่งที่ Claude เดาเองไม่ได้

ในโฟลเดอร์โปรเจกต์ รัน `claude` แล้วพิมพ์ `/init` [ตามเอกสาร](https://code.claude.com/docs/en/memory) Claude จะวิเคราะห์โปรเจกต์และสร้าง `CLAUDE.md` ฉบับแรก พร้อมคำสั่งและ convention ที่มันเจอ จากนั้นคุณเติมกฎของคุณเข้าไป Anthropic แนะนำให้ไม่เกิน 200 บรรทัด ยิ่งไฟล์ยาว คำสั่งก็ยิ่งถูกทำตามน้อยลง

นี่คือตัวอย่างสั้น ๆ ที่ใกล้เคียงกับที่ผมใช้:

```markdown
# แอปของฉัน

## Stack

- Expo (SDK จาก create-expo-app), React Native, TypeScript strict
- การนำทาง: Expo Router หนึ่งไฟล์ต่อหนึ่งหน้าจอใน app/
- ข้อมูล: Supabase (ภายหลัง) ห้ามมี secret key ในแอปเด็ดขาด

## กฎ

- ทีละหน้าจอ ห้ามแตะไฟล์นอกเหนือจากที่ขอ
- ห้ามกำหนดความสูงตายตัวเป็น point: ใช้ขนาดสัมพันธ์กับหน้าจอ
  ใช้ ScrollView ถ้าเนื้อหาอาจล้น
- ทุกหน้าจอต้องจัดการ 3 สถานะ: กำลังโหลด ว่างเปล่า และข้อผิดพลาด
- ข้อความในอินเทอร์เฟซเป็นภาษาไทยที่สะกดถูกต้อง
- ก่อนเขียนโค้ดเกิน 2 ไฟล์: เสนอแผนและรอให้ฉันอนุมัติ

## คำสั่ง

- รัน: npx expo start
- เทสต์: ใช้สคริปต์ที่มีอยู่จริงใน package.json
  ถ้ายังไม่มี ให้แจ้ง ห้ามบอกว่าเทสต์ผ่าน
- Types: npx tsc --noEmit
- หลังแก้ไขทุกครั้ง: รันเทสต์และ types แล้วบอกฉันว่า
  อะไรเปลี่ยนไป และตรวจสอบบน iPhone อย่างไร
```

กฎเรื่องความสูงตายตัวไม่ได้มาโดยบังเอิญ เราจะกลับมาพูดถึงในขั้นที่ 6

## ขั้นที่ 5: สั่งงานทีละหน้าจอ

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

### เริ่มจากแผน

งานไหนที่แตะหลายไฟล์ ให้เข้า plan mode กด `Shift+Tab` จนเห็น `plan mode on` ในแถบสถานะ [ในโหมดนี้](https://code.claude.com/docs/en/common-workflows) Claude จะอ่านไฟล์และเสนอแผน แต่จะไม่แก้อะไรจนกว่าคุณจะอนุมัติ คุณอ่านทวน แก้ไข แล้วค่อยยืนยัน

prompt แรกเพื่อวางกรอบจะหน้าตาประมาณนี้:

```text
ฉันอยากได้แอปติดตามนิสัย เวอร์ชัน 1: มีฟังก์ชันเดียว
คือติ๊กนิสัยของวันนี้ เสนอรายการหน้าจอและ
โครงสร้างโฟลเดอร์ ยังไม่ต้องเขียนโค้ด
```

### อธิบายหน้าจอ สถานะ และขอบเขต

ต่อไปใช้หนึ่ง prompt ต่อหนึ่งหน้าจอ ยิ่งคุณระบุกรณีขอบ (edge case) มาก Claude ก็ยิ่งลืมน้อย:

```text
สร้างหน้าจอ app/index.tsx ที่แสดงรายการนิสัยของวันนี้
- แต่ละแถว: ชื่อนิสัย ช่องติ๊ก และจำนวนวันต่อเนื่อง
- สถานะว่าง: ข้อความและปุ่ม "เพิ่มนิสัย"
- สถานะกำลังโหลด และสถานะข้อผิดพลาดพร้อมปุ่ม "ลองอีกครั้ง"
- ตอนนี้ข้อมูลมาจาก array ในเครื่องก่อน
- ต้องแ��ดงได้ทั้งบน iPhone SE และ iPhone รุ่นใหญ่ที่สุด:
  ห้ามใช้ความสูงตายตัว รายการต้องเลื่อนได้
รันเทสต์และ types ตอนจบ
```

### แก้โดยไม่ปล่อยให้เขียนใหม่ทั้งหมด

เมื่อมีรายละเอียดไม่ถูกต้อง ให้พูดให้ชัดและจำกัดขอบเขต:

```text
บน iPhone ของฉัน ปุ่ม "เพิ่มนิสัย" ไปอยู่ใต้แถบด้านล่าง
เมื่อรายการยาว แก้เฉพาะปัญหานี้ใน app/index.tsx
โดยไม่แตะไฟล์อื่น อธิบายสาเหตุด้วย
```

คุณยังวางภาพหน้าจอลงในเทอร์มินัลได้ด้วย Claude อ่านภาพได้

## แบบฝึกหัด: นิสัยที่ยังถูกติ๊กอยู่หลังเปิดแอปใหม่

นี่คือแบบฝึกหัดให้คุณลองทำในโปรเจกต์ของคุณเอง ไม่ใช่ภาพจากฟีเจอร์ที่ส่งมอบไปแล้ว เป้าหมายคือเปลี่ยนจากหน้าจอที่สร้างขึ้นมา ไปเป็นพฤติกรรมที่ตรวจสอบได้ ไม่ต้องมีบัญชีผู้ใช้หรือการซื้อในแอป

1. เก็บนิสัยในเครื่องไว้แค่หนึ่งรายการ ชื่อ "อ่านหนังสือ 10 นาที"
2. ขอช่องติ๊กและการบันทึกข้อมูลในเครื่องที่เข้ากันได้กับโปรเจกต์ Expo ของคุณ
3. ขอให้ agent ระบุไฟล์ที่แก้ dependency ที่อาจเพิ่ม และคำสั่งที่รันจริง
4. ติดตั้งหรือเปิดแอปบน iPhone แล้วตรวจสอบตามด้านล่าง

```text
จากหน้าจอที่มีอยู่ ทำให้นิสัย "อ่านหนังสือ 10 นาที"
ติ๊กได้ และเก็บสถานะไว้หลังปิดแล้วเปิดแอปใหม่
ใช้ที่เก็บข้อมูลในเครื่องที่เข้ากันได้กับ dependency ของโปรเจกต์
ห้ามสร้างบัญชี เซิร์ฟเวอร์ ระบบสมาชิก หรือสถิติเพิ่มเติม
ก่อนเขียนโค้ด อธิบายว่าจะจัดการการโหลด และกรณีอ่าน
หรือบันทึกล้มเหลวอย่างไร จากนั้นแก้ไขแบบจำกัดขอบเขต
ตอนจบ: ไฟล์ที่เปลี่ยน คำสั่งที่รัน ข้อจำกัดที่ยังไม่ได้ทดสอบ
และขั้นตอนที่แน่ชัดเพื่อตรวจสอบผลบน iPhone
```

| สิ่งที่ทำบน iPhone           | ผลที่คาดหวัง                            | ถ้าไม่ผ่าน                                           |
| ---------------------------- | --------------------------------------- | ---------------------------------------------------- |
| เปิดแอปครั้งแรก              | เห็นนิสัยและช่องติ๊ก โดยไม่มีข้อผิดพลาด | ตรวจสถานะเริ่มต้นและการโหลดจากที่เก็บข้อมูล          |
| ติ๊กแล้วปิดและเปิดแอปใหม่    | นิสัยยังถูกติ๊กอยู่                     | ตรวจการเขียนและการอ่านจาก key เดียวกัน               |
| เอาติ๊กออกแล้วเปิดใหม่       | นิสัยยังไม่ถูกติ๊ก                      | ตรวจว่าค่า `false` ถูกบันทึกด้วย                     |
| ทำซ้ำทั้งหมดในโหมดเครื่องบิน | ฟังก์ชันในเครื่องยังใช้ได้              | หา dependency ด้านเครือข่ายที่ถูกเพิ่มโดยไม่มีเหตุผล |
| เพิ่มขนาดตัวอักษร            | ชื่อและปุ่มควบคุมยังเข้าถึงได้          | เอาข้อจำกัดที่ทำให้ข้อความถูกตัดหรือบังปุ่มออก       |

ถ้ามีแถวไหนไม่ผ่าน อย่าสั่งว่า "เขียนใหม่ทั้งหมด" ให้อธิบายสิ่งที่ทำ ผลที่คาดหวัง และผลที่เกิดขึ้นจริง เช่น "หลังเปิดใหม่ ช่องกลับเป็นว่างทั้งที่ฉันติ๊กไว้แล้ว อธิบายสาเหตุและแก้การเก็บข้อมูลโดยไม่เปลี่ยนดีไซน์"

[ดาวน์โหลดเทมเพลต CLAUDE.md และแบบตรวจสอบ (.md)](https://devoria.fr/ressources/claude-md-premiere-app-ios.md) เปิดในโปรแกรมแก้ไขโค้ดหรือแอปโน้ต ปรับคำสั่งให้ตรงกับโปรเจกต์ของคุณก่อนส่งให้ agent

## ขั้นที่ 6: ให้ตรวจทานและทดสอบ

Claude Code เขียนโค้ดที่ดูเหมือนถูก มีแค่เทสต์และ iPhone ของคุณเท่านั้นที่บอกได้ว่ามันถูกจริงไหม

### เทสต์เพื่อไม่ให้ของที่ใช้ได้พัง

แอปยิ่งโต แต่ละคำขอก็ยิ่งเสี่ยงทำให้หน้าจอที่ผ่านแล้วพัง โปรเจกต์ที่ Expo สร้างให้ยังไม่มีเทสต์ ให้ขอ Claude ติดตั้ง Jest พร้อม `jest-expo` ก่อน ตามที่เอกสารของ Expo แนะนำ จากนั้นขอเทสต์สำหรับ logic สำคัญ (การคำนวณวันต่อเนื่อง การตรวจฟอร์ม) และให้รันหลังแก้ไขทุกครั้ง นี่คือเหตุผลที่คำสั่งเทสต์ถูกเขียนไว้ใน `CLAUDE.md`: Claude จะรันเองโดยที่คุณไม่ต้องเตือน เมื่อมีไฟล์กฎและเทสต์ AI จะทำของที่ใช้ได้อยู่แล้วพังน้อยลงมาก

### อ่านทวนทุกการแก้ไข

คุณไม่จำเป็นต้องเข้าใจทุกบรรทัด แต่ต้องรู้ว่าไฟล์ไหนเปลี่ยน และเปลี่ยนเพราะอะไร ถ้า Claude แตะไฟล์ที่ไม่เกี่ยว ให้ถามเหตุผลก่อนยอมรับ แล้วถามต่อว่า "ตรงนี้อะไรอาจพังได้บ้าง?"

### ตรวจบน iPhone ทั้งเครื่องเล็กและเครื่องใหญ่

นี่คือบทเรียนที่ผมจ่ายแพงที่สุด Solys ถูก Apple ปฏิเสธตามข้อ 2.1: เดโมใน onboarding เล่นชนะไม่ได้บน iPad Air ซึ่งแอปรันในโหมดความเข้ากันได้ของ iPhone สาเหตุคือความสูงที่กำหนดเป็น point ตายตัว ไม่ได้สัมพันธ์กับขนาดหน้าจอ บน iPhone ของผมทุกอย่างปกติ โค้ดถูกตรวจทานแล้ว เทสต์ผ่านหมด แต่ไม่มีเครื่องมือไหนดูหน้าจอในขนาดอื่นเลย

ตั้งแต่นั้นมา ผมตรวจทุกหน้าจออย่างน้อยบน iPhone รุ่นเล็กที่สุดและรุ่นใหญ่ที่สุด ถ้าคุณมีโทรศัพท์เครื่องเดียว simulator ของ Xcode บน Mac หรือเพื่อนที่ใช้รุ่นอื่นก็ช่วยได้ ดูเป็นพิเศษที่ข้อความยาว ๆ คีย์บอร์ดที่เปิดอยู่บนฟอร์ม และปุ่มที่ปักไว้ด้านล่าง

## สิ่งที่ Claude Code ทำได้ไม่ดี

Claude Code เก่งมากเรื่องหน้าจอและ logic แต่นอกโฟลเดอร์ของคุณ มันเชื่อถือได้น้อยลงมาก

### การ sign และใบรับรอง

ถ้าไม่ได้รับอนุญาตให้เชื่อมต่อบัญชี Apple ของคุณ Claude จะไม่รู้สถานะของบัญชี มันอาจแต่ง ขั้นตอนเรื่องใบรับรอง ที่ผสม Xcode กับ Expo มั่วกันไป ปล่อยให้ EAS จัดการการ sign: [เอกสารของ Expo](https://docs.expo.dev/build/setup/) อธิบายว่า EAS CLI สร้างและเก็บไฟล์เหล่านี้ให้คุณได้ หลังเชื่อมต่อบัญชี Apple Developer

### App Store Connect

หน้าแอป การแจ้งข้อมูลความเป็นส่วนตัว [ภาพหน้าจอ](https://devoria.fr/th/kits/captures-app-store) และลิงก์ทางกฎหมาย คือข้อมูลที่ต้องตรวจใน App Store Connect ตอนนี้ Claude Code ทำงานในเบราว์เซอร์ที่ล็อกอินอยู่ได้ผ่าน [Chrome integration](https://code.claude.com/docs/en/chrome) ถ้ามีสิทธิ์เข้าถึงที่จำเป็น แต่นั่นไม่ได้รับประกันว่าข้อมูลในช่องต่าง ๆ ถูกต้อง อ่านทวนข้อมูล ตรวจบัญชีที่ใช้ และยืนยันข้อตกลงกับการส่งรีวิวด้วยตัวเอง

### ระบบสมาชิก

เขียน paywall ใช้เวลาสิบนาที แต่การทำให้สินค้าใน App Store Connect การตั้งค่าใน RevenueCat และโค้ดตรงกันนั้นเป็นอีกเรื่อง ตัวระบุผิดไปตัวอักษรเดียว paywall ก็ว่างเปล่าที่ฝั่ง reviewer กับดักที่พบบ่อยที่สุดอยู่ใน [ข้อผิดพลาดเรื่อง paywall iOS ของมือใหม่](https://devoria.fr/th/blog/ios-paywall-beginner-mistakes-sales)

### กรณีขอบ

ถ้าไม่สั่ง Claude จะจัดการแค่กรณีปกติ ไม่มีเน็ต รายการว่าง การซื้อที่ถูกขัดจังหวะ: คุณต้องระบุเอง

### ความปลอดภัยของ Supabase

เมื่อ Claude สร้างตารางใน Supabase ให้ตรวจว่าเปิด Row Level Security (RLS) แล้ว พร้อม policy ที่จำกัดให้ผู้ใช้แต่ละคนเห็นแค่ข้อมูลของตัวเอง และตรวจด้วยว่าไม่มี secret key หลุดอยู่ในโค้ดของแอป เขียนข้อห้ามสองข้อนี้ลงใน `CLAUDE.md` ทันทีที่คุณเชื่อมฐานข้อมูล

## ขั้นที่ 7: ขึ้น TestFlight ด้วย EAS

หน้าจอของคุณถูกตรวจใน Expo Go หรือใน development build แล้ว แล้วแต่โมดูลที่ใช้ ตอนนี้ไปต่อที่ build ที่จะแจกให้ผู้ทดสอบ

### เตรียม EAS

ตอนนี้คุณต้องมี [บัญชี Apple Developer แบบเสียเงิน](https://devoria.fr/th/blog/apple-developer-account-price-free-or-99) [ตามที่ Expo ย้ำไว้](https://docs.expo.dev/submit/ios/) บัญชีนี้จำเป็นสำหรับการส่งแอปขึ้น App Store จากนั้นติดตั้งเครื่องมือของ Expo และตั้งค่าโปรเจกต์:

```bash
npm install --global eas-cli
eas login
eas build:configure
```

เพิ่ม bundle identifier ที่ไม่ซ้ำใครใน `app.json` ใต้ `ios.bundleIdentifier` เช่น `com.yourname.myapp`

### คอมไพล์และส่ง

```bash
eas build --platform ios --profile production
eas submit --platform ios
```

คำสั่งแรกคอมไพล์แอปบนเซิร์ฟเวอร์ของ Expo ตอนรันครั้งแรก EAS จะเสนอให้เชื่อมต่อบัญชี Apple ของคุณเพื่อ สร้างใบรับรอง คำสั่งที่สองส่ง build ไปยัง App Store Connect คุณทำทั้งหมดในครั้งเดียวได้ด้วย `eas build --platform ios --auto-submit`

Apple ต้องประมวลผล build ก่อนที่มันจะโผล่ใน TestFlight และขั้นตอนนี้อาจปฏิเสธ build ได้ เช่น ITMS-90717 เพราะไอคอนโปร่งใส การส่งสำเร็จจึงไม่ได้แปลว่าติดตั้งได้แล้ว ตรวจสถานะของมันใน App Store Connect เรื่องผู้ทดสอบภายใน ภายนอก และการรีวิวเบต้า อธิบายไว้ในคู่มือ [TestFlight สำหรับทดสอบแอป iPhone](https://devoria.fr/th/blog/testflight-test-iphone-app-before-app-store)

ทำการตรวจสอบในขั้นที่ 6 ซ้ำอีกครั้งบน build นี้ แอปที่ใช้ได้ใน Expo Go ยังอาจแครชใน production ได้ เช่น เมื่อขาด โมดูล native

## ค่าใช้จ่ายจริง ๆ เท่าไร

นี่คือราคาที่แต่ละบริการแสดงไว้ ตรวจสอบเมื่อ 27 กันยายน 2026 เป็นดอลลาร์ ยอดที่ถูกเรียกเก็บจริงขึ้นอยู่กับภูมิภาค ภาษี และการใช้งานของคุณด้วย เช็กแพ็กเกจก่อนสมัคร

- **สมาชิก Claude**: [แพ็กเกจ Pro ราคา 20 $ ต่อเดือน](https://claude.com/pricing) หรือ 17 $ ต่อเดือนถ้าจ่ายรายปี แพ็กเกจ Max เริ่มที่ 100 $ ต่อเดือน สำหรับการใช้งานที่มากขึ้น
- **บัญชี Apple Developer**: [99 $ ต่อปี](https://developer.apple.com/programs/) จำเป็นสำหรับ TestFlight และ App Store
- **EAS**: [แพ็กเกจฟรีของ Expo](https://expo.dev/pricing) รวม build iOS 15 ครั้งต่อเดือน ในคิวลำดับความสำคัญต่ำ แพ็กเกจ Starter ราคา 19 $ ต่อเดือน บวกค่าใช้งานส่วนเกิน

สำหรับต้นแบบเล็ก ๆ Pro กับแพ็กเกจฟรีของ EAS เป็นฐานเริ่มต้นได้ ถ้าคุณใช้ไม่เกินโควตา เพิ่มบัญชี Apple ก่อนขึ้น TestFlight แล้วคำนวณแยกสำหรับบริการที่จำเป็นจริง ๆ: ฐานข้อมูล ที่เก็บไฟล์ หรือ API แบบเสียเงิน [เทมเพลตงบประมาณสำหรับแอปแรก](https://devoria.fr/ressources/budget-premiere-app-ios.csv) ช่วยให้คุณแจกแจงรายการเหล่านี้ได้ และอย่าลืมเผื่อเวลาที่ใช้ตั้งค่าและตรวจสอบด้วย

## ข้อจำกัดตามจริง และจุดที่มักติด

Claude Code เปลี่ยนว่าใครบ้างที่สร้างแอป iPhone ได้ แต่ไม่ได้เปลี่ยนสิ่งที่ Apple กำหนดสำหรับการเผยแพร่ การถูกปฏิเสธเกิดขึ้นง่าย Solys โดนมาแล้ว Nolera และ Clic ก็เช่นกัน เหตุผลที่พบบ่อยที่สุดเล่าไว้ใน [ทำไม Apple ถึงปฏิเสธแอป](https://devoria.fr/th/blog/apple-app-rejection-reasons-real-cases)

คุณไปถึง TestFlight ได้ด้วยตัวเองด้วยบทสอนนี้ จุดที่คนมักติดคือหลังจากนั้น: เชื่อมระบบสมาชิก เตรียมข้อมูลให้ reviewer และทำความเข้าใจการถูกปฏิเสธ ถ้าอยากเห็นภาพรวมของเส้นทางทั้งหมด อ่านหน้า [สร้างแอป iPhone](https://devoria.fr/th/expertise/create-iphone-app)

สำหรับส่วนนี้ [iOS Kit](https://devoria.fr/th/kits/ios) รวบรวมโค้ดเริ่มต้นจากแอปของผม รวมระบบสมาชิก skill ของ Claude Code สำหรับแต่ละขั้น และ [Apple Review Kit](https://devoria.fr/th/kits/review-apple) เส้นทางทั้งหมดอยู่ในหน้า [คอร์ส Claude Code สำหรับสร้างแอป iOS](https://devoria.fr/th/expertise/claude-code-course-ios-app)

ติดอยู่แล้วแต่ไม่รู้ว่าติดตรงไหน? [การวิเคราะห์ปัญหาฟรี](https://devoria.fr/th/diagnostic) จะบอกคุณว่าอะไรที่ฉุดคุณไว้จริง ๆ และส่งเช็กลิสต์กันโดน Apple ปฏิเสธของผมให้คุณ

## คำถามที่พบบ่อย

### สร้างแอป iPhone ด้วย Claude Code โดยไม่รู้การเขียนโค้ดได้ไหม?

ได้สำหรับหน้าจอและ logic ง่าย ๆ ถ้าคุณอ่านทวนและทดสอบทุกขั้น แต่ไม่ได้ถ้าคุณหวังว่าจะไม่ต้องเข้าใจอะไรเลย คุณต้องอ่านข้อความ error เป็น รันคำสั่งได้ และตรวจว่า Claude แก้อะไรไป ทั้งหมดนี้เรียนรู้ได้เร็วระหว่างลงมือสร้าง

### Claude Code ใช้ฟรีไหม?

ไม่ฟรี Claude Code ต้องใช้บัญชี Pro, Max, Team, Enterprise หรือ Console แพ็กเกจฟรีของ claude.ai ไม่รวมไว้ แพ็กเกจ Pro เพียงพอสำหรับเริ่มต้น แต่ต้องคอยดูขีดจำกัดการใช้งาน

### ต้องมี Mac เพื่อสร้างแอป iOS ด้วย Claude Code ไหม?

ไม่ต้อง คุณเขียนโค้ดบนคอมพิวเตอร์เครื่องไหนก็ได้ ทดสอบใน Expo Go บน iPhone และ EAS จะคอมไพล์และส่งแอปจากเซิร์ฟเวอร์ของ Expo Mac ยังสะดวกสำหรับ simulator แต่ไม่จำเป็น

### Claude Code หรือ Cursor ดีกว่ากันสำหรับแอป React Native?

ผมใช้ทั้งสองตัวทุกวัน Claude Code ทำงานในเทอร์มินัล และแก้ไขกับรันเทสต์ต่อกันได้เอง Cursor เป็นโปรแกรมแก้ไขโค้ด วิธีการสำคัญกว่าเครื่องมือ: มีกฎ ทำทีละหน้าจอ และมีเทสต์

### ใช้เวลานานแค่ไหนกว่าจะเผยแพร่แอปแรกด้วย Claude Code?

ขึ้นอยู่กับขนาดของแอปและเวลาที่คุณมี แอปที่มีฟังก์ชันเดียวจะเร็วกว่ามาก ส่วนที่คาดเดายากที่สุดยังคงเป็นการรีวิวของ Apple

### Claude Code ตั้งค่าระบบสมาชิกในแอปได้ไหม?

มันเขียนโค้ด paywall และ RevenueCat ได้ ถ้ามีเครื่องมือที่เชื่อมต่อและสิทธิ์ที่จำเป็น มันก็เข้าไปทำงานในคอนโซลได้ด้วย แต่อย่าสรุปว่าสินค้าถูกตั้งค่าแล้วแค่เพราะมีโค้ดอยู่ ให้ตรวจตัวระบุ ราคา และสิทธิ์หลังการซื้อ แล้วทดสอบการซื้อและการกู้คืนบน TestFlight [ข้อผิดพลาดที่พบบ่อยของ paywall iOS](https://devoria.fr/th/blog/ios-paywall-beginner-mistakes-sales) บอกจุดที่คุณต้องตรวจสอบ


## โปรเจกต์ของคุณ

[iOS Kit](https://devoria.fr/th/kits/ios): สร้างแอป iPhone ด้วย Claude Code: Starter Code ของแอปผม skills ที่ตรวจงาน และคิต Apple Review, Screenshots และ ASO 129,99 €
