Aracılığıyla paylaş


iOS, Mac Catalyst, macOS ve tvOS için öğe derleme

Proje oluşturma öğeleri, iOS, Mac Catalyst, macOS ve tvOS uygulama veya kitaplık projelerinin .NET için nasıl oluşturulacağını denetler.

EkstraUygulamaUzantıları

Uygulama paketine kopyalanacak ek uygulama uzantılarını içeren bir öğe grubu.

Aşağıdaki meta veriler ayarlanabilir:

  • İçerir: Xcode uygulama uzantısı projesi için derleme dizininin yolu.
  • Ad: Uzantının adı.
  • BuildOutput: Bu değer, appex paketinin konumunu oluşturmak için Include değerine eklenir. Xcode, genellikle simülatör ve cihaz derlemelerini farklı konumlara yerleştirir; bu nedenle, simülatör veya cihaz için derleme yapıldığına bağlı olarak iki farklı appex paketine işaret eden tek bir AdditionalAppExtensions girişi kullanılabilir.
  • CodesignEntitlements: Uygulama uzantısını imzalarken kullanılacak yetkilendirmeleri belirtir. Varsayılan değer , 'Include' derleme dizininde (bu dosya varsa) '%(Name).entitlements' değeridir.
  • CodesignWarnIfNoEntitlements: Hiçbir CodesignEntitlements değeri ayarlanmazsa bir uyarı oluşturulacaktır. Bu özellik, bu uyarıyı susturmak için false olarak ayarlanabilir.

Örnek:

<ItemGroup>
    <AdditionalAppExtensions Include="path/to/my.appex">
        <Name>MyAppExtensionName</Name>
        <BuildOutput Condition="'$(SdkIsSimulator)' == 'false'">DerivedData/MyAppExtensionName/Build/Products/Debug-iphoneos</BuildOutput>
        <BuildOutput Condition="'$(SdkIsSimulator)' == 'true'">DerivedData/MyAppExtensionName/Build/Products/Debug-iphonesimulator</BuildOutput>
        <CodesignEntitlements>path/to/Entitlements-appextension.plist</CodesignEntitlements>
        <CodesignWarnIfNoEntitlements>false</CodesignWarnIfNoEntitlements>
    </AdditionalAppExtensions>
</ItemGroup>

Örnek bir çözüm burada bulunabilir: TestApplication.

AlternatifUygulamaSimgesi

Öğe AlternateAppIcon grubu, alternatif uygulama simgelerini belirtmek için kullanılabilir.

Meta Include veriler, varlık kataloğu içindeki bir .appiconset (iOS, macOS ve Mac Catalyst için) veya .imagestack (tvOS için) görüntü kaynağının dosya adına işaret etmelidir.

Örnek:

<ItemGroup>
    <!-- The value to put in here for the "Resources/MyImages.xcassets/MyAlternateAppIcon.appiconset" resource would be "MyAlternateAppIcon" -->
    <AlternateAppIcon Include="MyAlternateAppIcon" />
</ItemGroup>

Ayrıca bkz:

AtlasTexture

Atlas dokuları içeren bir öğe grubu.

BGenReferencePath

Ara çubuğuna geçirecek bgen derleme başvurularının listesi (bağlama oluşturucu).

Bunun yerine ProjectReference veya PackageReference öğeleri olarak başvurular eklenerek, bu genellikle otomatik olarak işlenir.

BundleResource

Uygulama paketine kopyalanacak dosyalar.

Ayrıca bkz:

CodesignBundle

Nihai uygulama paketinde imzalanması gereken ek paketler.

Amaç, uygulama imzalama işlemi kapsamında, derleme sırasında özel MSBuild hedefleri aracılığıyla uygulama paketine el ile kopyalanan diğer paketleri de dahil etmektir.

Dahil edilecek yol, uygulama paketinin adı da dahil olmak üzere, ana uygulama paketi içinde dijital imza atılacak uygulama paketinin yoludur.

Örnek:

<ItemGroup>
    <CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app" />
</ItemGroup>

İmzalamanın nasıl gerçekleştiğini yönlendirmek için öğede ayarlanabilen CodesignBundle birkaç meta veri parçası vardır:

Örnek:

<ItemGroup>
    <CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app">
        <CodesignEntitlements>path/to/Entitlements.plist</CodesignEntitlements>
    </CodesignBundle>
</ItemGroup>

Ayarlanmayan meta veriler bunun yerine ilgili özelliği kullanır (örneğin, meta veriler ayarlanmadıysa CodesignSigningKey , bunun yerine özelliğin CodesignSigningKey değeri kullanılır.)

Collada

Collada varlıklarını içeren bir öğe grubu.

İçerik

Uygulama paketine kopyalanacak kaynaklar (dosyalar).

Bunlar uygulama paketinin içinde aşağıdaki dizine yerleştirilir:

  • /Resources: iOS ve tvOS
  • /Contents/Resources: macOS ve Mac Catalyst

Uygulama paketindeki konumu değiştirmek için Link meta verilerini, hedef dizine göre belirlenen bir yola ayarlamak mümkündür.

Örnek:

<ItemGroup>
    <Content Include="Readme.txt" Link="Documentation/Readme.txt" />
</ItemGroup>

dosyayı aşağıdaki konuma yerleştirir:

  • /Resources/Documentation/Readme.txt: iOS, tvOS
  • /Contents/Resources/Documentation/Readme.txt: macOS, Mac Catalyst

Ayrıca bkz:

CoreMLModel

CoreML modellerini içeren bir öğe grubu.

CustomYetkiler

Uygulamaya eklenecek özel yetkilendirmeler içeren bir öğe grubu.

Bu yetkilendirmeler en son işlenir ve CodesignEntitlements özelliğiyle belirtilen dosyadan veya kullanımdaki sağlama profilinden (varsa) diğer yetkilendirmeleri geçersiz kılar.

Bu biçimdir:

<ItemGroup>
    <CustomEntitlements Include="name.of.entitlement" Type="Boolean" Value="true" /> <!-- value can be 'false' too (case doesn't matter) -->
    <CustomEntitlements Include="name.of.entitlement" Type="String" Value="stringvalue" />
    <CustomEntitlements Include="name.of.entitlement" Type="StringArray" Value="a;b" /> <!-- array of strings, separated by semicolon -->
    <CustomEntitlements Include="name.of.entitlement" Type="StringArray" Value="a😁b" ArraySeparator="😁" /> <!-- array of strings, separated by 😁 -->
    <CustomEntitlements Include="name.of.entitlement" Type="Remove" /> <!-- This will remove the corresponding entitlement  -->
</ItemGroup>

ITunesArtwork

IPA'lar için iTunes resmi içeren bir öğe grubu.

Yalnızca iOS ve tvOS projeleri için geçerlidir.

ITunesMetadata

Yalnızca iOS ve tvOS projeleri için geçerlidir.

ImageAsset

Görüntü varlıklarını içeren bir öğe grubu.

Arayüz Tanımı

Arabirim tanımlarını (*.xib veya *.görsel taslak dosyaları) içeren bir öğe grubu.

Bağlantı Açıklaması

Düzelticiye geçirmek için ek xml dosyaları.

Bu, TrimmerRootDescriptor ayarıyla aynıdır.

LinkerArgument

Bir uygulama veya uygulama uzantısı için ana yürütülebilir dosyayı derlerken yerel bağlayıcıya (ld) geçirmek için ek bağımsız değişkenler.

Örnek 1 (çerçeveye AudioToolbox bağlanmak için):

<ItemGroup>
    <LinkerArgument Include="-framework" />
    <LinkerArgument Include="AudioToolbox" />
</ItemGroup>

Örnek 2 (özel statik kitaplıkla bağlantı oluşturmak için):

<ItemGroup>
    <LinkerArgument Include="$(MSBuildProjectDirectory)/libCustom.a" />
</ItemGroup>

Bağlayıcıya yönelik her bağımsız değişken ayrı bir öğedir ve bağımsız değişkenler tırnak içine alınmamalıdır.

Tüm bağımsız değişkenler, öğe grubuna eklendikleri sırayla yerel bağlayıcıya LinkerArgument geçirilir, ancak yerel bağlayıcıya geçirilen tüm bağımsız değişkenlerin tam konumu tanımlanmaz.

Derlemeler arasındaki değişiklik kümesi LinkerArgument değişirse yerel yürütülebilir dosya otomatik olarak yeniden derlenir, ancak bir LinkerArgument dosyaya işaret ederse (statik kitaplık gibi) ve bu dosya değişirse, bu değişiklik algılanmaz ve yerel yürütülebilir dosya otomatik olarak yeniden derlenmez.

Metal

Metal varlıkları içeren bir madde grubu.

MlaunchEkstraArgümanlar

mlaunch aracına ek bağımsız değişkenler sağlayan ve cihazda ve simülatörde uygulamaları başlatmak için kullanılan bir öğe grubu. Araç mlaunch bir iç araç olarak kabul edilir ve davranış her zaman değişebilir.

Uyarı

Bu yalnızca uygulamayı komut satırından (dotnet run veya dotnet build -t:Run) başlatırken geçerlidir, IDE'den başlatırken değil.

MlaunchOrtamDeğişkenleri

Cihazda veya simülatörde uygulama başlatıldığında ayarlanacak ortam değişkenlerini içeren bir öğe grubu.

Uyarı

Bu yalnızca uygulamayı komut satırından (dotnet run veya dotnet build -t:Run) başlatırken geçerlidir, IDE'den başlatırken değil.

NativeReference

Yerel yürütülebilir dosya oluşturulurken bağlanması veya ilişkilendirilmesi gereken yerel başvuruları içeren bir öğe grubu.

ObjcBindingApiDefinition

Bağlama projeleri için tüm API tanımlarını listeleyen bir öğe grubu.

ObjcBindingCoreSource

Bağlama projeleri için tüm temel kaynak kodunu listeleyen bir öğe grubu.

ObjCBindingNativeFramework

Bağlama projesine dahil edilmesi gereken tüm yerel çerçeveleri listeleyen bir öğe grubu.

Bu öğe grubu kullanım dışı bırakıldı, bunun yerine NativeReference kullanın.

ObjcBindingNativeLibrary

Bağlama projesine dahil edilmesi gereken tüm yerel kitaplıkları listeleyen bir öğe grubu.

Bu öğe grubu kullanım dışı bırakıldı, bunun yerine NativeReference kullanın.

Kısmi Uygulama Manifestosu (PartialAppManifest)

PartialAppManifest ana uygulama bildirimi (Info.plist) ile birleştirilecek başka kısmi uygulama bildirimleri eklemek için kullanılabilir.

Kısmi uygulama bildirimlerindeki herhangi bir değer, metadata Overwrite olarak ayarlanmadığı sürece ana uygulama bildirimindeki değerleri geçersiz kılar.

Birden çok kısmi uygulama bildiriminde aynı değer belirtilirse, hangisinin kullanılacağı belirlenemez.

<ItemGroup>
    <PartialAppManifest Include="my-partial-manifest.plist" Overwrite="false" />
</ItemGroup>

Geliştiricinin öğe grubuna ne ekleyeceğini hesaplamak için bir hedefi çalıştırması gerekiyorsa, PartialAppManifest özelliğine eklenerek, bu hedefin PartialAppManifest öğeleri işlenmeden önce yürütülmesi sağlanabilir.

<PropertyGroup>
    <CollectAppManifestsDependsOn>
        AddPartialAppManifests;
        $(CollectAppManifestsDependsOn);
    </CollectAppManifestsDependsOn>
</PropertyGroup>
<Target Name="AddPartialAppManifests">
    <ItemGroup>
        <PartialAppManifest Include="MyPartialAppManifest.plist" />
    </ItemGroup>
</Target>

SkipCodesignItems

Uygulama paketinde imzalanmaması gereken dosyaları veya dizinleri belirten bir öğe grubu.

Amaç, el ile (örneğin proje dosyasındaki özel MSBuild hedefleri aracılığıyla) uygulama paketine kopyalanan ve zaten imzalanmış olan dosyaların ve dizinlerin imzalanma işleminden hariç tutulmasıdır.

Eklenecek dosya veya dizinin yolu, uygulama paketinin köküne göre belirtilmelidir.

Örnek:

<ItemGroup>
    <SkipCodesignItems Include="Contents/SharedSupport/mysignedlibrary.dylib" />
</ItemGroup>

Tüm platformlar için geçerlidir.

XcodeProject

<XcodeProject> Xcode veya elsewee'de oluşturulan Xcode çerçeve projelerinin çıkışlarını oluşturmak ve kullanmak için kullanılabilir.

Meta Include veriler, oluşturulacak XCODEPROJ dosyasının yoluna işaret etmelidir.

<ItemGroup>
  <XcodeProject Include="path/to/MyProject.xcodeproj" SchemeName="MyLibrary" />
</ItemGroup>

Aşağıdaki MSBuild meta verileri desteklenir:

  • %(SchemeName): Projeyi derlemek için kullanılması gereken derleme şemasının veya hedefin adı.

  • %(Configuration): Projeyi oluşturmak için kullanılacak yapılandırmanın adı. Varsayılan değer şudur: Release.

  • %(CreateNativeReference): Çıkış XCFRAMEWORK dosyaları projeye bir @(NativeReference) olarak eklenir. @(NativeReference) tarafından desteklenen %(Kind), %(Frameworks) veya %(SmartLink) gibi meta veriler ayarlanırsa iletilecektir. Varsayılan değer şudur: true.

  • %(OutputPath): Xcode projesinin XCARCHIVE ve XCFRAMEWORK çıkış yolunu geçersiz kılacak şekilde ayarlanabilir. Varsayılan değer şudur: $(IntermediateOutputPath)xcode/{SchemeName}-{Hash}.

Bu derleme eylemi .NET 9'da kullanıma sunulmuştur.