Aracılığıyla paylaş


iOS için Xamarin uygulamaları oluşturma

Önemli

Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırılıyor. Tamamen kullanımdan kaldırılana kadar Visual Studio App Center'ı kullanmaya devam edebilirsiniz ancak geçiş yapmayı düşünebileceğiniz birkaç önerilen alternatif vardır.

Destek zaman çizelgeleri ve alternatifleri hakkında daha fazla bilgi edinin.

Not

Desteklenen sürümler ve gereksinimler App Center Taşınabilir Sınıf Kitaplığı (PCL) ve .NET Standard projelerini destekler. .NET Standard sürümleri için Bkz. Bulut Derleme Makineleri . App Center, Xamarin Bileşen Deposu bileşenlerini desteklemez ve kullanılabilir olduğunda NuGet paketlerini kullanmanızı öneririz. Değiştirilmeyecek bir Bileşen kullanıyorsanız bizimle iletişime geçin. Yardım ve geri bildirime bakın.

İlk Xamarin iOS uygulamanızı oluşturmaya başlamak için şunları yapmanız gerekir:

  1. Depo hizmet hesabınıza (GitHub, Bitbucket, VSTS, Azure DevOps) bağlanın.
  2. Bir depo ve uygulamanızın yaşadığı bir dal seçin.
  3. Derlemenin projesini veya çalışma alanını ve oluşturmak istediğiniz düzeni yapılandırın.

Not

Uygulamanın gerçek bir cihazda çalışması için derlemenin geçerli bir sağlama profili ve sertifika ile kod imzalanması gerekir.

1. Deponuzu bağlama

Daha önce depo hizmeti hesabınıza bağlanmadıysanız, bunu bağlamanız gerekir. Hesabınız bağlandıktan sonra iOS projenizin bulunduğu depoyu seçin. Bir depo için derleme ayarlamak için yönetici ve çekme izni gerekir.

2. Dal seçme

Bir depo seçtikten sonra, oluşturmak istediğiniz dalı seçin. Varsayılan olarak tüm etkin dallar listelenir.

3. İlk derlemenizi ayarlama

İlk derlemenizden önce Xamarin projesinin yapılandırılması gerekir.

3.1. Proje/çözüm

App Center, analiz aralığında yer alıyorsa deponuzdaki çözümü ve proje dosyalarını otomatik olarak algılar. Oluşturmak istediğiniz .sln veya .csproj/.fsproj öğesini seçin.

Not

En iyi performans için analiz şu anda .sln için iki dizin düzeyiyle ve deponuzun kökü de dahil olmak üzere .csproj/fsproj için dört dizin düzeyiyle sınırlıdır.

3.1.1. Çözüm dosyasından oluşturma (.sln)

Kodunuzda, iOS derlemelerine yönelik derleme yapılandırmaları için Android ve UWP projelerini devre dışı bırakın: çözümün yapılandırma eşlemelerine gidin ve iPhone ve iPhoneSimulator'ı hedefleyen tüm eşlemeler için diğer platformları hedefleyen tüm projelerin işaretini kaldırın. Bu değişiklik , .sln oluşturulduğunda diğer projeleri oluşturmaya çalışmamasını sağlar. Okuyabileceğiniz daha fazla çözüm yapılandırması eşleme bilgisi vardır.

3.1.2. Proje dosyasından oluşturma (.csproj/.fsproj)

Bir .csproj/.fsproj dosyasından derlemek için başvurulan tüm projelerin (örneğin, PCL projeniz) kaynak iOS projenizdekiyle aynı ada sahip yapılandırmayı içermesi gerekir. Dolayısıyla App Center'da simülatör için Hata Ayıklama yapılandırmasını çalıştırırsanız PCL projenizde Debug|iPhoneSimulator yapılandırması olmalıdır. Bunların mevcut olmaması durumunda ve daha fazla hata oluşmasını önlemek için projelerinizi oluşturmadan önce bu tür yapılandırmalar ekleriz. Bu yapılandırmalar yalnızca Hata Ayıklama ve Sürüm için temel varsayılan ayarlara sahiptir.

3.2. Yapılandırma

Derlemek istediğiniz yapılandırmayı seçin. Yapılandırmalar, önceki adımda seçilen kaynak dosyaya bağlı olarak otomatik olarak algılandı.

3.3. Mono sürüm

App Center, derlemeniz için ilgili Xamarin.iOS SDK'sı ile birlikte gelen farklı Mono ortamları kullanarak geriye dönük uyumluluğu korurken yeni özellikler için destek sunar. Yeni dal yapılandırması için varsayılan Mono, en son kararlı olandır. Çerçevelerin veya kitaplıkların eski sürümlerini oluşturmak için önceki Mono ortamlarından birini kullanmayı seçebilirsiniz. Farklı bir Mono sürümü seçtiğinizde, onunla birlikte gelen Xamarin.iOS SDK sürümünü görürsünüz. Xamarin SDK sürüm güncelleştirmelerini izlemek için , Xamarin yayın blogunda gönderileri okuyabilirsiniz.

3.3.1. .NET sürümü

Derleme için kullanılan Xamarin.iOS sürümüne göre uygun .NET sürümü otomatik olarak seçilir ve üzerine yazılamaz. Xamarin.iOS'un hizmetlerimiz tarafından kullanılan .NET ile eşlemesini aşağıdaki tabloda görüntüleyebilirsiniz:

Xamarin.iOS .NET
13.20 3.1.401
14.0 3.1.401
14.2 3.1.401
14.4 3.1.401
14.6 5.0.100
14.8 5.0.100
14.10 5.0.100
14.14 5.0.100
14.16 5.0.100
14.20 5.0.100
15 5.0.100
15.2 5.0.100
15.4 5.0.100
15.6 5.0.100
15.8 5.0.100
15.10 5.0.100
15.12 5.0.100
16.0 5.0.100
16.0 (.NET 6) 6.0.405
16.1 6.0.405
16.2 6.0.405

3.4. Xcode Sürümü

Şu anda desteklenen Xamarin sürümleri Xcode 11.7 veya üzerini gerektirir

3.5. Derleme tetikleyicileri

Varsayılan olarak, bir geliştirici yapılandırılmış bir dala her gönderildiğinde yeni bir derleme tetiklenir. Yeni bir derlemeyi el ile tetiklemek isterseniz, yapılandırma bölmesinde bu ayarı değiştirebilirsiniz.

3.6. Simülatör derlemesi

Simülatör derlemeleri yalnızca simülatörlerde gerçekleştirilir ve cihaza yüklenemez, ancak derlemeler cihaz derlemelerinden daha hızlı tamamlanır. Derlemeniz bir simülatör derlemesi değilse, sonraki adımda kod imzalama dosyalarını karşıya yüklemeniz gerekir.

3.7. Derleme numarasını artırma

Etkinleştirildiğinde, CFBundleVersion uygulamanızın Info.plist dosyasındaki her derleme için otomatik olarak artırılır. Değişiklik derleme öncesi gerçekleşir ve deponuza işlenmez.

3.8. Kod imzalama

Başarılı bir cihaz derlemesi bir IPA dosyası oluşturur. Derlemeyi bir cihaza yüklemek için geçerli bir sağlama profili ve sertifikayla imzalanması gerekir. Bir daldan oluşturulan derlemeleri imzalamak için yapılandırma bölmesinde kod imzalamayı etkinleştirin ve sertifikanın parolası ile birlikte bir sağlama profili (.mobileprovision) ve geçerli bir sertifika (.p12) yükleyin. Xamarin belgelerinde Xamarin iOS uygulamalarının kod imzalama ve cihaz sağlama hakkında daha fazla bilgi edinebilirsiniz.

Uygulama veya watchOS uzantılı uygulamaların imzalanması için uzantı başına ek bir sağlama profili gerekir.

Not

Xamarin watchOS uygulamaları içeren projelerde çalışırken nuget restoremevcut bir sorun vardır. Geçici bir çözüm olmadan App Center'da bir watchOS uygulaması oluşturmak hataya neden olur:

Project <project> is not compatible with xamarinios10 (Xamarin.iOS,Version=v1.0) / win-x86. Project <project> supports: xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0).

App Center'da watchOS uygulamaları oluşturmak için geçici bir çözüm gereklidir. İzleme Uygulamasına başvuruda bulunan iOS projesinde ek bir satır eklenmelidir:

<ReferenceOutputAssembly>False</ReferenceOutputAssembly>

Geçici çözüm içeren örnek WatchApp başvurusu:

    <ProjectReference Include="..\MyWatchApp\MyWatchApp.csproj">
      <Project>{59EB034F-3D29-43A5-B89F-124879504771}</Project>
      <Name>MyWatchApp</Name>
      <IsWatchApp>True</IsWatchApp>
      <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
    </ProjectReference>

3.9. Başarılı derlemenizi gerçek bir cihazda başlatma

Uygulamanızın gerçek bir cihazda başlayıp başlamadiğini test etmek için yeni oluşturulan .ipa dosyanızı kullanın. Başlatma testi, derleme süresine yaklaşık 10 dakika daha ekler. Derlemelerinizi test etme hakkında daha kapsamlı bir kılavuza göz atabilirsiniz

3.10. NuGet geri yükleme

NuGet.config dosyası depo için iade edildiyse ve deponuzun .sln veya kök düzeyinin yanında yer alırsa App Center, aşağıdaki örnekte gösterildiği gibi eklendiğinde özel NuGet akışlarınızı geri yükler. Ortam değişkenleri kullanılarak kimlik bilgileri güvenle eklenebilir:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
    <add key="MyGet" value="https://www.myget.org/F/MyUsername/api/v2/index.json" />
    <add key="MyAuthNuget" value="https://nuget.example.com/v2/index.json" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <packageSourceCredentials>
    <MyAuthNuget>
      <add key="Username" value="$USER_VARIABLE" />
      <add key="ClearTextPassword" value="$PASSWORD_VARIABLE" />
    </MyAuthNuget>
  </packageSourceCredentials>
</configuration>

Karmaşık yapılandırmalarınız varsa ve daha fazla bilgiye ihtiyacınız varsa NuGet davranışını yapılandırma bölümüne bakın.

3.11. Dağıtım grubuna dağıtma

Bir daldan her başarılı derlemeyi daha önce oluşturulmuş bir dağıtım grubuna dağıtılacak şekilde yapılandırabilirsiniz. Dağıt bölümünden yeni bir dağıtım grubu ekleyebilirsiniz. Her zaman uygulamaya erişimi olan tüm kullanıcıları içeren "Ortak Çalışanlar" adlı bir varsayılan dağıtım grubu vardır.

Yapılandırmayı kaydettikten sonra yeni bir derleme otomatik olarak başlatılır.

4. Derleme sonuçları

Bir derleme tetiklendikten sonra aşağıdaki durumlarda olabilir:

  • kuyruğa alındı - Derleme, kaynakların boşaltılması için bekleyen bir kuyrukta.
  • building - Derleme çalışıyor ve önceden tanımlanmış görevleri yürütüyor.
  • başarılı - Derleme başarıyla tamamlandı.
  • failed - Derleme bir hata nedeniyle durduruldu. Derleme günlüğünü indirip inceleyerek sorun giderme işlemi yapabilirsiniz.
  • canceled - Derleme bir kullanıcı eylemi tarafından iptal edildi veya zaman aşımına uğradı.

4.1. Derleme günlükleri

Tamamlanmış bir derleme (başarılı veya başarısız) için derlemenin nasıl gittiği hakkında daha fazla bilgi edinmek için günlükleri indirin. App Center aşağıdaki dosyaları içeren bir arşiv sağlar:

|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
    |-- <build-step-1> (e.g. 2_Get Sources.txt)
    |-- <build-step-2> (e.g. 3_Pod install.txt)
    |--
    |-- <build-step-n> (e.g. n_Post Job Cleanup.txt)

Derleme adımına özgü günlükler (arşivin build/ dizininde bulunur), derlemenin hangi adımda ve neden başarısız olduğunu anlamak için sorun giderme ve anlama açısından yararlıdır.

4.2. Uygulama (.ipa veya .app)

.ipa, iOS uygulamasını içeren bir iOS uygulama arşiv dosyasıdır. Derleme doğru şekilde imzalanmışsa, .ipa gerçek bir cihaza yüklenebilir ve bu, imzalama sırasında kullanılan sağlama profiline karşılık gelebilir. App Center ile kod imzalama ve dağıtma hakkında daha fazla ayrıntı vardır.

Uygulama bir simülatör derlemesiyse, dosyayı bir simülatörde çalıştırabilirsiniz .app , ancak gerçek bir cihazda kullanamazsınız.

4.3. Sembol dosyaları (.dsym)

Sembol dosyaları yalnızca cihaz derlemeleri için oluşturulur. .dsym dosyaları, uygulamanın hata ayıklama simgelerini içerir.

  • App Center SDK'sını uygulamanızda kilitlenme raporlama modülü etkinleştirilmiş olarak daha önce tümleştirdiyseniz kilitlenme raporlama hizmeti, bir derlemenin insanlar tarafından okunabilir (sembolik) kilitlenme raporlarını görüntülemesi için bu .dsym dosyayı gerektirir.
  • Daha önce uygulamanızda kilitlenme raporlaması için başka bir SDK'yı (örneğin HockeyApp SDK' sı) tümleştirdiyseniz, ilgili hizmet dosyanın okunabilir kilitlenme raporlarını görüntülemesini gerektirir .dsym .