> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# In-House App Library Item を構成する

> Iru Endpoint の In-House App Library Item を使用して、企業の社内向け iOS および iPadOS アプリを展開します。IPA ファイルをアップロードし、アプリの配布を管理します。

<Callout icon="apple" color="#B84A7A" iconType="regular">このガイドは iOS デバイスと iPadOS デバイスに適用されます</Callout>

### 社内アプリ

社内アプリは、組織内での内部使用を目的として設計された独自のアプリケーションです。Custom Apps を非公開にし、Apple App Store の審査プロセスを回避する必要がある場合に特に役立ちます。これらのアプリは通常、公開の配布チャネルを経由せずに、組織内のデバイスに直接配布されます。社内アプリの詳細については、[Apple のドキュメント](https://support.apple.com/guide/deployment/distribute-proprietary-in-house-apps-depce7cefc4d/web)を参照してください。

### 仕組み

社内アプリを使用すると、組織は Apple デバイスのフリート全体に Custom Apps を展開できます。Iru Endpoint を使用すると、In-House App Library Item を作成してこれらの展開を管理できます。アプリの .ipa ファイルを Iru Endpoint にアップロードすると、ファイルが処理され、アプリアイコン、バンドル ID、バージョン情報などの詳細が解析されます。Iru Endpoint はそれらの詳細を使用して、必要なマニフェストファイルを自動的に生成し、アプリを展開します。

### 要件

* アップロードするファイルは .ipa 形式である必要があります
* .ipa ファイルのサイズは 4GB を超えてはなりません
* アップロードするファイルのバンドルバージョンは、整数ベースのセマンティックバージョンである必要があります
* 社内アプリを更新する場合、新しくアップロードするファイルのバンドル ID は既存のバンドル ID と一致している必要があります
* 社内アプリを更新する場合、新しくアップロードするファイルのバンドルバージョンは以前のバージョンより大きい必要があります

<Note>
  In-House App Library Item は複製できません。
</Note>

### In-House App Library Item を追加して構成する

この Library Item を Iru Endpoint Library に追加するには、[Library の概要](/ja/endpoint/library/library-items-profiles/library-overview)の記事に記載されている手順に従ってください。

<Steps>
  <Step title="Library Item に名前を付ける">
    新しい In-House App Library Item に **名前** を付けます。
  </Step>

  <Step title="Blueprint に割り当てる">
    目的の [Blueprints](/ja/endpoint/getting-started/blueprints-and-library/configuring-blueprints) に割り当てます。
  </Step>

  <Step title="IPA ファイルをアップロードする">
    **Install Details** で、社内アプリの .ipa ファイルをアップロードします。
  </Step>

  <Step title="検証">
    アプリがアップロードされると、ファイルタイプ、バージョン、バンドル ID の有効性がチェックされます。

    <Frame>
      <img src="https://mintcdn.com/iru/gC7z0stQ_lsWmY64/assets/media/images/iru-in-house-app-upload-validation.png?fit=max&auto=format&n=gC7z0stQ_lsWmY64&q=85&s=68616f998550a32414c97585d57ce86d" alt="ファイルタイプ、バージョン、バンドル ID のチェックによるファイル検証プロセスを示す In-House App のアップロードインターフェイス" width="2114" height="924" data-path="assets/media/images/iru-in-house-app-upload-validation.png" />
    </Frame>
  </Step>
</Steps>

### 社内アプリの AppConfig

In-House App Library Item は、iOS、iPadOS、tvOS、visionOS の管理対象アプリ構成(AppConfig)をサポートしています。キーと値のペアの XML ディクショナリを貼り付けると、アプリの展開時にワイヤレスで構成されます。アプリ構成の編集内容は、割り当てられたすべてのデバイスに自動的に展開されます。

<Steps>
  <Step title="In-House App Library Item を開く">
    Library で、構成する In-House App を開きます。
  </Step>

  <Step title="アプリ構成を設定する">
    **Set app configuration** オプションを見つけて有効にします。キーと値のペアの AppConfig XML ディクショナリを貼り付けます。
  </Step>

  <Step title="保存する">
    **保存** を選択します。構成はアプリと一緒に展開され、変更すると更新されます。
  </Step>
</Steps>

AppConfig の形式と例の詳細については、[AppConfig の使用](/ja/endpoint/library/library-items-profiles/using-appconfig)を参照してください。

### 社内アプリを更新する

社内アプリの新しいバージョンを展開する準備ができたら、次の 2 つの推奨される方法があります。

#### Library 内の既存の社内アプリを更新する

* 現在の In-House App Library Item に新しいバージョンをアップロードします。これにより古いファイルが置き換えられ、その Library Item に割り当てられたすべてのデバイスに新しいインストールコマンドが自動的に送信されます。
* 新しいバージョンは以前のバージョンと同じ Bundle ID を持ち、バージョン番号は現在のバージョンより大きい必要があります。

#### 新しいバージョン用に新しい Library Item を作成する

* 他のデバイスを現在のバージョンのままにして、特定のデバイスグループに新しいバージョンを展開したい場合は、新しい In-House App Library Item を作成できます。
* このオプションでは、Assignment Maps の使用をお勧めします。

  * Blueprint または Assignment Map のノードには、Bundle ID(Apple が各アプリに要求する一意の識別子)ごとに 1 つの社内アプリしか含めることができないことに注意してください。ただし、異なる Assignment Map ノード間で同じ Bundle ID を使用できます。常に最も右のノードが優先されることを覚えておいてください。
* 整理しやすくするために、Library Item にアプリのバージョン番号を付けて名前を付けると、同じアプリの異なるバージョンを簡単に区別できます。

### アプリアイコンの解析に関する考慮事項

* In-House App Library Item に .ipa ファイルをアップロードすると、Iru Endpoint は Xcode によって生成された **Info.plist** ファイルからメタデータを解析します。このファイルには、メタデータやアイコン画像などの重要な情報が含まれています。Xcode によるこれらのアプリのビルド方法は、デベロッパの構成によって異なる場合があります。
* In-House Apps Library または Home Screen Layout Library Item で表示するための正しいアプリアイコンを Iru Endpoint が抽出できるように、アイコン画像ファイルは **.png** ファイルである必要があり、そのファイル名が **Info.plist** ファイルで直接参照されている必要があります。

たとえば、**Accuhive.ipa** テストアプリでは、**Info.plist** ファイルの **CFBundleIcons** キーは次のようになります。

```xml Info.plist lines theme={null}
<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>AppIcon60x60</string>
        </array>
        <key>CFBundleIconName</key>
        <string>AppIcon</string>
    </dict>
</dict>
```

この場合、Iru は **CFBundleIconFiles** キーを使用して、Library Item 内に表示するアプリアイコンを見つけて抽出します。

<Frame>
  <img src="https://mintcdn.com/iru/gC7z0stQ_lsWmY64/assets/media/images/iru-in-house-app-icon-display.png?fit=max&auto=format&n=gC7z0stQ_lsWmY64&q=85&s=dc7fbf24057106e21af64b9488fcb09b" alt="Info.plist の CFBundleIconFiles から抽出されたアプリアイコンを表示する In-House App Library Item" width="748" height="656" data-path="assets/media/images/iru-in-house-app-icon-display.png" />
</Frame>

<Note>
  **Info.plist** ファイルがアイコンファイルを参照していない場合、Iru は Library Item にアイコンを表示できません。ただし、これは Iru での表示にのみ影響します。アプリがデバイスにインストールされると、アプリ自体に組み込まれたアイコンが使用されます。
</Note>

### その他の考慮事項

* 社内アプリは [Iru API](/en/endpoint/api/iru-api-overview) を使用して管理できます。詳細については、[API ドキュメント](https://api-docs.kandji.io/#7468c0a8-7369-45cf-8f4b-0ef5725efc46)を参照してください。
* 使用できる .ipa アプリのバージョン形式は、整数ベースの X.Y.Z または X.Y です。X のみの形式や、文字または記号を含む形式などは使用できません。
* 保存すると、アプリはバージョンとバンドル ID の情報とともに表示されるため、展開の準備ができているアプリとバージョンを簡単に識別できます。Library Item の上部の詳細が更新され、この情報が反映されます。
* Blueprint または Assignment Map のノードには、Bundle ID(Apple がデバイス上の各アプリに要求する一意の識別子)ごとに 1 つの In-House App しか含めることができません。ただし、異なるノード間で同じ In-House App のバンドル ID を使用できます。すべての Assignment Map ノードと同様に、最も右のノードが優先されます。
