Condividi tramite


Creare elementi per iOS, Mac Catalyst, macOS e tvOS

Gli elementi di compilazione controllano come vengono compilati i progetti di applicazioni o librerie .NET per iOS, Mac Catalyst, macOS e tvOS.

AdditionalAppExtensions

Gruppo di elementi che contiene eventuali estensioni dell'app aggiuntive da copiare nel bundle dell'app.

AlternateAppIcon

Il gruppo di elementi AlternateAppIcon può essere usato per specificare icone dell'app alternative.

I metadati Include devono puntare al nome del file di una risorsa immagine .appiconset (per iOS, macOS e Mac Catalyst) o .imagestack (per tvOS) all'interno di un catalogo delle risorse.

Esempio:

<ItemGroup>
    <!-- The value to put in here for the "Resources/MyImages.xcassets/MyAlternateAppIcon.appiconset" resource would be "MyAlternateAppIcon" -->
    <AlternateAppIcon Include="MyAlternateAppIcon" />
</ItemGroup>

Vedere anche:

AtlasTexture

Gruppo di elementi che contiene texture di atlante.

BGenReferencePath

Elenco di riferimenti di assembly da passare allo strumento bgen (generatore di vincoli).

In genere, questo viene gestito automaticamente aggiungendo invece riferimenti come elementi ProjectReference o PackageReference.

BundleResource

File da copiare nel bundle dell'app.

Vedere anche:

CodesignBundle

Pacchetti aggiuntivi all'interno dell'app finale che devono essere firmati.

Lo scopo è includere nella firma dell'app qualsiasi altro bundle copiato manualmente (ad esempio tramite obiettivi personalizzati di MSBuild durante la build) nel bundle dell'app.

Il percorso da includere è il percorso del bundle dell'app da firmare all'interno del bundle principale dell'app, incluso il nome del bundle dell'app stesso.

Esempio:

<ItemGroup>
    <CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app" />
</ItemGroup>

Esistono diversi metadati che possono essere impostati nell'elemento CodesignBundle per indirizzare la modalità di firma:

Esempio:

<ItemGroup>
    <CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app">
        <CodesignEntitlements>path/to/Entitlements.plist</CodesignEntitlements>
    </CodesignBundle>
</ItemGroup>

Tutti i metadati non impostati useranno invece la proprietà corrispondente, ad esempio se i metadati CodesignSigningKey non sono impostati, verrà invece usato il valore della proprietà CodesignSigningKey.

Collada

Gruppo di elementi che contiene asset "collada".

Contenuto

Risorse (file) da copiare nel bundle dell'app.

Verranno inseriti nella seguente directory all'interno del bundle dell'app:

  • /Resources: iOS e tvOS
  • /Contents/Resources: macOS e Mac Catalyst

È possibile impostare i metadati Link su un percorso relativo alla directory di destinazione per modificare la posizione all'interno del bundle dell'app.

Esempio:

<ItemGroup>
    <Content Include="Readme.txt" Link="Documentation/Readme.txt" />
</ItemGroup>

posizionerebbe il file nella posizione seguente

  • /Resources/Documentation/Readme.txt: iOS, tvOS, watchOS
  • /Contents/Resources/Documentation/Readme.txt: macOS, Mac Catalyst

Vedere anche:

CoreMLModel

Gruppo di elementi che contiene modelli CoreML.

AutorizzazioniPersonalizzate

Gruppo di elementi che contiene diritti personalizzati da aggiungere all'app.

Questi diritti vengono elaborati per ultimo e sostituiranno qualsiasi altro diritto, dal file specificato con la proprietà CodesignEntitlements o dal profilo di provisioning in uso (se presente).

Questo è il formato:

<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

Gruppo di elementi che contiene immagini di iTunes per ipA.

Applicabile solo ai progetti iOS e tvOS.

ITunesMetadata

Applicabile solo ai progetti iOS e tvOS.

ImageAsset

Gruppo di elementi che contiene risorse di immagini.

DefinizioneInterfaccia

Gruppo di elementi che contiene definizioni di interfaccia (file *.xib o *.storyboard).

Descrizione del Link

File XML aggiuntivi da fornire al trimmer.

Equivale all'impostazione di TrimmerRootDescriptor.

Metallo

Gruppo di elementi che contiene asset di metallo.

NativeReference

Gruppo di elementi che contiene eventuali riferimenti nativi da collegare o con cui collegare durante la costruzione dell'eseguibile nativo.

ObjcBindingApiDefinition

Gruppo di elementi che elenca tutte le definizioni API per i progetti di associazione.

ObjcBindingCoreSource

Gruppo di elementi che elenca tutto il codice sorgente principale per i progetti di collegamento.

ObjCBindingNativeFramework

Gruppo di elementi che elenca tutti i framework nativi che devono essere inclusi in un progetto di binding.

Questo gruppo di elementi è deprecato, usare NativeReference.

ObjcBindingNativeLibrary

Gruppo di elementi che elenca tutte le librerie native che devono essere incluse in un progetto di associazione.

Questo gruppo di elementi è deprecato, utilizzare nativeReference.

PartialAppManifest

PartialAppManifest può essere usato per aggiungere altri manifesti parziali dell'app che verranno uniti al manifesto principale dell'app (Info.plist).

Qualsiasi valore contenuto nei manifest parziali dell'app sovrascriverà i valori nel manifest principale dell'app, a meno che i metadati Overwrite non siano impostati su false.

Se lo stesso valore viene specificato in più manifesti parziali dell'app, non è determinato quale sarà quello usato.

<ItemGroup>
    <PartialAppManifest Include="my-partial-manifest.plist" Overwrite="false" />
</ItemGroup>

Se lo sviluppatore deve eseguire una destinazione per calcolare gli elementi da aggiungere al gruppo di elementi PartialAppManifest, è possibile assicurarsi che questa destinazione venga eseguita prima che gli elementi PartialAppManifest vengano elaborati aggiungendolo alla proprietà CollectAppManifestsDependsOn:

<PropertyGroup>
    <CollectAppManifestsDependsOn>
        AddPartialAppManifests;
        $(CollectAppManifestsDependsOn);
    </CollectAppManifestsDependsOn>
</PropertyGroup>
<Target Name="AddPartialAppManifests">
    <ItemGroup>
        <PartialAppManifest Include="MyPartialAppManifest.plist" />
    </ItemGroup>
</Target>

XcodeProject

<XcodeProject> può essere utilizzato per creare e utilizzare gli output dei progetti di framework Xcode creati in Xcode o altrove.

I metadati Include devono puntare al percorso del file XCODEPROJ da compilare.

<ItemGroup>
  <XcodeProject Include="path/to/MyProject.xcodeproj" SchemeName="MyLibrary" />
</ItemGroup>

Sono supportati i metadati MSBuild seguenti:

  • %(SchemeName): Il nome dello schema di compilazione o dell'obiettivo da utilizzare per compilare il progetto.

  • %(Configuration): nome della configurazione da usare per compilare il progetto. Il valore predefinito è Release.

  • %(CreateNativeReference): i file XCFRAMEWORK di output verranno aggiunti come @(NativeReference) al progetto. I metadati supportati da @(NativeReference) come %(Kind), %(Frameworks)o %(SmartLink) verranno inoltrati se impostati. Il valore predefinito è true.

  • %(OutputPath): Può essere impostato per modificare il percorso di output XCARCHIVE e XCFRAMEWORK del progetto Xcode. Il valore predefinito è $(IntermediateOutputPath)xcode/{SchemeName}-{Hash}.

Questa azione di compilazione è stata introdotta in .NET 9.