Dela via


Skapa egenskaper för iOS, Mac Catalyst, macOS och tvOS

MSBuild-egenskaper styr målens beteende. De anges i projektfilen, till exempel MyApp.csproj, i en MSBuild PropertyGroup.

AltoolPath

Den fullständiga sökvägen till verktyget altool.

Standardbeteendet är att använda xcrun altool.

AppBundleResourcePrefix

Katalogen där resurser lagras (det här prefixet tas bort när resurser kopieras till apppaketet).

Om den inte uttryckligen anges ärver den här egenskapen dess värde från de plattformsspecifika resursprefixegenskaperna (IPhoneResourcePrefix, MonoMacResourcePrefix eller XamMacResourcePrefix beroende på plattform).

Standard: "Resurser"

AppBundleDir

Platsen för det skapade apppaketet.

AppBundleExtraOptions

Avancerade ytterligare argument för att skapa apppaket.

Den giltiga uppsättningen argument beror på plattformen.

Dessa bör vanligtvis inte användas om de inte anges av en Microsoft-tekniker.

AppIcon

Objektgruppen AppIcon kan användas för att ange en appikon för appen.

Värdet för egenskapen måste peka på filnamnet för en .appiconset (för iOS, macOS och Mac Catalyst) eller .brandassets (för tvOS) avbildningsresurs i en tillgångskatalog.

Exempel:

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

Se även:

ApplikationsVisningsVersion

Om värdet anges anger du CFBundleShortVersionString värdet i appmanifestet (Info.plist).

Det här är en egenskap som stöder .NET "Single Project".

Mer information finns i OneDotNetSingleProject .

ApplicationId

Om värdet anges anger du CFBundleIdentifier värdet i appmanifestet (Info.plist).

Det här är en egenskap som stöder .NET "Single Project".

Mer information finns i OneDotNetSingleProject .

Applikationstitel

Om värdet anges anger du CFBundleDisplayName i appmanifestet (Info.plist).

Det här är en egenskap som stöder .NET "Single Project".

Mer information finns i OneDotNetSingleProject .

Applikationsversion

Om värdet anges anger du CFBundleVersion i appmanifestet (Info.plist).

Det här är en egenskap som stöder .NET "Single Project".

Mer information finns i OneDotNetSingleProject .

ArchiveBasePath

Platsen där arkiv lagras i Windows för en fjärrversion.

Standardvärdet är: %LocalAppData%\Xamarin\iOS\Archives

Gäller endast för iOS-projekt (eftersom endast iOS-projekt kan byggas via fjärranslutning från Windows).

ArchiveOnBuild

Om ett Xcode-arkiv ska skapas i slutet av bygget.

BGenEmitDebugInformation

bgen Om verktyget (bindningsgeneratorn) ska generera felsökningsinformation eller inte.

Standardbeteendet är true när egenskapen Debug är inställd på true.

BGenExtraArgs

Eventuella extra argument till bgen verktyget (bindningsgeneratorn).

BGenToolExe

Namnet på den bgen körbara filen (ett verktyg som används av bindningsprojekt för att generera bindningar).

Standardbeteendet är att använda verktyget bgen som levereras med vår arbetsbelastning.

BGenToolPath

Katalogen där bgen (BGenToolExe) finns.

Standardbeteendet är att använda verktyget bgen som levereras med vår arbetsbelastning.

BuildIpa

Om ett paket (.ipa) ska skapas för apppaketet i slutet av versionen.

Gäller endast för iOS- och tvOS-projekt.

Se CreatePackage för macOS- och Mac Catalyst-projekt.

BundleCreateDump

CoreCLR har ett kommandoradsverktyg som anropas createdump för att skapa kärndumpar om processen kraschar. macOS skapar automatiskt kraschrapporter för alla App Store-appar och gör dem tillgängliga för apputvecklaren, så createdump verktyget är inte användbart för många macOS-appar, och därför ingår det inte i appar som standard.

Detta kan åsidosättas genom att ange egenskapen BundleCreateDump :

<PropertyGroup>
  <BundleCreateDump>true</BundleCreateDump>
</PropertyGroup>

Obs! Verktyget createdump fungerar för närvarande inte för sandbox-appar (#18961);

Gäller endast för projekt som använder CoreCLR-körningen (som i skrivande stund bara är macOS-projekt).

BundleOriginalResources

Den här egenskapen avgör om resurser kompileras innan de bäddas in i biblioteksprojekt, eller om den ursprungliga (okompilerade) versionen är inbäddad.

Tidigare har resurser kompilerats innan de har bäddats in i biblioteksprojekt, men detta kräver att Xcode är tillgängligt, vilket har några nackdelar:

  • Det saktar ned fjärrbyggen i Windows.
  • Det fungerar inte när du skapar lokalt i Windows, och inte heller på någon annan plattform förutom macOS.
  • Resurser kompileras med den aktuella tillgängliga Xcode, som kanske inte har samma funktioner som en potentiellt nyare Xcode tillgänglig när biblioteket i fråga används.
  • Det gör det omöjligt att ha en helprogramvy över alla resurser när du skapar en app, vilket är nödvändigt för att identifiera motstridiga resurser.

Därför har vi lagt till stöd för att bädda in de ursprungliga resurserna i bibliotek. Detta kommer att vara ett opt-in-val i .NET 9, men ett opt-out-val från och med .NET 10.

Standardvärdet för den här egenskapen false i .NET 9 och true i .NET 10+.

Anmärkning

Skapa ett problem om du upptäcker att du behöver inaktivera den här funktionen eftersom det är möjligt att alternativet att inaktivera den tas bort i framtiden.

CodesignAllokera

Sökvägen till codesign_allocate verktyget.

Som standard identifieras det här värdet automatiskt.

CodesignConfigureDependsOn

Det här är en tilläggspunkt för bygget: en utvecklare kan lägga till alla mål i den här egenskapen för att köra dessa mål innan bygget tittar på någon av codesigning-egenskaperna.

Detta kan till exempel användas för att inaktivera kodsignering för simulatorversioner:

<PropertyGroup>
  <CodesignConfigureDependsOn>$(CodesignConfigureDependsOn);DisableCodesignInSimulator</CodesignConfigureDependsOn>
</PropertyGroup>
<Target Name="DisableCodesignInSimulator" Condition="'$(SdkIsSimulator)' == 'true'">
  <PropertyGroup>
    <EnableCodeSigning>false</EnableCodeSigning>
  </PropertyGroup>
</Target>

CodesignDependsOn

Det här är en tilläggspunkt för bygget: en utvecklare kan lägga till alla mål i den här egenskapen för att köra dessa mål innan apppaketet signeras.

Exempel:

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

Codesigneringsbehörigheter

Sökvägen till rättighetsfilen som anger de rättigheter som appen kräver.

Vanligtvis "Entitlements.plist".

Vi ställer automatiskt in detta på "Entitlements.plist" om det finns en sådan fil i projektrotkatalogen.

Detta kan förhindras genom att ange egenskapen EnableDefaultCodesignEntitlements till false.

"CodesignExtraArgs"

Extra argument som skickas till codesign-verktyget när du signerar apppaketet.

CodesignKey

Anger den kodsigneringsnyckel som ska användas när apppaketet signeras.

CodesignKeychain

Nyckelringen som ska användas under kodsigneringen.

Kodsigneringsnyckel

Anger den kodsigneringsnyckel som ska användas när apppaketet signeras.

Gäller endast för macOS- och Mac Catalyst-appar, men vi rekommenderar att du använder egenskapen CodesignKey i stället (som fungerar på alla plattformar).

CodesignProvision

Anger den försörjningsprofil som ska användas när apppaketet ska signeras.

CodesignResourceRules

Sökvägen till ResourceRules.plist för att kopiera till apppaketet.

CodesignRequireProvisioningProfile

Anger om en etableringsprofil krävs vid signering av apppaketet.

Som standard kräver vi en provisioneringsprofil om:

  • macOS, Mac Catalyst: en etableringsprofil har angetts (med egenskapen CodesignProvision ).
  • iOS, tvOS: bygga för en enhet, eller så har en rättighetsfil specificerats (med egenskapen CodesignEntitlements).

Om du anger den här egenskapen till true eller false åsidosätter du standardlogik.

CompressBindingResourcePackage

De interna referenserna i ett bindningsprojekt kopieras till utdatakatalogen under byggprocessen, bredvid bindningssammansättningen (till något som vi kallar ett "bindningsresurspaket").

Dessa interna referenser kan antingen lagras komprimerade i en zip-fil (med namnet $(AssemblyName).resources.zip, eller as-is, i en katalog med namnet $(AssemblyName).resources.

Egenskapen CompressBindingResourcePackage anger om du vill skapa en zip-fil eller en katalog.

Möjliga värden är:

  • auto: skapa en zip-fil om en intern referens innehåller symlinks (vilket är typiskt för macOS och Mac Catalyst, men sällsynt på iOS och tvOS).
  • true: skapa en zip-fil
  • false: skapa en katalog

Standardvärdet är auto.

Detta gäller även för hur interna referenser lagras i NuGets.

Anmärkning

I vissa fall kan det vara fördelaktigt att framtvinga en zip-fil även på iOS, särskilt när det finns ett ramverk med filer som har långa namn, eftersom zip-filen ibland kan kringgå MAX_PATH problem i Windows.

SkapaAppBundleBeroendenPå

Det här är en tilläggspunkt för bygget: en utvecklare kan lägga till alla mål i den här egenskapen för att köra dessa mål när apppaketet skapas.

Exempel:

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

CreateIpaDependsOn

Det här är en tilläggspunkt för byggprocessen: en utvecklare kan lägga till alla mål i den här egenskapen för att köra dessa mål när de skapar en IPA.

Gäller för alla plattformar som skapar IPA-arkiv (för närvarande iOS och tvOS).

Exempel:

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

SkapaPaket

Om ett paket (.pkg) ska skapas för apppaketet i slutet av versionen.

Gäller endast för macOS- och Mac Catalyst-projekt.

Se BuildIpa för iOS- och tvOS-projekt.

DeviceSpecificBuild

Om bygget ska vara specifikt för den valda enheten.

Gäller för alla plattformar som stöder enhetsspecifika versioner (för närvarande iOS och tvOS).

DeviceSpecificIntermediateOutputPath

Den mellanliggande filväg som ska användas när enhetsspecifika byggen är aktiverade.

Gäller för alla plattformar som stöder enhetsspecifika versioner (för närvarande iOS och tvOS).

DeviceSpecificOutputPath

Den sökväg för output som ska användas när enhetsspecifika versioner är aktiverade.

Gäller för alla plattformar som stöder enhetsspecifika versioner (för närvarande iOS och tvOS).

DiagnostiskAdress

IP-adressen där dotnet-dsrouter körs. Detta är typiellt 127.0.0.1 vid profilering på simulatorn och IP-adressen för datorn där dotnet-dsrouter vid profilering på en enhet.

Det här är IP-adresskomponenten i DiagnosticConfiguration.

Ställer implicit in EnableDiagnostics till true.

Standardinställningen är 127.0.0.1.

Diagnostisk konfiguration

Ett värde som tillhandahålls av dotnet-dsrouter till DOTNET_DiagnosticPorts exempel:

  • 127.0.0.1:9000,suspend,connect
  • 127.0.0.1:9000,nosuspend,connect

Observera att tecknet , måste undgå med %2c om det används i kommandoraden till dotnet build.

dotnet build -c Release -p:DiagnosticConfiguration=127.0.0.1:9000%2csuspend%2cconnect

Detta ställer automatiskt in DOTNET_DiagnosticPorts miljövariabeln som paketeras i programmet, så att miljövariabeln anges när appen startas.

Ställer in automatiskt EnableDiagnostics till true.

Standardbeteendet är att beräkna det här värdet från de andra diagnostikegenskaperna (DiagnosticAddress, DiagnosticPort, DiagnosticListenMode och DiagnosticSuspend).

Om det anges ignoreras någon av de andra diagnostikegenskaperna.

DiagnosticListenMode

Ett värde som tillhandahålls av dotnet-dsrouter till exempel connect eller listen, komponenten för lyssningsläge i DiagnosticConfiguration.

Sätter implicit EnableDiagnostics till true.

Standardinställningen är listen.

DiagnosticPort

Ett värde som tillhandahålls av dotnet-dsrouter, såsom portkomponenten i DiagnosticConfiguration.

Ställer implicit in EnableDiagnostics till true.

Standardinställningen är 9000.

DiagnosticSuspend

Ett värde som anger startbeteendet när du profilerar ett program.

Ställ in på för att true pausa appen vid start (väntar på att diagnostikservern ska ansluta till appen) eller false starta appen som vanligt (och ansluta diagnostikservern till appen senare).

Detta motsvarar värdet suspend/nosuspend i DiagnosticConfiguration.

Ställs in implicit EnableDiagnostics till true.

Standardinställningen är false.

DittoPath

Den fullständiga sökvägen till den ditto körbara filen.

Standardbeteendet är att använda /usr/bin/ditto.

EmbedOnDemandResources

Om resurser på begäran ska bäddas in i apppaketet.

Standardvärde: "true"

EnableCodeSigning

Om kodsignering är aktiverat.

Kodsignering är aktiverat som standard för alla plattformar. detta kan åsidosättas med den här egenskapen.

EnableDefaultCodesignEntitlements

Se CodesignEntitlements.

Aktivera Resurser på Begäran

Om resurser på begäran är aktiverade.

Standard: false för macOS, sant för alla andra plattformar.

Aktivera PaketSignering

Om .pkg-filen som skapades (om CreatePackage var aktiverat) ska signeras.

Gäller endast för macOS och Mac Catalyst.

AktiveraDiagnostik

Aktivera komponenter som krävs för att diagnostik (till exempel profilering) ska fungera.

Det är aktiverat som standard för felsökningsversioner (när MtouchDebug eller MmpDebug är aktiverat), men måste aktiveras manuellt innan versionsversioner profileras:

<PropertyGroup>
  <EnableDiagnostics>true</EnableDiagnostics>
</PropertyGroup>

Detta ökar appstorleken något.

Gäller endast vid användning av Mono-körning (CoreCLR stöder alltid diagnostik, medan NativeAOT aldrig gör det).

EnableSGenConc

Aktiverar samtidigt läge för SGen-skräpinsamlaren.

Gäller endast för iOS, tvOS och Mac Catalyst (när de inte använder NativeAOT).

GenereraApplikationsmanifest

Om ett programmanifest (Info.plist) ska genereras.

Standardvärde: "true"

GenereradeKällorMapp

Där den genererade källan från generatorn sparas.

InkluderaAllaAppIkoner

IncludeAllAppIcons Ange egenskapen till true för att automatiskt inkludera alla appikoner från alla tillgångskataloger i appen.

Exempel:

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

Se även:

Minsta iOS-version

Anger den lägsta iOS-version som appen kan köras på.

Gäller för iOS; om du anger det här värdet anges SupportedOSPlatformVersion för iOS-projekt (endast).

IPhoneResourcePrefix

Katalogen där resurser lagras (det här prefixet tas bort när resurser kopieras till apppaketet).

Gäller för projekt för iOS, tvOS och Mac Catalyst.

Överväg att använda den enhetliga egenskapen AppBundleResourcePrefix i stället.

Se även MonoMacResourcePrefix och XamMacResourcePrefix.

Ipa inkluderar konstverk

Om konstverk ska ingå i IPA.

Gäller endast för iOS- och tvOS-projekt.

IpaPackageName

Anger namnet på den resulterande .ipa-filen (utan sökvägen) när du skapar ett IPA-paket (se BuildIpa). IpaPackagePath åsidosätter det här värdet.

Gäller endast för iOS- och tvOS-projekt.

IpaPackageDir

Anger katalogen för den resulterande .ipa-filen när du skapar ett IPA-paket (se BuildIpa). IpaPackagePath åsidosätter det här värdet.

Gäller endast för iOS- och tvOS-projekt.

IpaPackagePath

Anger sökvägen till den resulterande .ipa-filen när du skapar ett IPA-paket (se BuildIpa).

Gäller endast för iOS- och tvOS-projekt.

IsAppExtension

Om ett projekt är ett apptillägg.

IsBindingProject

Om ett projekt är ett bindningsprojekt.

IsXPCService

Om ett macOS-tillägg är en xpc-tjänst.

Gäller endast för macOS-projekt.

LinkMode

Anger länkläget för projektet (Noneeller SdkOnlyFull).

Gäller för macOS-projekt, men den här egenskapen är inaktuell använder du TrimMode i stället.

Se även MtouchLink.

Länka med Swift-systembiblioteken

Om värdet är inställt på true, anger bygget den inhemska länkaren var Swift-systembiblioteken ska hittas.

Detta är användbart när ett inhemskt bibliotek använder Swift på något sätt, i vilket fall den inhemska länkaren behöver veta var Swifts systembibliotek finns.

För närvarande innebär det att dessa argument skickas till den inbyggda länkaren.

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

Den exakta uppsättningen argument kan ändras i framtiden.

MacCatalystMinimiversion

Anger den lägsta Mac Catalyst-version (iOS) som appen kan köras på.

Gäller för Mac Catalyst; om du anger det här värdet anges SupportedOSPlatformVersion för Mac Catalyst-projekt (endast).

MaciOSPrepareForBuildDependsOn

En semikolonavgränsad egenskap som kan användas för att utöka byggprocessen. MSBuild-mål som läggs till i den här egenskapen körs tidigt i bygget för både program- och biblioteksprojekttyper. Den här egenskapen är standardmässigt tom.

Exempel:

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

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

Den här egenskapen introducerades i .NET 9.

macOSMinimiversion

Anger den lägsta macOS-version som appen kan köras på.

Gäller för macOS; om du anger det här värdet anges SupportedOSPlatformVersion för macOS-projekt (endast).

MacOSXSdkVersion

Den macOS SDK-versionen som ska användas för kompileringsprocessen.

Standard: identifieras automatiskt enligt standardversionen som levereras med den valda Xcode.

Se även MtouchSdkVersion.

HanteraAdminExceptionLäge

Välj hur hanterade undantag ska hanteras när du stöter på en intern ram när stacken varvar ned medan det hanterade undantaget bearbetas.

Giltiga värden:

  • default: För närvarande är throwobjectivecexception detta.
  • unwindnativecode: Detta är inte tillgängligt när du använder CoreCLR runtime-miljön.
  • throwobjectivecexception: Fånga den hanterade exceptionen och konvertera den till en Objective-C-exception.
  • abort: Avbryt processen.
  • disable: Inaktivera avlyssning av hanterade undantag. För MonoVM är detta motsvarande unwindnativecode och för CoreCLR är detta motsvarande abort.

Mer information finns i Undantagshantering och Läge för hantering av ObjectiveC-undantag.

MarshalObjectiveCExceptionMode

Välj hur Objective-C undantag ska hanteras när du stöter på en hanterad inramning under stackavveckling medan Objective-C undantag bearbetas.

Giltiga värden:

  • default: För närvarande är throwmanagedexception detta.
  • unwindmanagedcode: Detta är inte tillgängligt när du använder CoreCLR runtime-miljön.
  • throwmanagedexception: Fånga undantaget Objective-C och konvertera det till ett hanterat undantag.
  • abort: Avbryt processen.
  • disable: Inaktivera att övervaka vid alla Objective-C undantaget.

Mer information finns i Undantagsöverföring och MarshalManagedExceptionMode.

MdimportPath

Den fullständiga sökvägen till verktyget mdimport.

Standardbeteendet är att använda xcrun mdimport.

MetalLibPath

Den fullständiga sökvägen till metallib-verktyget (Metal Linker).

Standardbeteendet är att använda xcrun metallib.

MetalPath

Den fullständiga sökvägen till Metal-kompilatorn.

Standardbeteendet är att använda xcrun metal.

MmpDebug

Aktiverar felsökningsläge för att skapa apppaket.

Gäller endast för macOS-projekt.

Se även MtouchDebug.

MonoBundlingExtraArgs

Ytterligare argument som anger hur du skapar apppaketet.

Gäller endast för macOS-projekt.

Den här egenskapen är inaktuell, använd AppBundleExtraOptions i stället.

MonoMacResourcePrefix

Katalogen där resurser lagras (det här prefixet tas bort när resurser kopieras till apppaketet).

Gäller endast för macOS-projekt.

Överväg att använda den enhetliga egenskapen AppBundleResourcePrefix i stället.

Se även IPhoneResourcePrefix och XamMacResourcePrefix.

MonoAnvändKomprimeradGränssnittsBitmap

Detta instruerar Mono-körningen att använda en komprimerad version av gränssnittsbitmappar (gränssnittsbitmappar används för att avgöra om en viss typ implementerar ett visst gränssnitt).

Dessa bitmappar kan använda en betydande mängd minne vid körning, särskilt för appar som har en betydande mängd gränssnitt.

Den här inställningen är inaktiverad som standard, men den kan aktiveras så här, vilket minskar mängden minne som används vid körning:

<PropertyGroup>
    <MonoUseCompressedInterfaceBitmap>true</MonoUseCompressedInterfaceBitmap>
</PropertyGroup>

Nackdelen är att typkontroller (obj is SomeInterface) blir långsammare.

Gäller endast när du använder Mono-miljön.

MtouchDebug

Aktiverar felsökningsläge för att skapa apppaket.

Gäller för projekt för iOS, tvOS och Mac Catalyst.

Se även MmpDebug.

MtouchEnableSGenConc

Aktiverar samtidigt läge för SGen-skräpinsamlaren.

Gäller endast för iOS, tvOS och Mac Catalyst när de inte använder NativeAOT.

Den här egenskapen är inaktuell, använd EnableSGenConc i stället.

MtouchExtraArgs

Ytterligare argument som anger hur du skapar apppaketet.

Gäller endast för projekt för iOS, tvOS och Mac Catalyst.

Den här egenskapen är inaktuell, använd AppBundleExtraOptions i stället.

MtouchInterpreter

Aktiverar tolken och tar eventuellt en kommaavgränsad lista över sammansättningar att tolka (om prefixet är ett minustecken kommer sammansättningen att aOT-kompileras i stället). "all" kan användas för att ange alla sammansättningar. Det här argumentet kan anges flera gånger.

Exempel:

<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>

En förkortning för MtouchInterpreter är att ange UseInterpreter=true, vilket motsvarar MtouchInterpreter=all.

Om både UseInterpreter och MtouchInterpreter är inställda, har MtouchInterpreter företräde.

Gäller för appar för iOS, tvOS och Mac Catalyst (när de inte använder NativeAOT).

Standardbeteendet är att inte aktivera tolken.

Anmärkning

MAUI ändrar standardinställningen genom att ange UseInterpreter=true för konfigurationen "Debug" .

Anger länkläget för projektet (None, SdkOnly, Full).

Gäller för projekt för iOS, tvOS och Mac Catalyst, men den här egenskapen är inaktuell, använd TrimMode i stället.

Se även LinkMode.

MtouchSdkVersion

Den iOS- eller tvOS SDK-version som ska användas för versionen.

Standard: identifieras automatiskt enligt standardversionen som levereras med den valda Xcode.

Se även MacOSXSdkVersion.

MtouchUseLlvm

En boolesk egenskap som anger om AOT-kompilering ska göras med hjälp av LLVM.

Gäller för projekt för iOS, tvOS och Mac Catalyst.

Standardvärde:

  • I iOS och tvOS: aktiverat för releasebyggen (där Configuration="Release").
  • På Mac Catalyst: aktiveras aldrig som standard.

NoBindingEmbedding

En boolesk egenskap som anger om interna bibliotek i bindningsprojekt ska bäddas in i den hanterade sammansättningen eller placeras i en .resources katalog bredvid den hanterade sammansättningen.

Standardvärdet är true (vilket innebär att interna bibliotek inte bäddas in i den hanterade sammansättningen).

Anmärkning

Xcframeworks fungerar inte korrekt om de är inbäddade i den hanterade sammansättningen (om den här egenskapen inte true är).

NoDSymUtil

En boolesk egenskap som anger om .dSYM-generering ska inaktiveras.

Standardvärde:

  • true för iOS och tvOS när du bygger för simulatorn.
  • true för macOS och Mac Catalyst om du inte skapar ett arkiv (ArchiveOnBuild=true)

Det innebär att .dSYM-arkivet genereras i följande fall (som standard):

  • På iOS och tvOS när du bygger för enheten.
  • På macOS och Mac Catalyst när du skapar ett arkiv (ArchiveOnBuild=true).

NoSymbolStrip

En boolesk egenskap som anger om felsökningssymboler tas bort från appen vid bygget.

Standardbeteendet är att behålla felsökningssymboler för:

  • Debug versioner för skrivbordsplattformar.
  • Simulatorversioner för mobila plattformar.

Exempel för att behålla felsökningssymboler:

<PropertyGroup>
  <NoSymbolStrip>true</NoSymbolStrip>
</PropertyGroup>

OnDemandResourcesInitialInstallTags

En strängegenskap som anger de första installationstaggar för resurser på begäran.

OnDemandResourcesPrefetchOrder

En strängegenskap som anger förhämtningordningen för resurser på begäran.

OnDemandResourcesUrl

En strängegenskap som anger resurs-URL:en för resurser på begäran.

Optimera PNG-filer

En boolesk egenskap som anger om png-bilder ska optimeras.

Optimering av PNG-bilder beror på

Det här är en tilläggspunkt för bygget: en utvecklare kan lägga till alla målobjekt i den här egenskapen för att köra dessa målobjekt innan några png-bilder optimeras.

Exempel:

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

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

OptimeraEgenskapslistor

En boolesk egenskap som anger om egenskapslistor (plists) ska optimeras.

OptimeraEgenskapslistorBeroendeAv

Det här är en utökningspunkt för bygget: en utvecklare kan lägga till valfria mål i de här egenskapsvärdena för att utföra dem innan några egenskapslistor (plists) optimeras.

Exempel:

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

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

PaketSigneringsNyckel

Anger kodsigneringsnyckeln för att signera paketet när du skapar .pkg för ett macOS- och Mac Catalyst-projekt.

Gäller endast för macOS- och Mac Catalyst-appar.

PackagingExtraArgs

Anger eventuella extra argument som ska skickas till verktyget "productbuild" när du skapar .pkg för ett macOS- och Mac Catalyst-projekt.

Gäller endast för macOS- och Mac Catalyst-appar.

PkgPackagePath

Anger sökvägen till den resulterande .pkg-filen när du skapar ett paket (se CreatePackage).

Gäller endast för macOS- och Mac Catalyst-appar.

PlutilPath

Den fullständiga sökvägen till kommandoradsverktyget plutil.

Standardbeteendet är att använda xcrun plutil.

PngCrushPath

Den fullständiga sökvägen till kommandoradsverktyget pngcrush.

Standardbeteendet är att använda xcrun pngcrush.

ProcessEnums

En boolesk egenskap som anger om uppräkningar ska bearbetas som en API-definition i bindningsprojekt.

ProductBuildPath

Den fullständiga sökvägen till verktyget productbuild.

Standardbeteendet är att använda xcrun productbuild.

Produktdefinition

Den produktdefinitionsmall (.plist) som ska användas när du skapar produktdefinitionen för att skicka till produktverktyget när du skapar paket (.pkg).

Gäller endast för macOS- och Mac Catalyst-appar.

ReferensInhemskSymbol

Objektgruppen ReferenceNativeSymbol kan användas för att ange hur vi ska hantera en viss intern symbol: antingen ignorera den eller be den interna länkaren att behålla den (genom att skicka symbolen som -u ... eller i en symbolfil till den interna länkaren).

Det finns två typer av metadata som stöds:

  • SymbolType: antingen ObjectiveCClass, Function eller Field. Används för att beräkna det fullständiga interna namnet på en symbol (till exempel är MyClassden interna symbolen för klassen _OBJC_CLASS_$_MyClass Objective-C , medan för en funktion MyFunction är det bara _MyFunction.
  • SymbolMode: antingen Ignore eller inte inställt. Ignore innebär att inte skicka den angivna symbolen till den inbyggda länkaren; standardinställningen är att göra det.

SymbolType krävs, medan SymbolMode inte gör det.

Exempelsymbol att behålla:

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

Exempelsymbol att ignorera:

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

KrävLänkMedAttributFörObjectiveCKlassSökning

Vi söker automatiskt igenom alla bibliotek efter hanterade klasser som mappar till befintliga Objective-C klasser och skapar sedan en intern referens vid byggtiden för dessa Objective-C klasser.

På så sätt tar den inbyggda länkaren inte bort dessa Objective-C klasser och tror att de inte används.

Detta kan dock orsaka problem om en hanterad klass refererar till en Objective-C klass som inte finns. Rätt korrigering för detta är att ta bort sådana hanterade klasser från bygget, men det kan vara besvärligt, särskilt om den hanterade klassen kommer från en binär referens (till exempel NuGet).

I dessa fall är det möjligt att ange egenskapen RequireLinkWithAttributeForObjectiveCClassSearch till true så att vi endast genomsöker bibliotek med [LinkWith] attributet för Objective-C klasser:

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

SdkIsSimulator

Den här egenskapen är en skrivskyddad egenskap (att ändra den har ingen effekt) som anger om vi bygger för en simulator eller inte.

Den anges först efter att importer och egenskaper har utvärderats. Det innebär att egenskapen inte har angetts när egenskaperna i projektfilen utvärderas, så detta fungerar inte :

<PropertyGroup>
  <EnableCodeSigning Condition="'$(SdkIsSimulator)' == 'true'">false</EnableCodeSigning>
</PropertyGroup>

Men något av följande fungerar:

<ItemGroup>
  <!-- item groups (and their conditions) are evaluated after properties have been evaluated -->
  <CustomEntitlements Condition="'$(SdkIsSimulator)' == 'true'" Include="com.apple.simulator-entitlement" Type="Boolean" Value="true" />
  <CodesignConfigureDependsOn>$(CodesignConfigureDependsOn);ConfigureSimulatorSigning</CodesignConfigureDependsOn>
</ItemGroup>
<!-- targets are executed after properties have been evaluated -->
<Target Name="ConfigureSimulatorSigning">
  <PropertyGroup>
    <EnableCodeSigning Condition="'$(SdkIsSimulator) == 'true'">false</EnableCodeSigning>
  </PropertyGroup>
</Target>

Obs! Den här egenskapen kommer alltid att finnas false på macOS och Mac Catalyst.

Hoppa över statisk biblioteksvalidering

Snabb omstart stöder inte länkning med statiska bibliotek, så som standard visas ett fel om projektet försöker länka till statiska bibliotek när du använder snabb omstart.

I vissa fall kan det dock vara användbart att ignorera sådana fel (till exempel om du testar en kodsökväg i appen som inte kräver det statiska biblioteket i fråga), så det är möjligt att ignorera dem.

Giltiga värden är:

  • "true", "disable": Inaktivera valideringen helt.
  • "false", "error", tom sträng: Aktivera valideringen (detta är standardinställningen)
  • "warn": Verifiera, men visa varningar i stället för fel.

Exempel:

<PropertyGroup>
  <SkipStaticLibraryValidation>warn</SkipStaticLibraryValidation>
</PropertyGroup>

Detta visar varningar i stället för fel om projektet försöker länka till ett statiskt bibliotek.

StripPath

Den fullständiga sökvägen till kommandoradsverktyget strip.

Standardbeteendet är att använda xcrun strip.

Stöd förOSPlatformVersion

Anger den lägsta operativsystemversion som appen kan köras på.

Du kan också använda en plattformsspecifik egenskap:

TrimMode

Anger trimningskornigheten.

De giltiga alternativen är:

  • full: Trimma varje komponent.
  • partial: Trimma sammansättningar som har valt att delta i trimning.
  • copy: Trimma inga sammansättningar.

Mer information om egenskapen finns i TrimMode.

Anmärkning

Av tekniska skäl måste trimmern köras för alla projekt för iOS, tvOS, macOS och Mac Catalyst, även om inga sammansättningar ska trimmas. Därför är det inte giltigt att inaktivera trimning genom att ange PublishTrimmed – för att inaktivera trimning ska du istället använda false (ett byggfel kommer att genereras om TrimMode=copy anges till PublishTrimmed).

Egenskapen TrimMode motsvarar de befintliga egenskaperna MtouchLink (för iOS, tvOS och Mac Catalyst) och LinkMode (för macOS), men de giltiga egenskapsvärdena skiljer sig (även om semantiken är densamma):

MtouchLink/LinkMode TrimMode
Fullständig fullständig
SdkOnly partiell
Ingen kopia

Egenskaperna MtouchLink och LinkMode kommer att vara inaktuella framöver, vänligen använd TrimMode i stället.

Standardinställningen för trimning beror på flera faktorer och kan också ändras i framtiden.

De aktuella standardvärdena (från och med .NET 9) är:

  • iOS och iOS: partial när du bygger för enheten, copy när du bygger för simulatorn.
  • macOS: alltid copy.
  • Mac Catalyst: partial när du bygger för "Release"-konfigurationen, annars copy.

Undantag:

  • Standardvärdet är alltid full när du skapar med NativeAOT.
  • MAUI ändrar standardvärdet till copy när du skapar för konfigurationen Debugoch tolken aktiveras med UseInterpreter (som MAUI också aktiverar som standard när du använder konfigurationen "Debug").

Anmärkning

Standardinställningen för trimning kan ändras i framtiden.

tvOSMinimiversion

Anger den lägsta tvOS-version som appen kan köras på.

Gäller för tvOS; om du anger det här värdet anges SupportedOSPlatformVersion för tvOS-projekt (endast).

UseHardenedRuntime

En boolesk egenskap som anger om en säker runtime-miljö är aktiverad.

Gäller för macOS- och Mac Catalyst-projekt.

UseInterpreter

Aktiverar tolken (för alla sammansättningar).

Detta motsvarar inställningen MtouchInterpreter=all.

Gäller för appar för iOS, tvOS och Mac Catalyst (när de inte använder NativeAOT).

Standardbeteendet är att inte aktivera tolken.

Anmärkning

MAUI ändrar standardinställningen genom att ange UseInterpreter=true för konfigurationen "Debug" .

Mer information finns i MtouchInterpreter .

UseNativeHttpHandler

Om den inbyggda HTTP-hanteraren ska vara http-standardhanteraren eller inte.

Standard: sant för alla plattformar utom macOS.

Verifiera Rättigheter

Välj om appens begärda rättigheter ska valideras.

Giltiga värden för den här egenskapen:

  • disable: Valideringen är inaktiverad.
  • warn: Eventuella valideringsfel visas som varningar.
  • error: Eventuella valideringsfel visas som fel. Det här är standardinställningen.

Valideringsprocessen kanske inte validerar alla förmåner och det finns ingen garanti för att den inte agerar överentusiastiskt.

Om verifieringen misslyckas för berättiganden som faktiskt fungerar kan du ange ett nytt problem.

ValidateXcodeVersion

Välj om den aktuella Xcode-versionen ska verifieras.

Standardvärdet är att verifiera; ställ in false för att inaktivera.

Anmärkning

Att använda en annan version än den rekommenderade versionen kommer sannolikt att skapa problem senare i byggprocessen.

XamMacResourcePrefix

Katalogen där resurser lagras (det här prefixet tas bort när resurser kopieras till apppaketet).

Gäller för macOS-projekt.

Överväg att använda den enhetliga egenskapen AppBundleResourcePrefix i stället.

Se även IPhoneResourcePrefix och MonoMacResourcePrefix.

ZipPath

Den fullständiga sökvägen till kommandoradsverktyget zip.

Standardbeteendet är att använda xcrun zip.