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 altool
te 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:
- De AlternateAppIcon item groep.
- De eigenschap IncludeAllAppIcons.
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/ditto
te 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:
- De AlternateAppIcon item groep.
- De eigenschap AppIcon.
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 mdimport
te gebruiken.
MetalLibPath
Het volledige pad naar het metallib
gereedschap (de Metal Linker).
Het standaardgedrag is om xcrun metallib
te gebruiken.
MetalPath
Het volledige pad naar de Metal-compiler.
Het standaardgedrag is om xcrun metal
te 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=true
te 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.
MtouchLink
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 plutil
te gebruiken.
PngCrushPath
Het volledige pad naar het opdrachtregelprogramma pngcrush
.
Het standaardgedrag is om xcrun pngcrush
te 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 productbuild
te 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
ofField
. Wordt gebruikt om de volledige systeemeigen naam van een symbool te berekenen (bijvoorbeeld het systeemeigen symbool voor de Objective-C klasseMyClass
is_OBJC_CLASS_$_MyClass
, terwijl voor een functieMyFunction
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 strip
te 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, anderscopy
.
Uitzonderingen:
- De standaardwaarde wordt altijd
full
bij het bouwen met NativeAOT. - MAUI wijzigt de standaardwaarde in
copy
bij het bouwen van deDebug
-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 zip
te gebruiken.