Membangun aplikasi iOS dengan native:build ios, memahami signing certificates & provisioning profiles di Xcode, serta mendistribusikan build pertama ke TestFlight untuk internal dan external testing.

Setelah di episode 17 kita membangun desktop app dengan Electron, pada episode ini kita masuk ke build dan distribusi iOS: proses mengubah kode Laravel menjadi .ipa yang bisa dijalankan di iPhone, dan mengirimkannya ke TestFlight untuk testing. Build iOS adalah salah satu proses paling kompleks di mobile development karena menyangkut signing, provisioning, dan Apple's review ecosystem.
Sebelum build iOS untuk perangkat nyata (bukan simulator), kalian butuh Apple Developer Program ($99/tahun). Tanpa ini, kalian hanya bisa build ke simulator atau perangkat terdaftar (max 3 perangkat, 7 hari berlaku).
security find-identity -v -p codesigningPastikan certificate "Apple Development" atau "Apple Distribution" muncul di daftar.
| Certificate | Untuk | Di mana |
|---|---|---|
| Apple Development | Development/debug build | Xcode (auto) |
| Apple Distribution | App Store / Ad Hoc | Developer Console |
| Apple Push Notification | Push notification | Developer Console |
.cer file dan double-click untuk install ke Keychain.Xcode mendukung automatic signing — memilih dan mengelola certificate & provisioning profile secara otomatis:
/* Begin PBXProject section */
PROJECT_BUILD_SETTINGS = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = "YOUR_TEAM_ID";
PROVISIONING_PROFILE_SPECIFIER = "";
};Set DEVELOPMENT_TEAM ke Team ID kalian (terlihat di Developer Console), dan Xcode akan mengelola sisanya.
Provisioning profile menghubungkan certificate, app ID, dan device:
| Profile | Tipe | Kapan dipakai |
|---|---|---|
| Development | Debug | Development di device fisik |
| Ad Hoc | Release | Distribusi ke device terdaftar (max 100) |
| App Store | Release | Submit ke App Store |
| Enterprise | Release | In-house distribution (Enterprise account) |
Xcode automatic signing membuat provisioning profile otomatis. Jika perlu manual, generate di Developer Console dan download ke Xcode.
php artisan native:build ios --releaseCommand ini:
.ipa.open resources/native/ios/NativePHPApp.xcodeprojDi Xcode:
build/
├── NativePHPApp.xcarchive ← Archive untuk distribusi
└── Export/
└── NativePHPApp.ipa ← File yang diupload ke TestFlightxcodebuild -exportArchive \
-archivePath build/NativePHPApp.xcarchive \
-exportOptionsPlist ExportOptions.plist \
-exportPath build/ExportAtau gunakan altool / Transporter dari macOS:
xcrun altool --upload-app \
--type ios \
--file build/Export/NativePHPApp.ipa \
--apiKey YOUR_API_KEY \
--apiIssuer YOUR_ISSUER_IDWarning
Setiap build yang di-upload ke TestFlight memiliki expired date (biasanya 90 hari). Setelah expired, build tidak bisa diinstall lagi. Upload build baru secara berkala untuk menjaga testing tetap jalan.
# 1. Pastikan environment siap
php -v && composer --version
# 2. Install dependencies
composer install --no-dev --optimize-autoloader
npm install && npm run build
# 3. Build iOS release
php artisan native:build ios --release
# 4. Upload ke TestFlight
xcrun altool --upload-app \
--type ios \
--file build/Export/NativePHPApp.ipa
# 5. Tambah tester di App Store ConnectInti yang harus dibawa pulang:
native:build ios --release menghasilkan file .ipa untuk distribusi.Di episode 19 selanjutnya, kita akan membahas Build & Distribusi Android — Gradle release build, keystore signing, AAB untuk Play Console, serta upload ke internal testing track. Sampai jumpa di episode 19!