次の方法で共有


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

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

追加アプリ拡張機能

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

代替アプリアイコン

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、watchOS
  • /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>

ITunesArtwork

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

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

iTunesメタデータ

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

ImageAsset

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

インターフェース定義

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

リンクの説明

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

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

メタル

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

NativeReference

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

ObjcBindingApiDefinition

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

ObjcBindingCoreSource

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

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

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

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

ObjcBindingNativeLibrary

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

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

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

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

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

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

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

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

<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) として追加されます。 %(Kind)%(Frameworks)%(SmartLink) などの @(NativeReference) でサポートされるメタデータは、設定されている場合に転送されます。 既定値は trueです。

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

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