次の方法で共有


iOS、Mac Catalyst、macOS、および tvOS 用の項目をビルドする

ビルド項目は、iOS、Mac Catalyst、macOS、および tvOS アプリケーションまたはライブラリ プロジェクト用の .NET のビルド方法を制御します。

追加アプリ拡張機能

アプリ バンドルにコピーする追加のアプリ拡張機能を含む項目グループ。

次のメタデータを設定できます。

  • 含める: Xcode アプリ拡張機能プロジェクトのビルド ディレクトリへのパス。
  • 名前: 拡張機能の名前。
  • BuildOutput: この値は、appex バンドルの場所を生成するために、 Include 値に追加されます。 通常、Xcode ではシミュレータービルドとデバイスビルドが異なる場所に配置されるため、シミュレーターまたはデバイスのビルドに応じて、2 つの異なる appex バンドルを指す単一の AdditionalAppExtensions エントリを持つことができます。
  • CodesignEntitlements: アプリ拡張機能に署名するときに使用する権利を指定します。 既定値は、'Include' ビルド ディレクトリの '%(Name).entitlements' です (このファイルが存在する場合)。
  • CodesignWarnIfNoEntitlements: CodesignEntitlements 値が設定されていない場合、警告が生成されます。 このプロパティを false に設定して、この警告を無音にすることができます。

例:

<ItemGroup>
    <AdditionalAppExtensions Include="path/to/my.appex">
        <Name>MyAppExtensionName</Name>
        <BuildOutput Condition="'$(SdkIsSimulator)' == 'false'">DerivedData/MyAppExtensionName/Build/Products/Debug-iphoneos</BuildOutput>
        <BuildOutput Condition="'$(SdkIsSimulator)' == 'true'">DerivedData/MyAppExtensionName/Build/Products/Debug-iphonesimulator</BuildOutput>
        <CodesignEntitlements>path/to/Entitlements-appextension.plist</CodesignEntitlements>
        <CodesignWarnIfNoEntitlements>false</CodesignWarnIfNoEntitlements>
    </AdditionalAppExtensions>
</ItemGroup>

ソリューションの例については、 TestApplication を参照してください。

代替アプリアイコン

AlternateAppIcon 項目グループを使用して、代替アプリ アイコンを指定できます。

Include メタデータは、資産カタログ内の .appiconset (iOS、macOS、Mac Catalyst の場合) または .imagestack (tvOS の場合) イメージ リソースのファイル名を指す必要があります。

例:

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

次も参照してください。

AtlasTexture

Atlas テクスチャを含む項目グループ。

BGenReferencePath

bgen ツール (バインディング ジェネレーター) に渡すアセンブリ参照の一覧。

通常、これは参照を ProjectReference または PackageReference 項目として追加することによって自動的に処理されます。

BundleResource

アプリ バンドルにコピーするファイル。

次も参照してください。

CodesignBundle

署名する必要がある最終的なアプリ内の追加バンドル。

目的は、カスタム MSBuild ターゲットを用いてビルド中に手動でコピーされる他のバンドルも含めて、アプリバンドルに署名することです。

含めるパスは、アプリ バンドル名自体を含め、メイン アプリ バンドル内で署名するアプリ バンドルへのパスです。

例:

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

署名の実行方法を指示するために、CodesignBundle 項目に設定できるメタデータがいくつかあります。

例:

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

設定されていないメタデータでは、代わりに対応するプロパティが使用されます (たとえば、CodesignSigningKey メタデータが設定されていない場合は、CodesignSigningKey プロパティの値が代わりに使用されます)。

Collada

collada アセットを含む項目グループ。

コンテンツ

アプリ バンドルにコピーするリソース (ファイル)。

これらは、アプリ バンドル内の次のディレクトリに配置されます。

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

Link メタデータをターゲット ディレクトリからの相対パスに設定して、アプリ バンドル内の場所を変更できます。

例:

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

は、ファイルを次の場所に配置します。

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

次も参照してください。

CoreMLModel

CoreML モデルを含む項目グループ。

カスタム特権設定

アプリに追加するカスタムエンタイトルメントを含むアイテム グループ。

これらのエンタイトルメントは最後に処理され、CodesignEntitlements プロパティで指定されたファイル、または使用中のプロビジョニング プロファイル (存在する場合) から、他のすべての権利をオーバーライドします。

これは次の形式です。

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

iTunesアートワーク

IPA 用の iTunes アートワークを含む項目グループ。

iOS および tvOS プロジェクトにのみ適用されます。

iTunesメタデータ

iOS および tvOS プロジェクトにのみ適用されます。

ImageAsset

イメージ アセットを含む項目グループ。

インターフェース定義

インターフェイス定義 (*.xib または *.storyboard ファイル) を含む項目グループ。

リンクの説明

トリマーに渡す追加の XML ファイル。

これは、TrimmerRootDescriptor設定と同じです。

メタル

金属アセットを含むアイテム グループ。

MlaunchAdditionalArguments

デバイスとシミュレーターでアプリを起動するために使用される、 mlaunch ツールへの追加の引数を含む項目グループ。 mlaunch ツールは内部ツールと見なされ、動作はいつでも変更される可能性があります。

これは、IDE から起動する場合ではなく、コマンド ライン (dotnet run または dotnet build -t:Run) からアプリを起動する場合にのみ適用されます。

Mlaunch環境変数

デバイスまたはシミュレーターで、アプリの起動時に設定される環境変数を含む項目グループ。

これは、IDE から起動する場合ではなく、コマンド ライン (dotnet run または dotnet build -t:Run) からアプリを起動する場合にのみ適用されます。

NativeReference

ネイティブ実行可能ファイルをビルドする際にリンクされる、またはリンクに含まれるべきネイティブ参照を含む項目グループ。

ObjcBindingApiDefinition(オブジェクティブCバインディングAPI定義)

バインド プロジェクトのすべての API 定義を一覧表示する項目グループ。

オブジェクト・バインディング・コア・ソース

バインド プロジェクトのすべてのコア ソース コードを一覧表示する項目グループ。

ObjC バインディング ネイティブ フレームワーク

バインド プロジェクトに含める必要があるすべてのネイティブ フレームワークを一覧表示する項目グループ。

この項目グループは非推奨です。代わりに NativeReference 使用してください。

ObjcBindingNativeLibrary

バインド プロジェクトに含める必要があるすべてのネイティブ ライブラリを一覧表示する項目グループ。

この項目グループは非推奨です。代わりに NativeReference 使用してください。

パーシャルアプリマニフェスト

PartialAppManifest を使用して、メイン アプリ マニフェスト (Info.plist) とマージされる部分的なアプリ マニフェストを追加できます。

部分アプリ マニフェスト内の値は、Overwrite メタデータが falseに設定されていない限り、メイン アプリ マニフェストの値をオーバーライドします。

複数の部分的なアプリ マニフェストで同じ値が指定されている場合、どの値が使用されるかが明らかにされません。

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

開発者がターゲットを実行して、PartialAppManifest 項目グループに追加するものを計算する必要がある場合は、PartialAppManifest プロパティに追加することで、CollectAppManifestsDependsOn 項目が処理される前にこのターゲットが実行されるようにすることができます。

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

XcodeProject

<XcodeProject> を使用して、Xcode または elsewehere で作成された Xcode フレームワーク プロジェクトの出力をビルドして使用できます。

Include メタデータは、ビルドする XCODEPROJ ファイルのパスを指している必要があります。

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

次の MSBuild メタデータがサポートされています。

  • %(SchemeName): プロジェクトのビルドに使用するビルド スキームまたはターゲットの名前。

  • %(Configuration): プロジェクトのビルドに使用する構成の名前。 既定値は Releaseです。

  • %(CreateNativeReference): 出力 XCFRAMEWORK ファイルがプロジェクトに @(NativeReference) として追加されます。 @(NativeReference)%(Kind)%(Frameworks) などの %(SmartLink) でサポートされるメタデータは、設定されている場合に転送されます。 既定値は trueです。

  • %(OutputPath): Xcode プロジェクトの XCARCHIVE および XCFRAMEWORK 出力パスをオーバーライドするように設定できます。 既定値は $(IntermediateOutputPath)xcode/{SchemeName}-{Hash}です。

このビルド アクションは.NET 9 で導入されました。