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:
- La proprietà AppIcon.
- Proprietà IncludeAllAppIcons.
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:
- CodesignAllocate
- CodiciFirmareImprese
- CodesignExtraArgs
- CodesignKeychain
- CodesignResourceRules
- CodesignSigningKey
- CodesignUseHardenedRuntime
- CodesignUseSecureTimestamp
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.