Delen via


Eigenschappen bouwen voor iOS, Mac Catalyst, macOS en tvOS

MSBuild-eigenschappen bepalen het gedrag van de doelen. Ze worden opgegeven in het projectbestand, bijvoorbeeld MyApp.csproj, binnen een MSBuild PropertyGroup.

AltoolPath

Het volledige pad naar het hulpprogramma altool.

Het standaardgedrag is om xcrun altoolte gebruiken.

AppBundleDir

De locatie van de ingebouwde app-bundel.

AppBundleExtraOptions

Geavanceerde aanvullende argumenten voor het maken van app-bundels.

De geldige set argumenten is afhankelijk van het platform.

Deze moeten doorgaans niet worden gebruikt, tenzij deze zijn opgegeven door een Microsoft-technicus.

AppIcon

De AppIcon itemgroep kan worden gebruikt om een app-pictogram voor de app op te geven.

De waarde van de eigenschap moet verwijzen naar de bestandsnaam van een .appiconset (voor iOS, macOS en Mac Catalyst) of .brandassets (voor tvOS) afbeeldingsresource in een assetcatalogus.

Voorbeeld:

<PropertyGroup>
    <!-- The value to put in here for the "Resources/MyImages.xcassets/MyAppIcon.appiconset" resource would be "MyAppIcon" -->
    <AppIcon>MyAppIcon</AppIcon>
</PropertyGroup>

Zie ook:

ApplicationDisplayVersion

Als dit is ingesteld, geeft u de CFBundleShortVersionString waarde op in het app-manifest (Info.plist).

Dit is een eigenschap die ondersteuning biedt voor .NET Single Project.

Zie OneDotNetSingleProject voor meer informatie.

ApplicationId

Als dit is ingesteld, geeft u de CFBundleIdentifier waarde op in het app-manifest (Info.plist).

Dit is een eigenschap die ondersteuning biedt voor .NET Single Project.

Zie OneDotNetSingleProject voor meer informatie.

Applicatietitel

Als dit is ingesteld, geeft u de CFBundleDisplayName op in het app-manifest (Info.plist).

Dit is een eigenschap die ondersteuning biedt voor .NET Single Project.

Zie OneDotNetSingleProject voor meer informatie.

Applicatieversie

Als dit is ingesteld, geeft u de CFBundleVersion op in het app-manifest (Info.plist).

Dit is een eigenschap die ondersteuning biedt voor .NET Single Project.

Zie OneDotNetSingleProject voor meer informatie.

ArchiveBasePath

De locatie waar archieven worden opgeslagen in Windows voor een externe build.

De standaardwaarde is: %LocalAppData%\Xamarin\iOS\Archives

Alleen van toepassing op iOS-projecten (omdat alleen iOS-projecten extern kunnen worden gebouwd vanuit Windows).

ArchiveOnBuild

Als er een Xcode-archief moet worden gemaakt aan het einde van de build.

BGenEmitDebugInformation

Of het hulpprogramma bgen (de bindinggenerator) foutopsporingsgegevens moet verzenden of niet.

Het standaardgedrag wordt true wanneer de eigenschap Debug is ingesteld op true.

BGenExtraArgs

Eventuele extra argumenten voor het hulpprogramma bgen (de bindinggenerator).

BGenToolExe

De naam van het uitvoerbare bgen (een hulpprogramma dat wordt gebruikt door bindingsprojecten om bindingen te genereren).

Het standaardgedrag is het gebruik van het bgen hulpprogramma dat bij onze workload wordt geleverd.

BGenToolPath

De map waar de bgen (BGenToolExe) zich bevindt.

Het standaardgedrag is het gebruik van het bgen hulpprogramma dat bij onze workload wordt geleverd.

BuildIpa

Als er een pakket (.ipa) moet worden gemaakt voor de app-bundel aan het einde van de build.

Alleen van toepassing op iOS- en tvOS-projecten.

Zie CreatePackage- voor macOS- en Mac Catalyst-projecten.

CodesignAllocate

Het pad naar het hulpprogramma codesign_allocate.

Deze waarde wordt standaard automatisch gedetecteerd.

SamenOntwerpenIsAfhankelijkVan

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan doelen aan deze eigenschap toevoegen om deze doelen uit te voeren voordat de app-bundel wordt ondertekend.

Voorbeeld:

<PropertyGroup>
  <CodesignDependsOn>$(CodesignDependsOn);DoThisBeforeCodesign</CodesignDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCodesign">
  <Exec Command="echo This is executed right before the app is signed." />
</Target>

CodesignEntitlements

Het pad naar het rechtenbestand dat de rechten aangeeft die de app nodig heeft.

Meestal 'Entitlements.plist'.

Dit wordt automatisch ingesteld op 'Entitlements.plist' als een dergelijk bestand bestaat in de hoofdmap van het project.

Dit kan worden voorkomen door de eigenschap EnableDefaultCodesignEntitlements in te stellen op false.

CodesignExtraArgs

Extra argumenten die worden doorgegeven aan het hulpprogramma 'codesign' bij het ondertekenen van de app-bundel.

CodesignKey

Hiermee geeft u de codeondertekeningssleutel op die moet worden gebruikt bij het ondertekenen van de app-bundel.

CodesignKeychain

De sleutelhanger die moet worden gebruikt tijdens het ondertekenen van code.

CodeSigningKey

Hiermee geeft u de codeondertekeningssleutel op die moet worden gebruikt bij het ondertekenen van de app-bundel.

Alleen van toepassing op macOS- en Mac Catalyst-apps, maar het is raadzaam om in plaats daarvan de eigenschap CodesignKey te gebruiken (die op alle platforms werkt).

CodesignProvision

Hiermee geeft u het inrichtingsprofiel op dat moet worden gebruikt bij het ondertekenen van de app-bundel.

CodesignResourceRules

Het pad naar ResourceRules.plist om naar de app-bundel te kopiëren.

CodesignRequireProvisioningProfile

Hiermee geeft u op of een provisioning-profiel vereist is bij het ondertekenen van de app-bundel.

Standaard geldt dat een inrichtingsprofiel vereist is als:

  • macOS, Mac Catalyst: er is een inrichtingsprofiel opgegeven (met de eigenschap CodesignProvision).
  • iOS, tvOS, watchOS: bouwen voor apparaat of rechtenbestand is opgegeven (met de eigenschap CodesignEntitlements).

Als u deze eigenschap instelt op true of false, wordt de standaardlogica overschreven.

MakenAppBundelHangtAfVan

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan alle doelen aan deze eigenschap toevoegen om deze doelen uit te voeren bij het maken van de app-bundel.

Voorbeeld:

<PropertyGroup>
  <CreateAppBundleDependsOn>$(CreateAppBundleDependsOn);DoThisBeforeCreatingAppBundle</CreateAppBundleDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingAppBundle">
  <Exec Command="echo This is executed before the app bundle is created." />
</Target>

CreateIpaDependsOn

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan doelen aan deze eigenschap toevoegen om deze doelen uit te voeren bij het maken van een IPA.

Van toepassing op alle platforms die IPA-archieven bouwen (momenteel iOS en tvOS).

Voorbeeld:

<PropertyGroup>
  <CreateIpaDependsOn>$(CreateIpaDependsOn);DoThisBeforeCreatingIPA</CreateIpaDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingIPA">
  <Exec Command="echo This is executed before the IPA is created." />
</Target>

CreatePackage

Aan het eind van de build, als er een pakket (.pkg) moet worden gemaakt voor de app-bundel.

Alleen van toepassing op macOS- en Mac Catalyst-projecten.

Zie BuildIpa- voor iOS- en tvOS-projecten.

ApparaatspecifiekeBouw

Als de build specifiek moet zijn voor het geselecteerde apparaat.

Van toepassing op alle platforms die apparaatspecifieke builds ondersteunen (momenteel iOS en tvOS).

DeviceSpecificIntermediateOutputPath

Het tussenliggende uitvoerpad dat moet worden gebruikt wanneer apparaatspecifieke builds zijn ingeschakeld.

Van toepassing op alle platforms die apparaatspecifieke builds ondersteunen (momenteel iOS en tvOS).

ApparaatspecifiekUitvoepad

Het uitvoerpad dat moet worden gebruikt wanneer apparaatspecifieke builds zijn ingeschakeld.

Van toepassing op alle platforms die apparaatspecifieke builds ondersteunen (momenteel iOS en tvOS).

DittoPath

Het volledige pad naar het uitvoerbare bestand ditto.

Het standaardgedrag is om /usr/bin/dittote gebruiken.

EmbedOnDemandResources

Als middelen op aanvraag in de app-bundel moeten worden ingesloten.

Standaard: waar

OndertekenCodeInschakelen

Als ondertekening van code is ingeschakeld.

Normaal gesproken bepaalt de build automatisch of ondertekening van code vereist is; deze automatische detectie kan worden overschreven met deze eigenschap.

EnableDefaultCodesignEntitlements

Zie CodesignEntitlements.

EnableOnDemandResources

Als on-demand resources zijn ingeschakeld.

Standaard: onwaar voor macOS, waar voor alle andere platforms.

PakketondertekeningInschakelen

Als de .pkg die is gemaakt (als CreatePackage is ingeschakeld) moet worden ondertekend.

Alleen van toepassing op macOS en Mac Catalyst.

EnableSGenConc

Hiermee schakelt u de gelijktijdige modus voor de SGen garbage collector in.

Alleen van toepassing op iOS, tvOS en Mac Catalyst (wanneer u Geen NativeAOT gebruikt).

GenereerApplicatieManifest

Als er een toepassingsmanifest (Info.plist) moet worden gegenereerd.

Standaard: waar

GeneratedSourcesDir

Waar de gegenereerde bronnen van de generator worden opgeslagen.

InclusiefAlleAppIconen

Stel de eigenschap IncludeAllAppIcons in op True om automatisch alle app-pictogrammen uit alle assetcatalogussen in de app op te nemen.

Voorbeeld:

<PropertyGroup>
    <IncludeAllAppIcons>true</IncludeAllAppIcons>
</PropertyGroup>

Zie ook:

Minimale iOS Versie

Hiermee geeft u de minimale iOS-versie op waarop de app kan worden uitgevoerd.

Van toepassing op iOS; als u deze waarde instelt, wordt SupportedOSPlatformVersion voor iOS-projecten (alleen) ingesteld.

IPhoneResourcePrefix

De map waarin resources worden opgeslagen (dit voorvoegsel wordt verwijderd bij het kopiëren van resources naar de app-bundel).

Van toepassing op iOS-, tvOS- en Mac Catalyst-projecten.

Zie ook MonoMacResourcePrefix en XamMacResourcePrefix.

IpaIncludeArtwork

Als kunstwerken zouden moeten worden opgenomen in de IPA.

Alleen van toepassing op iOS- en tvOS-projecten.

IpaPackageName

Hiermee geeft u de naam van het resulterende IPA-bestand (zonder het pad) bij het maken van een IPA-pakket (zie BuildIpa). IpaPackagePath deze waarde overschrijft.

Alleen van toepassing op iOS- en tvOS-projecten.

IpaPackageDir

Hiermee geeft u de map van het resulterende IPA-bestand bij het maken van een IPA-pakket (zie BuildIpa-). IpaPackagePath deze waarde overschrijft.

Alleen van toepassing op iOS- en tvOS-projecten.

IpaPackagePath

Hiermee geeft u het pad naar het resulterende IPA-bestand bij het maken van een IPA-pakket (zie BuildIpa-).

Alleen van toepassing op iOS- en tvOS-projecten.

IsAppExtension

Als een project een app-extensie is.

IsBindingProject

Als een project een bindingsproject is.

IsXPCService

Als een macOS-extensie een xpc-service is.

Alleen van toepassing op macOS-projecten.

LinkMode

Hiermee geeft u de koppelingsmodus voor het project (None, SdkOnly of Full).

Deze eigenschap is van toepassing op macOS-projecten, maar deze eigenschap is afgeschaft, gebruikt in plaats daarvan TrimMode.

Zie ook MtouchLink.

Koppel met Swift-systeem bibliotheken

Als deze optie is ingesteld op true, vertelt de build de systeemeigen linker waar de systeembibliotheken van Swift te vinden zijn.

Dit is handig wanneer een systeemeigen bibliotheek swift gebruikt, in welk geval de systeemeigen linker moet weten waar de systeembibliotheken van Swift moeten worden gevonden.

Dit betekent momenteel dat deze argumenten worden doorgegeven aan de native linker.

  • -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/[platform]
  • -L/Applications/Xcode.app/Contents/Developer/Platforms/[platform].platform/Developer/SDK/[platform].sdk/usr/lib/swift

De exacte set argumenten kan in de toekomst veranderen.

MacCatalystMinimaleVersie

Hiermee geeft u de minimale Versie van Mac Catalyst (iOS) op waarop de app kan worden uitgevoerd.

Van toepassing op Mac Catalyst; als u deze waarde instelt, wordt SupportedOSPlatformVersion voor Mac Catalyst-projecten (alleen) ingesteld.

MaciOSPrepareForBuildDependsOn

Een door puntkomma's gescheiden eigenschap die kan worden gebruikt om het buildproces uit te breiden. MSBuild-doelen die aan deze eigenschap worden toegevoegd, worden vroeg in de build uitgevoerd voor zowel toepassings- als bibliotheekprojecttypen. Deze eigenschap is standaard leeg.

Voorbeeld:

<PropertyGroup>
  <MaciOSPrepareForBuildDependsOn>$(MaciOSPrepareForBuildDependsOn);MyCustomTarget</MaciOSPrepareForBuildDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

Deze eigenschap is geïntroduceerd in .NET 9.

macOSMinimumVersion

Hiermee geeft u de minimale macOS-versie op waarop de app kan worden uitgevoerd.

Van toepassing op macOS; als u deze waarde instelt, wordt SupportedOSPlatformVersion- ingesteld voor macOS-projecten (alleen).

MacOSXSdkVersion

De macOS SDK-versie die moet worden gebruikt voor de build.

Standaard: automatisch gedetecteerd volgens de standaardversie die is verzonden met de geselecteerde Xcode.

Zie ook MtouchSdkVersion.

MdimportPath

Het volledige pad naar het hulpprogramma mdimport.

Het standaardgedrag is om xcrun mdimportte gebruiken.

MetalLibPath

Het volledige pad naar het metallib gereedschap (de Metal Linker).

Het standaardgedrag is om xcrun metallibte gebruiken.

MetalPath

Het volledige pad naar de Metal-compiler.

Het standaardgedrag is om xcrun metalte gebruiken.

MmpDebug

Hiermee schakelt u de foutopsporingsmodus in voor het maken van app-bundels.

Alleen van toepassing op macOS-projecten.

Zie ook MtouchDebug.

MonoBundlingExtraArgs

Aanvullende argumenten die aangeven hoe de app-bundel moet worden gemaakt.

Alleen van toepassing op macOS-projecten.

Deze eigenschap is afgeschaft en gebruikt in plaats daarvan AppBundleExtraOptions-.

MonoMacResourcePrefix

De map waarin resources worden opgeslagen (dit voorvoegsel wordt verwijderd bij het kopiëren van resources naar de app-bundel).

Alleen van toepassing op macOS-projecten.

Zie ook IPhoneResourcePrefix en XamMacResourcePrefix.

MtouchDebug

Hiermee schakelt u de foutopsporingsmodus in voor het maken van app-bundels.

Van toepassing op iOS-, tvOS- en Mac Catalyst-projecten.

Zie ook MmpDebug.

MtouchEnableSGenConc

Hiermee schakelt u de gelijktijdige modus voor de SGen garbage collector in.

Alleen van toepassing op iOS, tvOS en Mac Catalyst wanneer u NativeAOT niet gebruikt.

Deze eigenschap is afgeschaft. Gebruik in plaats daarvan EnableSGenConc-.

MtouchExtraArgs

Aanvullende argumenten die aangeven hoe de app-bundel moet worden gemaakt.

Alleen van toepassing op iOS-, tvOS- en Mac Catalyst-projecten.

Deze eigenschap is afgeschaft en gebruikt in plaats daarvan AppBundleExtraOptions-.

MtouchInterpreter

Hiermee wordt de interpreter ingeschakeld, en kan optioneel een door komma's gescheiden lijst met assembly's worden gegeven om te interpreteren (als voorafgegaan door een minteken, zal de assembly in plaats daarvan worden gecompileerd met AOT). 'all' kan worden gebruikt om alle assembly's op te geven. Dit argument kan meerdere keren worden opgegeven.

Voorbeeld:

<PropertyGroup>
  <!-- interpret all assemblies -->
  <MtouchInterpreter>all</MtouchInterpreter>

  <!-- AOT-compile all assemblies, except System.dll, which will be interpreted. -->
  <MtouchInterpreter>System</MtouchInterpreter>

  <!-- interpret all assemblies, except System.Core.dll, which will be AOT-compiled. -->
  <MtouchInterpreter>all,-System.Core</MtouchInterpreter>
</PropertyGroup>

Een verkorte schrijfwijze voor de MtouchInterpreter is UseInterpreter=truete zetten, dat overeenkomt met MtouchInterpreter=all.

Als zowel UseInterpreter als MtouchInterpreter zijn ingesteld, heeft MtouchInterpreter voorrang.

Van toepassing op iOS-, tvOS- en Mac Catalyst-apps (wanneer u Geen NativeAOT gebruikt).

Het standaardgedrag is om de interpreter niet in te schakelen.

Notitie

MAUI wijzigt de standaardinstelling door UseInterpreter=true in te stellen voor de "Debug"-configuratie.

Hiermee geeft u de koppelingsmodus voor het project (None, SdkOnly, Full).

Van toepassing op iOS-, tvOS- en Mac Catalyst-projecten, maar deze eigenschap is afgeschaft, gebruik in plaats daarvan TrimMode.

Zie ook LinkMode.

MtouchSdkVersion

De iOS- of tvOS SDK-versie die moet worden gebruikt voor de build.

Standaard: automatisch gedetecteerd volgens de standaardversie die is verzonden met de geselecteerde Xcode.

Zie ook MacOSXSdkVersion.

MtouchUseLlvm

Een booleaanse eigenschap die aangeeft of de AOT-compilatie moet worden uitgevoerd met behulp van LLVM.

Van toepassing op iOS-, tvOS- en Mac Catalyst-projecten.

Verstek:

  • Op iOS en tvOS: ingeschakeld voor release-builds (waarbij Configuration="Release").
  • Op Mac Catalyst: nooit standaard ingeschakeld.

NoBindingEmbedding

Een booleaanse eigenschap die aangeeft of systeemeigen bibliotheken in bindingsprojecten moeten worden ingesloten in de beheerde assembly of in een .resources map naast de beheerde assembly moeten worden geplaatst.

De standaardwaarde is true (wat betekent dat systeemeigen bibliotheken niet worden ingesloten in de beheerde assembly).

Notitie

Xcframeworks werkt niet goed als deze is ingesloten in de beheerde assembly (als deze eigenschap niet is true).

NoDSymUtil

Een booleaanse eigenschap die aangeeft of .dSYM-generatie moet worden uitgeschakeld.

Verstek:

  • true voor iOS en tvOS bij het bouwen voor de simulator.
  • true voor macOS en Mac Catalyst, tenzij u een archief maakt (ArchiveOnBuild=true)

Dit betekent dat het .dSYM-archief wordt gegenereerd in de volgende gevallen (standaard):

  • Op iOS en tvOS bij het bouwen voor apparaten.
  • Op macOS en Mac Catalyst bij het maken van een archief (ArchiveOnBuild=true).

OnDemandResourcesInitialInstallTags

Een tekenreekseigenschap die de aanvankelijke installatietags voor on-demand resources aangeeft.

Voorkeursvolgorde voor OnDemand Resources

Een tekenreekseigenschap die de prefetch-volgorde voor on-demand resources aangeeft.

OnDemandResourcesUrl

Een string-eigenschap die de resource-URL van on-demand resources opgeeft.

OptimaliseerPNGs

Een booleaanse eigenschap die aangeeft of png-afbeeldingen moeten worden geoptimaliseerd.

OptimizePngImagesDependsOn

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan doelen aan deze eigenschap toevoegen om deze doelen uit te voeren voordat png-afbeeldingen worden geoptimaliseerd.

Voorbeeld:

<PropertyGroup>
  <OptimizePngImagesDependsOn>$(OptimizePngImagesDependsOn);MyCustomTarget</OptimizePngImagesDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

OptimizePropertyLists

Een booleaanse eigenschap die aangeeft of eigenschappenlijsten (plists) moeten worden geoptimaliseerd.

OptimaliseerEigenschapslijstenAfhankelijkVan

Dit is een uitbreidingspunt voor de build: een ontwikkelaar kan doelen aan deze eigenschap toevoegen om deze doelen uit te voeren voordat een eigenschappenlijst (plists) wordt geoptimaliseerd.

Voorbeeld:

<PropertyGroup>
  <OptimizePropertyListsDependsOn>$(OptimizePropertyListsDependsOn);MyCustomTarget</OptimizePropertyListsDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

PakketOndertekeningsSleutel

Hiermee specificeert u de codesleutel voor het ondertekenen van het pakket bij het maken van een .pkg voor een macOS- en Mac Catalyst-project.

Alleen van toepassing op macOS- en Mac Catalyst-apps.

PackagingExtraArgs

Hiermee geeft u eventuele extra argumenten die moeten worden doorgegeven aan het hulpprogramma 'productbuild' bij het maken van .pkg voor een macOS- en Mac Catalyst-project.

Alleen van toepassing op macOS- en Mac Catalyst-apps.

PkgPackagePath

Hiermee geeft u het pad naar het resulterende .pkg bestand bij het maken van een pakket (zie CreatePackage).

Alleen van toepassing op macOS- en Mac Catalyst-apps.

PlutilPath

Het volledige pad naar het opdrachtregelprogramma plutil.

Het standaardgedrag is om xcrun plutilte gebruiken.

PngCrushPath

Het volledige pad naar het opdrachtregelprogramma pngcrush.

Het standaardgedrag is om xcrun pngcrushte gebruiken.

ProcessEnums

Een booleaanse eigenschap die aangeeft of opsommingen moeten worden verwerkt als api-definitie in bindingsprojecten.

ProductBuildPath

Het volledige pad naar het hulpprogramma productbuild.

Het standaardgedrag is om xcrun productbuildte gebruiken.

Productdefinitie

De productdefinitiesjabloon (.plist) die moet worden gebruikt bij het maken van de productdefinitie om door te geven aan het hulpprogramma voor productbuild bij het maken van pakketten (.pkg).

Alleen van toepassing op macOS- en Mac Catalyst-apps.

ReferenceNativeSymbol

De itemgroep ReferenceNativeSymbol kan worden gebruikt om op te geven hoe een bepaald systeemeigen symbool moet worden verwerkt: negeer het of vraag de systeemeigen linker om het te behouden (door het symbool als -u ... of in een symboolbestand door te geven aan de systeemeigen linker).

Er zijn twee ondersteunde typen metagegevens:

  • SymbolType: ObjectiveCClass, Function of Field. Wordt gebruikt om de volledige systeemeigen naam van een symbool te berekenen (bijvoorbeeld het systeemeigen symbool voor de Objective-C klasse MyClass is _OBJC_CLASS_$_MyClass, terwijl voor een functie MyFunction het slechts _MyFunction.
  • SymbolMode: Ignore of niet ingesteld. Ignore betekent dat het opgegeven symbool niet aan de systeemeigen linker moet worden doorgegeven; de standaardinstelling is om dit wel te doen.

SymbolType is vereist, terwijl SymbolMode dat niet is.

Voorbeeldsymbool dat u wilt behouden:

<ItemGroup>
    <ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" />
</ItemGroup>

Voorbeeldsymbool dat moet worden genegeerd:

<ItemGroup>
    <ReferenceNativeSymbol Include="MyClass" SymbolType="ObjectiveCClass" SymbolMode="Ignore" />
</ItemGroup>

VereisKoppelingMetAttribuutVoorObjectiveCKlassenZoekopdracht

We scannen automatisch alle bibliotheken voor beheerde klassen die zijn toegewezen aan bestaande Objective-C klassen en maken vervolgens een systeemeigen verwijzing tijdens de build voor die Objective-C klassen.

Op deze manier verwijdert de systeemeigen linker deze Objective-C klassen niet, denkend dat ze niet worden gebruikt.

Dit kan echter een probleem veroorzaken als een beheerde klasse verwijst naar een Objective-C-klasse die niet bestaat. De juiste oplossing hiervoor is om dergelijke beheerde klassen uit de build te verwijderen, maar dit kan lastig zijn, met name als de beheerde klasse afkomstig is van een binaire verwijzing (zoals NuGet).

In deze gevallen is het mogelijk om de eigenschap RequireLinkWithAttributeForObjectiveCClassSearch in te stellen op true, zodat we alleen bibliotheken scannen met het kenmerk [LinkWith] voor Objective-C klassen:

<PropertyGroup>
  <RequireLinkWithAttributeForObjectiveCClassSearch>true</RequireLinkWithAttributeForObjectiveCClassSearch>
</PropertyGroup>

StripPath

Het volledige pad naar het opdrachtregelprogramma strip.

Het standaardgedrag is om xcrun stripte gebruiken.

SupportedOSPlatformVersion

Hiermee geeft u de minimale versie van het besturingssysteem op waarop de app kan worden uitgevoerd.

Het is ook mogelijk om een platformspecifieke eigenschap te gebruiken:

TrimMode

Hiermee geeft u de granulariteit van het bijsnijden op.

De geldige opties zijn:

  • full: Trim elke samenstelling.
  • partial: Trim assembly's die hebben gekozen voor bijsnijden.
  • copy: Verwijder geen samenstellingen.

Zie TrimMode voor meer informatie over de eigenschap TrimMode.

Notitie

Om technische redenen moet de trimmer worden uitgevoerd voor alle iOS-, tvOS-, macOS- en Mac Catalyst-projecten, zelfs als er geen assembly's moeten worden ingekort. Om deze reden is het niet geldig om bijsnijden uit te schakelen door PublishTrimmed in te stellen op false - om bijsnijden wel uit te schakelen, stel je in plaats daarvan TrimMode=copy in (er wordt een buildfout gegenereerd als PublishTrimmed is ingesteld op false).

De eigenschap TrimMode is gelijk aan de bestaande MtouchLink- (voor iOS, tvOS en Mac Catalyst) en LinkMode (voor macOS), maar de geldige eigenschappenwaarden verschillen (ook al zijn de semantiek hetzelfde):

MtouchLink/LinkMode TrimMode
Vol vol
SdkOnly gedeeltelijk
Geen kopiëren

In de toekomst worden de eigenschappen MtouchLink en LinkMode afgeschaft. Gebruik in plaats daarvan TrimMode.

De standaard trimmodus is afhankelijk van talloze factoren en kan ook in de toekomst veranderen.

De huidige standaardwaarden (vanaf .NET 9) zijn:

  • iOS en iOS: partial bij het bouwen voor het apparaat, copy bij het bouwen voor de simulator.
  • macOS: altijd copy.
  • Mac Catalyst: partial bij het bouwen van de "Release"-configuratie, anders copy.

Uitzonderingen:

  • De standaardwaarde wordt altijd full bij het bouwen met NativeAOT.
  • MAUI wijzigt de standaardwaarde in copy bij het bouwen van de Debug-configuratie en wanneer de interpreter is ingeschakeld met behulp van UseInterpreter (wat MAUI ook standaard inschakelt bij het gebruik van de "Debug"-configuratie).

Notitie

De standaard trimmodus kan in de toekomst veranderen.

tvOSMinimumVersie

Hiermee geeft u de minimale tvOS-versie op waarop de app kan worden uitgevoerd.

Van toepassing op tvOS; als u deze waarde instelt, wordt SupportedOSPlatformVersion- ingesteld voor tvOS-projecten (alleen).

UseHardenedRuntime

Een booleaanse eigenschap die aangeeft of een beperkte runtime is ingeschakeld.

Van toepassing op macOS- en Mac Catalyst-projecten.

GebruikInterpreter

Hiermee schakelt u de interpreter in (voor alle assembly's).

Dit komt overeen met het instellen van MtouchInterpreter=all.

Van toepassing op iOS-, tvOS- en Mac Catalyst-apps (wanneer u Geen NativeAOT gebruikt).

Het standaardgedrag is om de interpreter niet in te schakelen.

Notitie

MAUI wijzigt de standaardinstelling door UseInterpreter=true in te stellen voor de "Debug"-configuratie.

Zie MtouchInterpreter- voor meer informatie.

UseNativeHttpHandler

Of de systeemeigen HTTP-handler de standaard-HTTP-handler moet zijn of niet.

Standaard: waar voor alle platforms, met uitzondering van macOS.

XamMacResourcePrefix

De map waarin resources worden opgeslagen (dit voorvoegsel wordt verwijderd bij het kopiëren van resources naar de app-bundel).

Van toepassing op macOS-projecten.

Zie ook IPhoneResourcePrefix en MonoMacResourcePrefix.

ZipPath

Het volledige pad naar het opdrachtregelprogramma zip.

Het standaardgedrag is om xcrun zipte gebruiken.