Items bouwen voor iOS, Mac Catalyst, macOS en tvOS
Bouwitems bepalen hoe .NET voor iOS-, Mac Catalyst-, macOS- en tvOS-toepassingen of -bibliotheekprojecten worden gebouwd.
AdditionalAppExtensions
Een itemgroep met eventuele extra app-extensies die u naar de app-bundel kunt kopiëren.
AlternatieveAppIcon
De AlternateAppIcon
itemgroep kan worden gebruikt om alternatieve app-pictogrammen op te geven.
De Include
metagegevens moeten verwijzen naar de bestandsnaam van een .appiconset
(voor iOS, macOS en Mac Catalyst) of .imagestack
(voor tvOS) afbeeldingsresource in een assetcatalogus.
Voorbeeld:
<ItemGroup>
<!-- The value to put in here for the "Resources/MyImages.xcassets/MyAlternateAppIcon.appiconset" resource would be "MyAlternateAppIcon" -->
<AlternateAppIcon Include="MyAlternateAppIcon" />
</ItemGroup>
Zie ook:
- De eigenschap AppIcon.
- De eigenschap IncludeAllAppIcons.
AtlasTexture
Een itemgroep die atlastextuur bevat.
BGenReferencePath
De lijst met assemblyverwijzingen die moeten worden doorgegeven aan het hulpprogramma bgen
(bindinggenerator).
Meestal wordt dit automatisch afgehandeld door referenties toe te voegen als ProjectReference
- of PackageReference
-items.
BundleResource
Bestanden die moeten worden gekopieerd naar de app-bundel.
Zie ook:
CodesignBundle
Extra pakketten in de uiteindelijke app die moeten worden ondertekend.
Het doel is om in de appsigning alle andere bundels op te nemen die handmatig worden gekopieerd (bijvoorbeeld via aangepaste MSBuild-doelen tijdens het bouwproces) naar de app-bundel.
Het pad dat moet worden opgenomen, is het pad naar de app-bundel om u aan te melden in de hoofd-app-bundel, inclusief de naam van de app-bundel zelf.
Voorbeeld:
<ItemGroup>
<CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app" />
</ItemGroup>
Er zijn verschillende stukjes metagegevens die kunnen worden ingesteld op het CodesignBundle
item om te bepalen hoe ondertekening plaatsvindt:
- CodesignAllocate
- CodesignEntitlements
- CodesignExtraArgs-
- CodesignKeychain
- CodesignResourceRules
- CodesignSigningKey
- CodesignUseHardenedRuntime
- CodesignUseSecureTimestamp
Voorbeeld:
<ItemGroup>
<CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app">
<CodesignEntitlements>path/to/Entitlements.plist</CodesignEntitlements>
</CodesignBundle>
</ItemGroup>
Alle metagegevens die niet zijn ingesteld, gebruiken in plaats daarvan de bijbehorende eigenschap (bijvoorbeeld als de CodesignSigningKey
metagegevens niet zijn ingesteld, wordt in plaats daarvan de waarde van de eigenschap CodesignSigningKey
gebruikt.)
Collada
Een itemgroep die collada-assets bevat.
Inhoud
Resources (bestanden) die moeten worden gekopieerd naar de app-bundel.
Ze worden in de volgende map in de app-bundel geplaatst:
- /Resources: iOS en tvOS
- /Contents/Resources: macOS en Mac Catalyst
Het is mogelijk om de Link
metagegevens in te stellen op een pad ten opzichte van de doelmap om de locatie binnen de app-bundel te veranderen.
Voorbeeld:
<ItemGroup>
<Content Include="Readme.txt" Link="Documentation/Readme.txt" />
</ItemGroup>
plaatst het bestand op de volgende locatie:
- /Resources/Documentatie/Readme.txt: iOS, tvOS, watchOS
- /Contents/Resources/Documentation/Readme.txt: macOS, Mac Catalyst
Zie ook:
CoreMLModel
Een itemgroep die CoreML-modellen bevat.
Aangepaste Toestemmingen
Een itemgroep die aangepaste rechten bevat die aan de app moeten worden toegevoegd.
Deze rechten worden als laatste verwerkt en overschrijven eventuele andere rechten, ofwel uit het bestand dat is opgegeven met de eigenschap CodesignEntitlements of van het inrichtingsprofiel dat wordt gebruikt (indien van toepassing).
Dit is de indeling:
<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
Een itemgroep met iTunes-illustraties voor IPA's.
Alleen van toepassing op iOS- en tvOS-projecten.
ITunesMetadata
Alleen van toepassing op iOS- en tvOS-projecten.
ImageAsset
Een itemgroep die afbeeldingsassets bevat.
Interface-definitie
Een itemgroep met interfacedefinities (*.xib- of *.storyboard-bestanden).
Koppelingsbeschrijving
Extra XML-bestanden die moeten worden doorgegeven aan de trimmer.
Dit is hetzelfde als het instellen van TrimmerRootDescriptor.
Metaal
Een itemgroep die metalen assets bevat.
NativeReference
Een itemgroep die systeemeigen verwijzingen bevat die moeten worden gekoppeld aan of gekoppeld bij het bouwen van het systeemeigen uitvoerbare bestand.
ObjcBindingApiDefinition
Een itemgroep met alle API-definities voor bindingsprojecten.
ObjcBindingCoreSource
Een itemgroep met alle kernbroncode voor bindingsprojecten.
ObjCBindingNativeFramework
Een itemgroep met alle systeemeigen frameworks die moeten worden opgenomen in een bindingsproject.
Deze itemgroep is afgeschaft. Gebruik in plaats daarvan NativeReference.
ObjcBindingNativeLibrary
Een itemgroep met alle systeemeigen bibliotheken die moeten worden opgenomen in een bindingsproject.
Deze itemgroep is afgeschaft. Gebruik in plaats daarvan NativeReference.
GedeeltelijkeAppManifest
PartialAppManifest
kan worden gebruikt om aanvullende gedeeltelijke app-manifesten toe te voegen die worden samengevoegd met het hoofd-app-manifest (Info.plist).
Waarden in de gedeeltelijke app-manifesten overschrijven waarden in het hoofd-app-manifest, tenzij de metagegevens van de Overwrite
zijn ingesteld op false
.
Als dezelfde waarde is opgegeven in meerdere gedeeltelijke app-manifesten, is deze niet bepaald welke waarde wordt gebruikt.
<ItemGroup>
<PartialAppManifest Include="my-partial-manifest.plist" Overwrite="false" />
</ItemGroup>
Als de ontwikkelaar een doel moet uitvoeren om te berekenen wat er moet worden toegevoegd aan de PartialAppManifest
itemgroep, is het mogelijk om ervoor te zorgen dat dit doel wordt uitgevoerd voordat de PartialAppManifest
items worden verwerkt door deze toe te voegen aan de eigenschap CollectAppManifestsDependsOn
:
<PropertyGroup>
<CollectAppManifestsDependsOn>
AddPartialAppManifests;
$(CollectAppManifestsDependsOn);
</CollectAppManifestsDependsOn>
</PropertyGroup>
<Target Name="AddPartialAppManifests">
<ItemGroup>
<PartialAppManifest Include="MyPartialAppManifest.plist" />
</ItemGroup>
</Target>
XcodeProject
<XcodeProject>
kan worden gebruikt voor het bouwen en gebruiken van de uitvoer van Xcode-frameworkprojecten die zijn gemaakt in Xcode of elsewehere.
De Include
metagegevens moeten verwijzen naar het pad van het XCODEPROJ-bestand dat moet worden gebouwd.
<ItemGroup>
<XcodeProject Include="path/to/MyProject.xcodeproj" SchemeName="MyLibrary" />
</ItemGroup>
De volgende MSBuild-metagegevens worden ondersteund:
%(SchemeName)
: de naam van het buildschema of doel dat moet worden gebruikt om het project te bouwen.%(Configuration)
: de naam van de configuratie die moet worden gebruikt om het project te bouwen. De standaardwaarde isRelease
.%(CreateNativeReference)
: XCFRAMEWORK-uitvoerbestanden worden als@(NativeReference)
aan het project toegevoegd. Metagegevens die worden ondersteund door@(NativeReference)
, zoals%(Kind)
,%(Frameworks)
of%(SmartLink)
, worden doorgestuurd indien ingesteld. De standaardwaarde istrue
.%(OutputPath)
: kan worden ingesteld om het XCARCHIVE- en XCFRAMEWORK-uitvoerpad van het Xcode-project te overschrijven. De standaardwaarde is$(IntermediateOutputPath)xcode/{SchemeName}-{Hash}
.
Deze buildactie is geïntroduceerd in .NET 9.