Tworzenie elementów dla systemów iOS, Mac Catalyst, macOS i tvOS
Elementy kompilacji kontrolują sposób tworzenia projektów aplikacji lub bibliotek platformy .NET dla systemów iOS, Mac Catalyst, macOS i tvOS.
DodatkoweRozszerzeniaAplikacji
Grupa elementów zawierająca wszelkie dodatkowe rozszerzenia aplikacji do skopiowania do pakietu aplikacji.
Alternatywna ikona aplikacji
Grupę elementów AlternateAppIcon
można użyć do określania alternatywnych ikon aplikacji.
Metadane Include
muszą wskazywać nazwę pliku .appiconset
(dla systemów iOS, macOS i Mac Catalyst) lub zasobu obrazu .imagestack
(w przypadku systemu tvOS) wewnątrz katalogu zasobów.
Przykład:
<ItemGroup>
<!-- The value to put in here for the "Resources/MyImages.xcassets/MyAlternateAppIcon.appiconset" resource would be "MyAlternateAppIcon" -->
<AlternateAppIcon Include="MyAlternateAppIcon" />
</ItemGroup>
Zobacz również:
- Właściwość AppIcon.
- Właściwość IncludeAllAppIcons.
AtlasTexture
Grupa elementów zawierająca tekstury atlasu.
BGenReferencePath
Lista odwołań do zestawów do przekazania do narzędzia bgen
(generator powiązań).
Zazwyczaj jest to obsługiwane automatycznie przez dodanie odwołań w postaci elementów ProjectReference
lub PackageReference
.
BundleResource
Pliki do skopiowania do pakietu aplikacji.
Zobacz również:
CodesignBundle
Dodatkowe pakiety wewnątrz ostatecznej aplikacji, które powinny być podpisane.
Celem jest włączenie do podpisywania aplikacji wszystkich innych pakietów, które są kopiowane ręcznie (na przykład poprzez niestandardowe cele MSBuild podczas kompilacji) do pakietu aplikacji.
Ścieżka, którą należy uwzględnić, to ścieżka do pakietu aplikacji, który ma zostać podpisany w ramach głównego pakietu aplikacji, łącznie z samą nazwą pakietu aplikacji.
Przykład:
<ItemGroup>
<CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app" />
</ItemGroup>
Istnieje kilka elementów metadanych, które można ustawić w elemencie CodesignBundle
w celu kierowania sposobu podpisywania:
- CodesignAllocate
- CodesignEntitlements
- CodesignExtraArgs
- CodesignKeychain
- CodesignResourceRules
- CodesignSigningKey
- CodesignUseHardenedRuntime
- CodesignUseSecureTimestamp
Przykład:
<ItemGroup>
<CodesignBundle Include="$(AssemblyName).app/Contents/SharedSupport/MyCustomBundle.app">
<CodesignEntitlements>path/to/Entitlements.plist</CodesignEntitlements>
</CodesignBundle>
</ItemGroup>
Wszystkie metadane, które nie są ustawione, będą używać odpowiedniej właściwości (na przykład jeśli metadane CodesignSigningKey
nie są ustawione, zamiast tego zostanie użyta wartość właściwości CodesignSigningKey
).
Collada
Grupa elementów zawierająca zasoby Collada.
Zawartość
Zasoby (pliki) do skopiowania do pakietu aplikacji.
Zostaną one umieszczone w następującym katalogu w pakiecie aplikacji:
- /Resources: iOS i tvOS
- /Contents/Resources: macOS i Mac Catalyst
Można ustawić metadane Link
na ścieżkę względem katalogu docelowego, aby zmienić lokalizację w pakiecie aplikacji.
Przykład:
<ItemGroup>
<Content Include="Readme.txt" Link="Documentation/Readme.txt" />
</ItemGroup>
umieści plik w następującej lokalizacji:
- /Resources/Documentation/Readme.txt: iOS, tvOS, watchOS
- /Contents/Resources/Documentation/Readme.txt: macOS, Mac Catalyst
Zobacz również:
CoreMLModel
Grupa elementów zawierająca modele CoreML.
Niestandardowe Uprawnienia
Grupa elementów zawierająca uprawnienia niestandardowe do dodania do aplikacji.
Te uprawnienia są przetwarzane ostatnio i zastąpią wszelkie inne uprawnienia z pliku określonego przy użyciu właściwości CodesignEntitlements lub z używanego profilu aprowizacji (jeśli istnieje).
Jest to 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
Grupa elementów zawierająca grafikę iTunes dla plików IPA.
Dotyczy tylko projektów systemów iOS i tvOS.
ITunesMetadata
Dotyczy tylko projektów systemów iOS i tvOS.
ImageAsset
Grupa elementów zawierająca zasoby obrazów.
InterfejsDefinicja
Grupa elementów zawierająca definicje interfejsu (pliki *.xib lub *.storyboard).
OpisLinku
Dodatkowe pliki XML, które mają być przekazywane do trymeru.
Jest to takie samo, jak ustawienie TrimmerRootDescriptor.
Metal
Grupa elementów zawierająca zasoby metalowe.
NativeReference
Grupa elementów zawierająca wszelkie odwołania natywne, które powinny być uwzględnione lub powiązane podczas tworzenia natywnego pliku wykonywalnego.
ObjcBindingApiDefinition
Grupa elementów zawierająca listę wszystkich definicji API dla projektów powiązaniowych.
ObjcBindingCoreSource
Grupa elementów zawierająca wszystkie podstawowe kody źródłowe dla projektów wiążących.
ObjCBindingNativeFramework
Grupa elementów zawierająca listę wszystkich natywnych frameworków, które powinny zostać uwzględnione w projekcie wiążącym.
Ta grupa elementów jest przestarzała, zamiast tego użyj NativeReference.
ObjcBindingNativeLibrary
Grupa elementów zawierająca listę wszystkich bibliotek natywnych, które powinny być uwzględnione w projekcie powiązania.
Ta grupa elementów jest przestarzała, zamiast tego użyj NativeReference.
PartialAppManifest
PartialAppManifest
można użyć do dodawania dodatkowych częściowych manifestów aplikacji, które zostaną scalone z głównym manifestem aplikacji (Info.plist).
Wszystkie wartości w częściowych manifestach aplikacji zastąpią wartości w manifeście głównej aplikacji, chyba że Overwrite
metadane są ustawione na wartość false
.
Jeśli ta sama wartość jest określona w wielu częściowych manifestach aplikacji, nie jest określona, która będzie używana.
<ItemGroup>
<PartialAppManifest Include="my-partial-manifest.plist" Overwrite="false" />
</ItemGroup>
Jeśli deweloper musi wykonać cel, aby obliczyć, co należy dodać do grupy elementów PartialAppManifest
, można upewnić się, że ten cel jest wykonany przed przetworzeniem elementów PartialAppManifest
, dodając go do właściwości CollectAppManifestsDependsOn
.
<PropertyGroup>
<CollectAppManifestsDependsOn>
AddPartialAppManifests;
$(CollectAppManifestsDependsOn);
</CollectAppManifestsDependsOn>
</PropertyGroup>
<Target Name="AddPartialAppManifests">
<ItemGroup>
<PartialAppManifest Include="MyPartialAppManifest.plist" />
</ItemGroup>
</Target>
XcodeProject
<XcodeProject>
można użyć do kompilowania i korzystania z danych wyjściowych projektów platformy Xcode utworzonych w środowisku Xcode lub elsewehere.
Metadane Include
powinny wskazywać ścieżkę pliku XCODEPROJ do skompilowania.
<ItemGroup>
<XcodeProject Include="path/to/MyProject.xcodeproj" SchemeName="MyLibrary" />
</ItemGroup>
Obsługiwane są następujące metadane MSBuild:
%(SchemeName)
: nazwa schematu kompilacji lub elementu docelowego, który ma być używany do kompilowania projektu.%(Configuration)
: nazwa konfiguracji, która ma być używana do kompilowania projektu. Wartość domyślna toRelease
.%(CreateNativeReference)
: wyjściowe pliki XCFRAMEWORK zostaną dodane jako@(NativeReference)
do projektu. Metadane obsługiwane przez@(NativeReference)
takie jak%(Kind)
,%(Frameworks)
lub%(SmartLink)
będą przekazywane w przypadku ustawienia. Wartość domyślna totrue
.%(OutputPath)
: można ustawić tak, aby zastąpić ścieżkę wyjściową XCARCHIVE i XCFRAMEWORK projektu Xcode. Wartość domyślna to$(IntermediateOutputPath)xcode/{SchemeName}-{Hash}
.
Ta akcja kompilacji została wprowadzona na platformie .NET 9.