Flutter App IOS Build 💫 🌌 ✨
Tags: flutter, dart, ios, build
Published: 2022-04-02 21:32:14

**IOS Build:**

Uygulamanızı oluşturmak ve yayınlamak için Xcode gereklidir. Bu kılavuzu takip etmek için macOS çalıştıran bir cihaz kullanmalısınız.

**Adımlar:**
1.) BundleId oluşturma (Geliştirici hesabından)
2.) Uygulamayı App Store Connect'de kaydetmek.
3.) Xcode'u kullanarak build arşivi oluşturma.
4.) Uygulamayı App Store da yayınlama.

**Uygulamanızı App Store Connect'e kaydedin:**
Uygulamanızın yaşam döngüsünü `App Store Connect`'te (eski adıyla iTunes Connect) yönetin. `App Store` ve `TestFlight`'ta uygulama adınızı ve açıklamanızı tanımlar, ekran görüntüleri ekler, fiyatlandırmayı ayarlar ve sürümleri yönetirsiniz.

**Uygulama kaydetmek iki adımdan oluşur:**
1.) Benzersiz(unique) bir Bundle ID kaydetme. 
2.) App Store Connect'te bir uygulama kaydı oluşturma.


**Bir Bundle ID Kaydedin:**

Her iOS uygulaması, Apple'a kayıtlı benzersiz bir tanımlayıcı olan `Bundle ID` ile ilişkilendirilir. 

• Geliştirici hesabınızın `App IDs` sayfasını açın.
• Yeni bir `Bundle ID` oluşturmak için **+** öğesine tıklayın.
• Bir uygulama adı girin, `Explicit App ID`'yi seçin ve bir `ID` girin.
• Uygulamanızın kullandığı hizmetleri seçin ve ardından  **Continue**'a tıklayın.
• Sonraki sayfada, ayrıntıları onaylayın ve Bundle ID'nizi kaydetmek için  **Register**'a tıklayın.


**Bir Uygulamayı App Store Connect'e kaydetmek için:**

• Tarayıcınızda `App Store Connect`'i açın.
• App Store Connect açılış sayfasında `My Apps`'e tıklayın.
• My Apps sayfasının sol üst köşesindeki **+** butonuna tıklayın, ardından  `New App`'i seçin.
• Açılan forma uygulamanızın ayrıntılarını girin. Platforms bölümünde `iOS`'un işaretli olduğundan emin olun. Flutter şu anda `tvOS`'u desteklemediğinden, bu onay kutusunu işaretlemeden bırakın. `Create`'e tıklayın.
• Uygulamanızın `application details` alanına gidin ve sidebar'dan `App Information`'nı seçin.
• `General Information` bölümünde, önceki adımda kaydettiğiniz  `Bundle ID`'yi  seçin.


**Xcode proje ayarlarınızı gözden geçirin:**

Bu adım, Xcode çalışma alanındaki(workspace) en önemli ayarların gözden geçirilmesini kapsar.

• Xcode'da `target’s settings`'e gidin:
• Xcode'da, uygulamanızın ios klasöründe `Runner.xcworkspace`'i açın.
• Uygulama ayarlarınızı görüntülemek için Xcode proje gezgininde **Runner** projesini seçin. Ardından, sidebar'da Runner alanını seçin. **General** sekmesini seçin.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ycn0wo3xgzxhw5fmqtgu.png)




**En önemli ayarları doğrulayın:**

**Identity bölümünde:**

**Display Name** : Uygulamanızın görünen adı.

**Bundle Identifier** : App Store Connect'te kaydettiğiniz `App ID`.

**Signing & Capabilities bölümünde:**

**Automatically manage signing:** Xcode'un uygulama imzalama ve sağlamayı otomatik olarak yönetmesi gerekip gerekmediği. Bu, varsayılan olarak `true`'dur ve çoğu uygulama için yeterli olacaktır.

**Team:** Kayıtlı Apple Developer hesabınızla ilişkili ekibi seçin. Gerekirse, **Add Account**, öğesini seçin, ardından bu ayarı güncelleyin.

**Build Settings bölümünde:**

**iOS Deployment Target** : Uygulamanızın desteklediği minimum iOS sürümü. Flutter, iOS 9.0 ve sonraki sürümleri destekler. Uygulamanız veya eklentileriniz, iOS 9'dan daha yeni API'leri kullanan Objective-C veya Swift kodu içeriyorsa, bu ayarı gereken en yüksek sürüme güncelleyin.


**Uygulama dağıtım sürümünü güncelleme:**

Xcode projenizde `Deployment Target` alanını değiştirdiyseniz, Flutter uygulamanızda `ios/Flutter/AppframeworkInfo.plist`'i açın ve `MinimumOSVersion` değerini eşleşecek şekilde güncelleyin.


**Uygulama sürüm numarasını güncelleme:**

Uygulamanın varsayılan sürüm numarası 1.0.0'dır. Güncellemek için `pubspec.yaml` dosyasına gidin ve aşağıdaki satırı güncelleyin:

`version: 1.0.0+1`

Sürüm numarası, yukarıdaki örnekte 1.0.0 gibi noktalarla ayrılmış üç sayıdır ve ardından yukarıdaki örnekte 1 gibi isteğe bağlı bir build number gelir ve + ile ayrılır.

Flutter'ın derlemesinde hem version hem de build number, sırasıyla `--build-name` ve `--build-number` belirtilerek geçersiz kılınabilir.

iOS'ta `build-name` `CFBundleShortVersionString`'i, `build-number` `CFBundleVersion`'ı kullanır.


**Bir app icon ekleyin:**
Xcode project navigator'da `Runner` klasöründe `Assets.xcassets` öğesini seçin. Placeholder iconlarını kendi uygulama simgelerinizle güncelleyin.

Uygulamanızı `flutter run` kullanarak çalıştırın ve simgenin değiştirildiğini doğrulayın.


**Xcode ile bir build arşivi oluşturun**

Uygulamanızı App Store veya TestFlight'taki kullanıcılara göndermeye hazır olduğunuzda, bir `release build` (sürüm derlemesi) hazırlamanız gerekir.

**Xcode'da uygulama sürümünü yapılandırın ve şunu oluşturun:**

1. Xcode'da, uygulamanızın ios klasöründe `Runner.xcworkspace`'i açın.

2. Xcode proje gezgininde `Runner`'ı seçin, ardından ayarlar görünümü kenar çubuğunda Runner hedefini seçin.

3. `Identity` bölümünde, `Version`'u, yayınlamak istediğiniz kullanıcıya yönelik version numarasına güncelleyin.

4. Identity bölümünde, Build identifier'ı `App Store Connect`'te bu build'i izlemek için kullanılan unique bir build number'la güncelleyin. Her yükleme benzersiz bir `build number` gerektirir.

Son olarak, bir `build archive` oluşturun ve bunu App Store Connect'e yükleyin:

1.Bir `build archive` oluşturmak için `flutter build ipa` 'yı çalıştırın.

2. Xcode'da `build/ios/archive/MyApp.xcarchive` dosyasını açın.

3.`Validate App` button'una tıklayın. Herhangi bir sorun bildirilirse, bunları ele alın ve başka bir build oluşturun. Bir arşiv yükleyene kadar aynı `build ID`'i yeniden kullanabilirsiniz.

4. Arşiv başarıyla doğrulandıktan sonra, `Distribute App`'e tıklayın. Derlemenizin durumunu, uygulamanızın App Store Connect'teki app’s details sayfasının `Activities` sekmesinden takip edebilirsiniz.


_**Not:** Uygulamanızı `Distribute App`'in sonunda dışa aktardığınızda, Xcode uygulamanızın `IPA`'sını ve bir `ExportOptions.plist` dosyasını içeren bir dizin oluşturur._

`Flutter build ipa --export-options-plist=path/to/ExportOptions.plist` 'i çalıştırarak Xcode'u başlatmadan aynı seçeneklerle yeni IPA'lar oluşturabilirsiniz. 


30 dakika içinde, build'inizin doğrulandığını ve TestFlight'ta test kullanıcılarına sunulmaya hazır olduğunu bildiren bir e-posta alacaksınız. Bu noktada, TestFlight'ta yayınlamayı veya devam edip uygulamanızı App Store'da yayınlamayı seçebilirsiniz.


[Codemagic CLI 'ı kullanarak build arşivi oluşturma.](https://dev.to/gulsenkeskin/codemagic-cli-araclariyla-build-arsiv-olusturma-20a4)


Uygulamanızı TestFlight'ta yayınlayın: 

TestFlight, geliştiricilerin uygulamalarını dahili ve harici test cihazlarına aktarmalarına olanak tanır. Bu isteğe bağlı adım, derlemenizi TestFlight'ta yayınlamayı kapsar.

1. App Store Connect'te uygulamanızın application details sayfasının TestFlight sekmesine gidin.

2. Sidebar'dan Internal Testing i seçin.

3. Test kullanıcılarına yayımlanacak derlemeyi(buildi) seçin ve ardından Save'e tıklayın.

4. Herhangi bir dahili test kullanıcısının e-posta adreslerini ekleyin. Sayfanın üst kısmındaki açılır menüden erişilebilen App Store Connect'in Users and Roles sayfasında ek dahili kullanıcılar ekleyebilirsiniz.

**Uygulamanızı App Store'da yayınlayın:**
1. App Store Connect'te uygulamanızın application details sayfasının  sidebar'ından Pricing and Availability'i seçin ve gerekli bilgileri tamamlayın.

2. Sidebar'dan status'ü seçin. Bu, bu uygulamanın ilk sürümüyse, status 1.0  Prepare for Submission (Gönderime Hazırla)'dır. Tüm gerekli alanları doldurun.

3. Submit for Review'e tıklayın.


Apple, uygulama inceleme süreci tamamlandığında sizi bilgilendirir. Uygulamanız, Version Release bölümünde belirttiğiniz talimatlara göre yayınlanır.

[resource](https://docs.flutter.dev/deployment/ios)