Delen via


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:

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:

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 is Release.

  • %(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 is true.

  • %(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.