# Cài app của mình lên iPhone không cần App Store

> Miễn phí với máy Mac và Xcode, nhưng app hết hạn sau 7 ngày. Tài khoản trả phí, TestFlight, build Expo hay Expo Go: chọn cách phù hợp với bạn.

Trang gốc: [Cài app của mình lên iPhone không cần App Store](https://devoria.fr/vi/blog/cai-app-cua-minh-len-iphone-khong-can-app-store)
Tác giả: [Mehdi Azizi](https://devoria.fr/vi/mehdi-azizi)
Ngày đăng: 2026-11-04
Lần sửa nội dung gần nhất: 2026-11-04


Có, bạn có thể cài app của chính mình lên iPhone mà không cần qua App Store, thậm chí miễn phí. Bạn cần một máy Mac, Xcode và một tài khoản Apple bình thường. **Nhưng với tài khoản miễn phí, bản cài sẽ hết hạn sau 7 ngày**: bạn phải build lại app và cài lại. Muốn giữ app lâu hơn, hoặc cài mà không cần Mac, bạn phải tham gia Apple Developer Program trả phí, giá 99 đô la mỗi năm.

Mình thử các app của chính mình, Solys, TradaZen và Nolera, trên iPhone từ rất lâu trước khi phát hành. Bài này so sánh năm cách chính thức, dựa trên các trang của Apple và Expo mà mình đọc lại ngày 3/11/2026. Nếu bạn đang thắc mắc về tổng chi phí làm một app, hãy đọc bài [tạo ứng dụng iPhone miễn phí](https://devoria.fr/vi/blog/tao-app-iphone-mien-phi-chi-phi-that).

## So sánh năm cách cài app của bạn

| Cách                      | Chi phí    | Cần Mac | Thời hạn bản cài       |
| ------------------------- | ---------- | ------- | ---------------------- |
| Xcode, tài khoản miễn phí | Miễn phí   | Có      | 7 ngày                 |
| Xcode, tài khoản trả phí  | 99 USD/năm | Có      | Tối đa 12 tháng        |
| Build Expo cài qua link   | 99 USD/năm | Không   | Tối đa 12 tháng        |
| TestFlight                | 99 USD/năm | Không   | 90 ngày mỗi build      |
| Expo Go                   | Miễn phí   | Không   | Phụ thuộc vào máy tính |

Giới hạn của từng dòng:

- **Tài khoản miễn phí**: 3 thiết bị và 10 app ID, có hiệu lực 7 ngày, và 3 app trên mỗi thiết bị.
- **Tài khoản trả phí, Xcode hoặc link Expo**: đăng ký tối đa 100 iPhone mỗi năm thành viên.
- **TestFlight**: tối đa 100 tester nội bộ và 10.000 tester bên ngoài, tester bên ngoài cần Apple duyệt.
- **Expo Go**: dự án của bạn chạy bên trong app Expo Go, không có module native tùy chỉnh.

Thời hạn 12 tháng là thời hạn hiệu lực của provisioning profile, theo [tài liệu của Expo](https://docs.expo.dev/app-signing/app-credentials/). Các con số khác lấy từ các trang của Apple được dẫn bên dưới.

## Miễn phí, với Mac và Xcode

Đây là cách chính thức duy nhất để cài một app native thật lên iPhone mà không phải trả phí thành viên. Xcode [miễn phí trên Mac App Store](https://apps.apple.com/fr/app/xcode/id497799835?mt=12). Phiên bản hiện tại yêu cầu macOS 26.6 và máy Mac dùng chip Apple M1 trở lên.

Theo [tài liệu của Xcode](https://developer.apple.com/documentation/xcode/running-your-app-on-simulated-or-physical-devices), các bước như sau:

1. **Kết nối tài khoản Apple** trong Xcode, menu Settings, rồi Apple Accounts. Nếu chưa là thành viên, Xcode hiển thị nó là Personal Team.
2. **Mở tab Signing & Capabilities** của dự án. Bấm Set Up Signing, chọn team và nhập một bundle identifier duy nhất.
3. **Ghép nối iPhone với Mac** bằng Device Hub, qua cáp hoặc không dây.
4. **Chọn iPhone của bạn** làm đích chạy, rồi bấm Run. Xcode sẽ đăng ký thiết bị và tạo provisioning profile.

Với Expo, lệnh `npx expo run:ios --device` làm việc tương tự: nó build dự án cục bộ bằng Xcode và cài lên iPhone đang cắm. [Expo nói rõ](https://docs.expo.dev/develop/development-builds/introduction/): build cục bộ là cách duy nhất để cài development build lên iPhone mà không cần tài khoản trả phí.

### Giới hạn của tài khoản miễn phí

[Trang trợ giúp của Apple về tài khoản developer](https://developer.apple.com/help/account/basics/about-your-developer-account) đặt ra ba giới hạn cho Personal Team:

- **Tối đa 10 app ID**, hết hạn sau 7 ngày;
- **Tối đa 3 thiết bị**, cũng hết hạn sau 7 ngày;
- **Tối đa 3 app trên mỗi thiết bị**.

**Provisioning profile hết hạn 7 ngày sau khi được tạo.** Sau thời hạn đó, Apple yêu cầu bạn build lại app và cài lại từ Xcode. Theo bảng trên cùng trang, tài khoản miễn phí không mở được App Store Connect, TestFlight, hay khu vực quản lý certificate và profile. Với một app cá nhân bạn sửa mỗi tuần thì vẫn ổn. Với một app bạn muốn dùng hằng ngày mà không phải bận tâm thì sẽ nhanh chóng thấy phiền.

## Bật Developer Mode trên iPhone

Một app được Xcode build, hoặc cài từ file `.ipa`, sẽ không mở được khi Developer Mode đang tắt. [Apple thiết kế nó](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) để tránh việc vô tình cài phần mềm nguy hiểm. Nó không ảnh hưởng gì tới các bản cài từ App Store hay TestFlight.

Cách bật:

1. Mở Settings, rồi Privacy & Security.
2. Trong mục Security, bật Developer Mode.
3. Chạm Restart trong hộp thoại.
4. Sau khi khởi động lại, xác nhận bằng Turn On, rồi nhập mật mã.

Theo Apple, tùy chọn này chỉ xuất hiện trong Settings khi bạn đã bắt đầu ghép nối với một máy Mac, hoặc nếu iPhone đã từng được ghép nối. [Theo Expo](https://docs.expo.dev/guides/ios-developer-mode/), Developer Mode cũng cần thiết cho build Expo cài qua link và development build cục bộ. Nếu không có Mac, Expo khuyên bạn cài build trước, rồi chạm vào biểu tượng của nó: một hộp thoại sẽ đề nghị bật chế độ này.

## Với tài khoản trả phí: giữ app được cài lâu dài

Phí tham gia [Apple Developer Program](https://developer.apple.com/programs/enroll/) là 99 đô la mỗi năm thành viên, giá hiển thị bằng tiền địa phương khi đăng ký. Việc chọn giữa cá nhân và tổ chức, cùng những gì gói thành viên bao gồm, được nói chi tiết trong bài [tài khoản developer Apple: giá và cách đăng ký](https://devoria.fr/vi/blog/tai-khoan-apple-developer-gia).

Khi có tài khoản trả phí, bản cài không còn giới hạn 7 ngày nữa. Expo cho biết provisioning profile hết hạn sau 12 tháng. Bạn có thể đăng ký tối đa 100 iPhone mỗi năm thành viên, theo [trang trợ giúp của Apple về thiết bị](https://developer.apple.com/help/account/devices/devices-overview). **Vô hiệu hóa một thiết bị không giải phóng chỗ trống**: bộ đếm chỉ trở về 100 khi bắt đầu năm thành viên tiếp theo.

Bạn vẫn có thể cài từ Xcode, hoặc dùng một trong hai cách dưới đây, vốn không cần Mac.

## Build Expo cài qua link

Expo gọi cách này là [phân phối nội bộ](https://docs.expo.dev/build/internal-distribution/) (internal distribution). Máy chủ EAS build app của bạn, rồi đưa bạn một link cài đặt. Cách này yêu cầu tài khoản Apple Developer trả phí.

1. **Đăng ký iPhone** bằng `eas device:create`. Lệnh này tạo ra một link hoặc mã QR để mở trên điện thoại.
2. **Thêm một profile** vào `eas.json` với `"distribution": "internal"`, như trong [hướng dẫn của Expo](https://docs.expo.dev/tutorial/eas/internal-distribution-builds/).
3. **Chạy build iOS** với profile đó, rồi mở link cài đặt trên iPhone.

**iPhone thêm vào sau sẽ cần một build mới**, hoặc ký lại build hiện có. Expo cũng nhắc rằng thiết bị đã vô hiệu hóa vẫn tính vào giới hạn 100.

Đây là cách lý tưởng cho app của riêng bạn có dùng module native. Các app của mình vẫn đang ở Expo SDK 57, trong khi Expo Go trên App Store theo SDK 58: nên mình thử chúng bằng build riêng, không phải trong Expo Go.

## TestFlight: cách thoải mái nhất

TestFlight cài app của bạn như một app bình thường, không cần Developer Mode hay đăng ký thiết bị. Theo [trang trợ giúp App Store Connect](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview), **mỗi build có sẵn trong 90 ngày**. Bạn có thể mời tối đa 100 tester nội bộ, là những người dùng App Store Connect có quyền truy cập app của bạn.

Đây là cách mình dùng hằng ngày. Nhóm nội bộ của các app mình được đặt ở chế độ phân phối tự động: mỗi build gửi lên sẽ tự xuất hiện trong app TestFlight trên iPhone của mình. [Expo xác nhận](https://docs.expo.dev/eas/json/): build được thêm vào các nhóm đã bật phân phối tự động.

Với tester ngoài team, [Apple yêu cầu duyệt](https://developer.apple.com/testflight/) build đầu tiên. Chi tiết đầy đủ có trong bài [TestFlight: thử nghiệm ứng dụng iPhone](https://devoria.fr/vi/blog/testflight-kiem-thu-app-iphone).

## Expo Go: thử mà không tốn đồng nào

Expo Go là một app miễn phí, tải dự án của bạn từ máy tính. Đây là cách nhanh nhất để thấy những màn hình đầu tiên trên iPhone, kể cả khi bạn dùng PC. Từ tháng 9/2026, [Expo yêu cầu đăng nhập](https://expo.dev/changelog/expo-go-57-login) tài khoản Expo, cả trong terminal lẫn trong app trên iPhone.

Hai giới hạn cần biết:

- **Phiên bản.** [Expo Go chỉ hỗ trợ phiên bản SDK mới nhất](https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/). [Phiên bản trên App Store](https://apps.apple.com/fr/app/expo-go/id982107779), phát hành ngày 22/10/2026, theo SDK 58. Việc cập nhật này không được đảm bảo: vào mùa xuân 2026, nó đã kẹt ở SDK 54 trong lúc chờ Apple duyệt, theo [changelog của Expo ngày 4/5/2026](https://expo.dev/changelog/expo-go-and-app-store-may-2026). Vì vậy từ SDK 56, `create-expo-app` đề nghị bạn tạo dự án tương thích với phiên bản trên App Store. Nếu dự án của bạn dùng SDK khác, `eas go` sẽ tạo bản Expo Go riêng của bạn, phân phối qua TestFlight, nhưng cần tài khoản trả phí.
- **Module native.** [Expo nói thẳng](https://docs.expo.dev/get-started/set-up-your-environment/): Expo Go là sân thử để học, có giới hạn và không dùng được cho dự án hướng tới production. Ngay khi bạn thêm một module native không có trong Expo Go, bạn cần một development build.

## Từ PC Windows

Xcode chỉ có trên Mac. **Từ Windows, không có cách chính thức nào cài miễn phí một app native lên iPhone.** [FAQ của Expo](https://docs.expo.dev/faq/) tóm gọn: bạn build trên cloud, và thử trên iPhone thật bằng Expo Go hoặc development build. Bạn còn hai lựa chọn:

- **Miễn phí**: Expo Go, với dự án tương thích với phiên bản trên App Store.
- **Có tài khoản trả phí**: máy chủ EAS build app, rồi bạn cài qua link hoặc qua TestFlight. [Expo cho biết](https://docs.expo.dev/deploy/submit-to-app-stores/) dịch vụ gửi app của họ cũng chạy được từ Windows và Linux cho iOS.

Quy trình đầy đủ không cần Mac có trong bài [phát hành ứng dụng iOS không cần Mac](https://devoria.fr/vi/blog/phat-hanh-app-ios-khong-can-mac-expo-eas).

## Nên chọn cách nào

- **App chỉ dành cho bạn, bạn có Mac, và cài lại mỗi tuần không làm bạn khó chịu**: Xcode và tài khoản miễn phí.
- **Bạn muốn dùng hằng ngày mà không phải bận tâm**: tài khoản trả phí, rồi TestFlight.
- **App dùng module native và bạn không có Mac**: tài khoản trả phí, rồi build Expo cài qua link.
- **Bạn mới bắt đầu và chỉ muốn xem màn hình của mình**: Expo Go.
- **Bạn muốn chia sẻ cho vài người thân**: TestFlight, với tester nội bộ hoặc một nhóm bên ngoài.

## Xây dựng app mà bạn sẽ cài

Cài đặt chỉ là chặng cuối. Nếu bạn làm app bằng AI, [iOS & Android Kit](https://devoria.fr/vi/kits/ios) bắt đầu từ Starter Code của các app của mình, đã sẵn sàng cho Expo, và đi qua bốn bước tới App Store, theo nhịp của bạn. Những lỗi AI hay mắc trong dự án mobile được phân tích trong bài [tạo ứng dụng bằng AI](https://devoria.fr/vi/blog/tao-ung-dung-ios-bang-ai-cam-bay-kiem-tra).

Nếu bạn vẫn chưa biết nên làm gì tiếp, [làm bài chẩn đoán miễn phí](https://devoria.fr/vi/diagnostic): nó cho bạn biết điều gì thực sự đang cản bạn và gửi bạn checklist chống bị Apple từ chối của mình. Phương pháp đầy đủ với Expo có trên trang [ứng dụng mobile React Native và Expo](https://devoria.fr/vi/expertise/ung-dung-di-dong-react-native-expo).

## Câu hỏi thường gặp

### Có thể cài app của mình lên iPhone miễn phí mà không cần App Store không?

Có, với máy Mac, Xcode và một tài khoản Apple miễn phí. Xcode build app và cài lên iPhone đang cắm. Bản cài hết hạn sau 7 ngày, và bạn bị giới hạn 3 thiết bị và 3 app trên mỗi thiết bị.

### Tại sao app cài bằng Xcode ngừng chạy sau 7 ngày?

Với tài khoản miễn phí, Apple cho provisioning profile hết hạn 7 ngày sau khi tạo. Khi đó hãy build lại app và cài lại từ Xcode. Với tài khoản trả phí, profile có hiệu lực tới 12 tháng.

### Làm sao bật Developer Mode trên iPhone?

Mở Settings, rồi Privacy & Security, và bật Developer Mode trong mục Security. Chạm Restart, rồi xác nhận bằng Turn On và mật mã. Tùy chọn này xuất hiện khi iPhone đã được ghép nối với Mac. Nếu không có Mac, hãy cài build trước, rồi chạm vào biểu tượng của nó: một hộp thoại sẽ đề nghị bật chế độ này.

### Có thể cài app iPhone của mình từ Windows không?

Không miễn phí với app native, vì Xcode chỉ có trên Mac. Miễn phí thì bạn có thể chạy dự án trong Expo Go. Với tài khoản trả phí, EAS build app trên cloud, rồi bạn cài qua link hoặc qua TestFlight.

### Tài khoản developer đăng ký được bao nhiêu iPhone?

Tối đa 100 iPhone mỗi năm thành viên với tài khoản trả phí. Vô hiệu hóa một thiết bị không giải phóng chỗ trống. Với tài khoản miễn phí, giới hạn là 3 thiết bị, hết hạn sau 7 ngày.

### App cài qua TestFlight dùng được bao lâu?

Mỗi build có sẵn trong 90 ngày. Trước khi hết hạn, hãy gửi một build mới, rồi cài nó từ app TestFlight.


## Dự án của bạn

[iOS & Android Kit](https://devoria.fr/vi/kits/ios): Tạo app iPhone và Android với Claude Code: code khởi đầu từ các app của mình, lộ trình đến tận store và tất cả các kit. 2.799.000 ₫.

[Chẩn đoán: điều gì ngăn bạn có app iPhone](https://devoria.fr/vi/diagnostic): 7 câu hỏi, 60 giây: bạn biết điều gì thật sự cản bạn đăng app iPhone, lộ trình 4 bước và kit phù hợp với bạn.
