Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Build-Elemente steuern, wie .NET-Anwendungen oder -Bibliotheksprojekte für iOS, Mac Catalyst, macOS und tvOS erstellt werden.
ZusätzlicheApp-Erweiterungen
Eine Elementgruppe, die beliebige zusätzliche App-Erweiterungen enthält, die in das App-Paket kopiert werden sollen.
Die folgenden Metadaten können festgelegt werden:
- Einschließen: Der Pfad zum Build-Verzeichnis für das Xcode-App-Erweiterungsprojekt.
- Name: Der Name der Erweiterung.
- BuildOutput: Dieser Wert wird an den
IncludeWert angefügt, um den Speicherort des appex-Bündels zu erzeugen. In der Regel platziert Xcode Simulator- und Geräte-Builds an verschiedenen Orten, sodass dies verwendet werden kann, um einen einzigenAdditionalAppExtensionsEintrag zu haben, der auf zwei verschiedene Appex-Bundles verweist, je nachdem, ob es sich um ein Gebäude für den Simulator oder das Gerät handelt. - CodesignEntitlements: Gibt die Berechtigungen an, die beim Signieren der App-Erweiterung verwendet werden sollen. Der Standardwert ist "%(Name).Entitlements" im "Include"-Buildverzeichnis (sofern diese Datei vorhanden ist).
- CodesignWarnIfNoEntitlements: Es wird ein Verweis angezeigt, wenn kein Wert
CodesignEntitlementsgesetzt ist. Diese Eigenschaft kann auffalsefestgelegt werden, um diese Warnung zu unterdrücken.
Beispiel:
<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>
Hier finden Sie eine Beispiellösung: TestApplication.
AlternateAppIcon
Die AlternateAppIcon Elementgruppe kann verwendet werden, um alternative App-Symbole anzugeben.
Die Include-Metadaten müssen auf den Dateinamen einer .appiconset-Bildressource (für iOS, macOS und Mac Catalyst) oder einer .imagestack-Bildressource (für tvOS) innerhalb eines Asset-Katalogs verweisen.
Beispiel:
<ItemGroup>
<!-- The value to put in here for the "Resources/MyImages.xcassets/MyAlternateAppIcon.appiconset" resource would be "MyAlternateAppIcon" -->
<AlternateAppIcon Include="MyAlternateAppIcon" />
</ItemGroup>
Siehe auch:
- Die eigenschaft AppIcon.
- Die IncludeAllAppIcons-Eigenschaft.
Atlastextur
Eine Elementgruppe, die Atlastexturen enthält.
BGenReferencePath
Die Liste der Assemblyreferenzen, die an das bgen-Tool (Bindungsgenerator) übergeben werden sollen.
In der Regel wird dies automatisch behandelt, indem Referenzen stattdessen als ProjectReference- oder PackageReference-Elemente hinzugefügt werden.
BundleResource
Dateien, die in das App-Bündel kopiert werden sollen.
Siehe auch:
CodesignBundle
Zusätzliche Pakete innerhalb der abschließenden App, die signiert werden sollen.
Der Zweck besteht darin, die Signierung in der App auf alle anderen Pakete zu erweitern, die manuell kopiert werden (z. B. über benutzerdefinierte MSBuild-Ziele während des Builds) und in das App-Paket aufgenommen werden.
Der einzuschließende Pfad ist der Pfad zum App-Bündel, das im Haupt-App-Bündel signiert werden soll, einschließlich des App-Bündelnamens selbst.
Beispiel:
<ItemGroup>
<CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app" />
</ItemGroup>
Es gibt mehrere Metadaten, die für das CodesignBundle Element festgelegt werden können, um den Signaturvorgang zu steuern.
- CodesignAllocate
- CodesignEntitlements
- CodesignExtraArgs
- CodesignKeychain-
- CodesignResourceRules
- CodesignSigningKey -
- CodesignUseHardenedRuntime
- CodesignUseSecureTimestamp
Beispiel:
<ItemGroup>
<CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app">
<CodesignEntitlements>path/to/Entitlements.plist</CodesignEntitlements>
</CodesignBundle>
</ItemGroup>
Wenn Metadaten nicht festgelegt sind, wird stattdessen die entsprechende Eigenschaft verwendet (zum Beispiel, wenn die CodesignSigningKey-Metadaten nicht festgelegt sind, wird der Wert der CodesignSigningKey-Eigenschaft verwendet).
Collada
Eine Objektgruppe, die Collada-Objekte enthält.
Inhalt
Ressourcen (Dateien), die in das App-Bündel kopiert werden sollen.
Sie werden im folgenden Verzeichnis im App-Bündel platziert:
- /Resources: iOS und tvOS
- /Contents/Resources: macOS und Mac Catalyst
Es ist möglich, die Link-Metadaten so festzulegen, dass sie einen Pfad relativ zum Zielverzeichnis angeben, um den Speicherort im App-Paket zu ändern.
Beispiel:
<ItemGroup>
<Content Include="Readme.txt" Link="Documentation/Readme.txt" />
</ItemGroup>
würde die Datei an folgendem Speicherort platzieren:
- /Ressourcen/Dokumentation/Readme.txt: iOS, tvOS
- /Contents/Resources/Documentation/Readme.txt: macOS, Mac Catalyst
Siehe auch:
CoreMLModel
Eine Elementgruppe, die CoreML-Modelle enthält.
Benutzerdefinierte Berechtigungen
Eine Elementgruppe, die benutzerdefinierte Berechtigungen enthält, die der App hinzugefügt werden sollen.
Diese Berechtigungen werden zuletzt verarbeitet und überschreiben alle anderen Berechtigungen, entweder aus der Datei, die mit der Eigenschaft CodesignEntitlements angegeben ist, oder aus dem verwendeten Bereitstellungsprofil (sofern vorhanden).
Dies ist das Format:
<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
Eine Artikelgruppe, die iTunes-Grafiken für IPAs enthält.
Gilt nur für iOS- und tvOS-Projekte.
iTunes-Metadaten
Gilt nur für iOS- und tvOS-Projekte.
ImageAsset
Eine Elementgruppe, die Bildmaterial enthält.
Schnittstellendefinition
Eine Elementgruppe, die Schnittstellendefinitionen (*.xib- oder *.storyboard-Dateien) enthält.
Linkbeschreibung
Zusätzliche XML-Dateien, die an den Trimmer übergeben werden sollen.
Dies entspricht der Einstellung TrimmerRootDescriptor.
LinkerArgument
Zusätzliche Argumente, die beim Kompilieren der Hauptanwendung für eine App oder App-Erweiterung an den systemeigenen Linkerld übergeben werden sollen.
Beispiel 1 (zum Verknüpfen mit dem AudioToolbox Framework):
<ItemGroup>
<LinkerArgument Include="-framework" />
<LinkerArgument Include="AudioToolbox" />
</ItemGroup>
Beispiel 2 (zum Verknüpfen mit einer benutzerdefinierten statischen Bibliothek):
<ItemGroup>
<LinkerArgument Include="$(MSBuildProjectDirectory)/libCustom.a" />
</ItemGroup>
Jedes Argument für den Linker ist ein separates LinkerArgument, und Argumente dürfen nicht in Anführungszeichen gesetzt werden.
Alle Argumente werden an den systemeigenen Linker in der Reihenfolge übergeben, in der sie der LinkerArgument Elementgruppe hinzugefügt werden, aber die genaue Position innerhalb aller Argumente, die an den systemeigenen Linker übergeben werden, ist nicht definiert.
Die systemeigene ausführbare Datei wird automatisch neu erstellt, wenn sich die Gruppe von LinkerArgument zwischen den Builds ändert, aber wenn ein LinkerArgument auf eine Datei verweist (z. B. eine statische Bibliothek) und diese Datei sich ändert, wird diese Änderung nicht erkannt und die systemeigene ausführbare Datei wird nicht automatisch neu erstellt.
Metall
Eine Elementgruppe, die Metallressourcen enthält.
ZusätzlicheLaufargumenteFürMlaunch
Eine Elementgruppe, die zusätzliche Argumente für das mlaunch Tool enthält, die zum Starten von Apps auf dem Gerät und im Simulator verwendet wird. Das mlaunch Tool gilt als internes Werkzeug, und das Verhalten kann sich jederzeit ändern.
Hinweis
Dies gilt nur beim Starten der App über die Befehlszeile (dotnet run oder dotnet build -t:Run), nicht beim Starten aus der IDE.
MlaunchEnvironmentVariables
Eine Elementgruppe, die Umgebungsvariablen enthält, die beim Starten der App entweder auf dem Gerät oder im Simulator festgelegt werden.
Hinweis
Dies gilt nur beim Starten der App über die Befehlszeile (dotnet run oder dotnet build -t:Run), nicht beim Starten aus der IDE.
NativeReference
Eine Elementgruppe, die systemeigene Verweise enthält, mit denen beim Erstellen der nativen ausführbaren Datei verknüpft oder verknüpft werden soll.
Objc-Bindungs-API-Definition
Eine Elementgruppe, die alle API-Definitionen für Bindungsprojekte auflistet.
ObjcBindingCoreSource
Eine Elementgruppe, die den gesamten Kernquellcode zum Binden von Projekten auflistet.
ObjCBindingNativeFramework
Eine Elementgruppe, die alle systemeigenen Frameworks auflistet, die in einem Bindungsprojekt enthalten sein sollten.
Diese Elementgruppe ist veraltet. Bitte verwenden Sie stattdessen NativeReference.
ObjcBindingNativeLibrary
Eine Elementgruppe, die alle nativen Bibliotheken auflistet, die in einem Binding-Projekt enthalten sein sollten.
Diese Elementgruppe ist veraltet. Bitte verwenden Sie stattdessen NativeReference.
Teil-App-Manifest
PartialAppManifest kann verwendet werden, um zusätzliche partielle App-Manifeste hinzuzufügen, die mit dem Haupt-App-Manifest (Info.plist) zusammengeführt werden.
Alle Werte in den partiellen App-Manifesten überschreiben Werte im Haupt-App-Manifest, es sei denn, die Overwrite Metadaten werden auf falsefestgelegt.
Wenn derselbe Wert in mehreren partiellen App-Manifesten angegeben wird, ist nicht bestimmt, welcher verwendet wird.
<ItemGroup>
<PartialAppManifest Include="my-partial-manifest.plist" Overwrite="false" />
</ItemGroup>
Wenn der Entwickler ein Ziel ausführen muss, um zu berechnen, was der PartialAppManifest Elementgruppe hinzugefügt werden soll, ist es möglich, sicherzustellen, dass dieses Ziel ausgeführt wird, bevor die PartialAppManifest Elemente ausgeführt werden, indem sie der eigenschaft CollectAppManifestsDependsOn hinzugefügt werden:
<PropertyGroup>
<CollectAppManifestsDependsOn>
AddPartialAppManifests;
$(CollectAppManifestsDependsOn);
</CollectAppManifestsDependsOn>
</PropertyGroup>
<Target Name="AddPartialAppManifests">
<ItemGroup>
<PartialAppManifest Include="MyPartialAppManifest.plist" />
</ItemGroup>
</Target>
SkipCodesignItems
Eine Elementgruppe, die Dateien oder Verzeichnisse im App-Bündel angibt, die nicht signiert werden sollen.
Der Zweck besteht darin, das Signieren von Dateien und Verzeichnissen auszuschließen, die manuell (z. B. über benutzerdefinierte MSBuild-Ziele in der Projektdatei) in das App-Bündel kopiert werden und die bereits signiert sind.
Der einzuschließende Pfad ist der Pfad zur Datei oder zum Verzeichnis relativ zum Stammverzeichnis des App-Pakets.
Beispiel:
<ItemGroup>
<SkipCodesignItems Include="Contents/SharedSupport/mysignedlibrary.dylib" />
</ItemGroup>
Gilt für alle Plattformen.
XcodeProject
<XcodeProject> kann verwendet werden, um die Ausgaben von Xcode-Framework-Projekten zu erzeugen und zu nutzen, die in Xcode oder anderswo erstellt wurden.
Die Include Metadaten sollten auf den Pfad der zu erstellenden XCODEPROJ-Datei verweisen.
<ItemGroup>
<XcodeProject Include="path/to/MyProject.xcodeproj" SchemeName="MyLibrary" />
</ItemGroup>
Die folgenden MSBuild-Metadaten werden unterstützt:
%(SchemeName): Der Name des Build-Schemas oder Ziels, das zum Erstellen des Projekts verwendet werden soll.%(Configuration): Der Name der Konfiguration, die zum Erstellen des Projekts verwendet werden soll. Der Standardwert istRelease.%(CreateNativeReference): Die XCFRAMEWORK-Ausgabedateien werden dem Projekt als@(NativeReference)hinzugefügt. Metadaten, die von@(NativeReference)wie%(Kind),%(Frameworks)oder%(SmartLink)unterstützt werden, werden weitergeleitet, wenn sie festgelegt sind. Der Standardwert isttrue.%(OutputPath): Kann so festgelegt werden, dass der XCARCHIVE- und XCFRAMEWORK-Ausgabepfad des Xcode-Projekts außer Kraft gesetzt wird. Der Standardwert ist$(IntermediateOutputPath)xcode/{SchemeName}-{Hash}.
Diese Buildaktion wurde in .NET 9 eingeführt.