# iOS CI/CD için macOS sunucu nasıl seçilir ve kurulur?

> iOS derleme sunucusunun ihtiyaçları: Apple silicon, doğru macOS ve Xcode, yeterli CPU, bellek ve disk, masaüstü oturumunda çalıştırıcı ve kod imzalama.

Zorluk: İleri\
Denendiği sistemler: macOS Sequoia 15, macOS Tahoe 26

iOS ve macOS uygulamaları için sürekli entegrasyon gerçek bir Mac gerektirir: Xcode yalnızca macOS'ta çalışır ve macOS yalnızca Apple donanımında çalışır. Veri merkezindeki uzak bir Mac ayrıca kararlı bir bağlantı, webhook'lar ve izin listeleri için sabit bir IP adresi ve kimsenin gece kapatmadığı bir bilgisayar sağlar. Bu rehber sürümleri, boyutlandırmayı, çalıştırıcıyı ve kod imzalamayı ele alır.

## Kısa cevap

App Store derlemeleri için Apple'ın şu anda istediği Xcode'u çalıştıran bir macOS sürümüne sahip Apple silicon bir Mac seçin. İki Xcode sürümü ve simülatörleri için yeterli bellek ve disk verin, UI testleri için oturum açılmış bir masaüstü tutun ve imzalama gizli bilgilerini deponuzun dışında saklayın.

## 1. adım: macOS ve Xcode'u Apple'ın gereksinimlerine uydurun

1. **Bugünkü yükleme kuralını kontrol edin.** 28 Nisan 2026'dan beri App Store yüklemeleri Xcode 26 veya sonrasıyla derlenmelidir.
2. **Bir sonraki son tarihi planlayın.** Apple, 27 SDK'larının Nisan 2027'den itibaren zorunlu olacağını duyurdu. O zaman ihtiyacınız olacak Xcode'u not edin.
3. **Xcode'un ihtiyaç duyduğu macOS'u** Apple'ın Xcode sistem gereksinimleri sayfasında bulun. Örneğin Xcode 27, macOS Tahoe 26.6 veya sonrasını ve Apple silicon bir Mac'i gerektirir.
4. **Bunu sunan bir plan seçin.** Sipariş formumuz her macOS planı için macOS sürümlerini listeler; Apple Silicon macOS VPS planları talep üzerine hazırlanır.

### Apple silicon mı, Intel mi?

macOS Tahoe 26, Intel tabanlı Mac'ler için son macOS sürümüdür; macOS 27 ve güncel Xcode sürümleri Apple silicon gerektirir. Intel Mac'ler eski macOS sürümlerini veya x86_64 derlemelerini test etmek için hâlâ işe yarar, ama yeni bir App Store derleme sunucusu Apple silicon olmalıdır. Apple silicon'da derlemeler doğal olarak çalışır ve Xcode arm64 simülatör çalışma zamanlarını indirir; bu da disk alanından tasarruf sağlar. Apple Virtualization çatısı macOS konukları için iç içe sanallaştırma sunmadığından Apple Silicon macOS VPS içinde başka sanal makine çalıştıramazsınız; bunun için bir macOS VDS seçin.

## 2. adım: Sunucuyu boyutlandırın

| Kaynak | Başlangıç noktası | Neden |
|---|---|---|
| CPU | 8 veya daha fazla çekirdek | Daha kısa temiz derlemeler ve paralel test çalıştırmaları |
| Bellek | 16 GB, paralel simülatörler için 32 GB | Xcode, derleyici ve her simülatör kendi payına ihtiyaç duyar |
| Disk | 100 GB veya daha fazla boş alan | İki Xcode sürümü, çalışma zamanları, DerivedData, arşivler |
| macOS | Gereken Xcode'un desteklediği bir sürüm | Apple'ın Xcode sistem gereksinimleri |
| Erişim | SSH artı grafik oturum | Kurulum, UI testleri ve anahtar zinciri istemleri için Ekran Paylaşımı |
| Ağ | Kararlı bağlantı ve sabit IP adresi | Webhook'lar, izin listeleri, bağımlılık indirmeleri |

Bunlar genel kurallardır: büyük projeler ve paralel işler daha fazlasını ister. Kendi derlemelerinizi ölçün.

## 3. adım: Mac'i hazırlayın

[macOS sunucuda ilk adımlar](/guides/macos-server-first-steps) rehberindeki gibi bağlanın, ardından:

```bash
sudo xcode-select -s /Applications/Xcode-26.app
xcodebuild -version
sudo xcodebuild -runFirstLaunch
sudo pmset -a sleep 0
```

**Doğrulama:** `xcodebuild -version` beklenen sürümü yazdırır ve `pmset -g` `sleep 0` gösterir.

UI testleri için çalıştırıcının oturum açılmış bir masaüstü oturumuna ihtiyacı vardır: oturumun yeniden başlatmadan sonra geri gelmesi için **Sistem Ayarları › Kullanıcılar ve Gruplar** altında **Otomatik olarak giriş yap** ayarını açın (FileVault açıkken kullanılamaz).

## 4. adım: CI çalıştırıcısını kurun

- **Xcode Cloud**, Apple'ın barındırdığı CI'dır ve sunucu gerektirmez.
- **GitHub Actions**, **GitLab Runner** ve **Jenkins** kendi barındırdığınız macOS çalıştırıcılarını destekler; resmî kurulum rehberlerini izleyin ve çalıştırıcıyı deponuza veya grubunuza kaydedin.
- **fastlane** bunların hepsinde derleme, test, imzalama ve yükleme adımlarını otomatikleştirir.

UI testlerinin ve anahtar zinciri erişiminin çalışması için çalıştırıcıyı yalnızca arka plan servisi olarak değil, oturum açılmış oturumda bir kullanıcı ajanı olarak çalıştırın.

> **Uyarı**
>
> Kendi barındırdığınız bir çalıştırıcı, bir sürecin ona verdiği her kodu çalıştırır. Onu yalnızca güvendiğiniz özel depolarla kullanın, macOS ve Xcode'u güncel tutun ve süreç yapılandırmasını kimlerin değiştirebileceğini sınırlayın.

## 5. adım: Uzak bir Mac'te kod imzalama

1. **Bir App Store Connect API anahtarı kullanın.** App Store Connect'te bir ekip anahtarı oluşturun ve CI gizli bilgilerinizde saklayın. Apple özel anahtarı yalnızca bir kez indirmenize izin verir.
2. **Sertifikaları deponun dışında tutun.** Sertifikaları ve profilleri şifreli saklayın, örneğin fastlane match ile, ya da CI gizli bilgilerinden içe aktarın.
3. **Her iş için geçici bir anahtar zinciri kullanın**; başta oluşturun, sonda silin:

```bash
security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
security set-keychain-settings -lut 21600 build.keychain
security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
security import signing.p12 -k build.keychain -P "$P12_PASSWORD" -T /usr/bin/codesign
security list-keychains -d user -s build.keychain login.keychain
security set-key-partition-list -S apple-tool:,apple: -s -k "$KEYCHAIN_PASSWORD" build.keychain
```

İşin sonunda:

```bash
security delete-keychain build.keychain
```

4. **Xcode'un otomatik imzalamasına izin verin.** `xcodebuild`, oturum açılmış bir Apple hesabı olmayan bir makinede API anahtarını kullanabilir:

```bash
xcodebuild -scheme MyApp -configuration Release -archivePath build/MyApp.xcarchive archive -allowProvisioningUpdates -authenticationKeyPath "$ASC_KEY_PATH" -authenticationKeyID "$ASC_KEY_ID" -authenticationKeyIssuerID "$ASC_ISSUER_ID"
```

5. **Döndürün ve iptal edin.** Sızmış olabilecek anahtarları iptal edin ve imzalamaya kimlerin erişimi olduğunu düzenli olarak gözden geçirin.

## Diski sağlıklı tutun

Artık ihtiyacınız olmayan Xcode sürümlerini kaldırın, kullanılamayan simülatörleri `xcrun simctl delete unavailable` ile silin ve eski DerivedData'yı düzenli temizleyin. Apple'ın bir sonraki son tarihinden önce bir sonraki Xcode için yer planlayın.

## Sorun giderme

**`errSecInternalComponent` veya takılan imzalama istemleri.** Anahtar zinciri kilitli ya da bölüm listesi eksik. Kilidi açın ve yukarıdaki gibi `set-key-partition-list` çalıştırın.

**UI testleri yalnızca CI'da başarısız oluyor.** Çalıştırıcının grafik oturumu yok. Onu oturum açılmış kullanıcı oturumunda çalıştırın ve otomatik oturum açmayı açık tutun.

**"No space left on device".** Simülatörleri, DerivedData'yı ve arşivleri temizleyin; bkz. [macOS VPS ve VDS](/guides/macos-vps).

## Sonraki adımlar

- Her macOS serisinin sundukları: [macOS VPS ve VDS](/guides/macos-vps).
- Mac'e SSH erişimini güvenli hale getirin: [SSH anahtarları](/guides/ssh-keys).

## Sık sorulan sorular

### iOS uygulamalarını Linux veya Windows sunucuda derleyebilir miyim?

Hayır. Xcode ve iOS SDK yalnızca macOS'ta çalışır ve macOS yalnızca Apple donanımında çalışır. Linux sunucular aynı süreçte arka uç servisleri, Android derlemeleri ve çıktı depolama için yine işe yarar.

### Derleme sunucum hangi macOS sürümünü çalıştırmalı?

Apple'ın Xcode sistem gereksinimleri sayfasında listelendiği gibi, ihtiyacınız olan Xcode'un desteklediği bir sürüm. Derlemelerin tekrarlanabilir olması için tüm derleme makinelerinde sürümü aynı tutun.

### Bir derleme sunucusunun ne kadar disk alanına ihtiyacı var?

Tek bir süreç için en az 100 GB boş alan planlayın. Xcode, simülatör çalışma zamanları, DerivedData ve arşivler hızla büyür; Apple'ın yıllık son tarihlerinde iki Xcode sürümünü yan yana tutmanız gerekebilir.

### CI için grafik oturum gerekli mi?

Komut satırı derlemeleri için SSH yeterlidir. UI testleri, Simülatör ve bazı anahtar zinciri istemleri oturum açılmış bir grafik oturum gerektirir; otomatik oturum açmayı ayarlayın ve kurulum için Ekran Paylaşımı kullanın.

### Xcode Cloud mu, kendi uzak Mac'im mi?

Xcode Cloud, Apple Developer Program kapsamında aylık işlem saati kotasıyla gelen, Apple'ın barındırdığı CI'dır. Kendi Mac'inizdeki çalıştırıcı araç zincirinin tam kontrolünü, kalıcı önbellekleri ve dakika başı ücret olmamasını sağlar. Birçok ekip ikisini birlikte kullanır.

### Birden fazla proje tek bir derleme sunucusunu paylaşabilir mi?

Evet; sunucunun aynı anda çalışan işler için yeterli çekirdeği, belleği ve diski varsa. Paralel işleri sınırlayın, her iş için geçici bir anahtar zinciri kullanın ve her projenin Xcode sürümünü yan yana kurulu tutun.

---

Kaynak: <https://hyperdc.com/tr/guides/products/macos-server-for-ios-ci>\
Son güncelleme: 2026-10-09
