Udostępnij za pośrednictwem


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ż:

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:

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

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

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