Version: 2019.1
パッケージにテストを追加する
アセンブリ定義とパッケージ

パッケージマニフェスト

Unity はパッケージ マニフェストファイル (package.json) を使用して、特定のパッケージの特定のバージョンに関する情報を管理します。パッケージマニフェストは常にパッケージのルートにあり、登録名とバージョン番号などのパッケージに関する重要な情報が含まれています。また、ユーザーと通信するための有用な情報を定義します。例えば、UI に表示されるユーザーにわかりやすい表示名、パッケージの簡単な説明、パッケージと互換性のある Unity の最も古いバージョンなどが含まれます。

パッケージマニフェストは JSON (JavaScript Object Notation) 構文を使用してパッケージに含まれるものを記述します。ファイル形式は npmpackage.json 形式に似ていますが、一部の属性には異なるセマンティクスを使用します。

Package Manager はこのマニフェストを読み取り、 パッケージの内容、 パッケージの解凍方法、Package Manager ウィンドウでユーザーに表示する情報を見つけます。マニフェストはこの情報を一連の必須必要オプションの属性として保存します。

必須の属性

これらの属性は必須です。これらが存在しない場合は、公開されたときにレジストリがパッケージを拒否するか、Package Manager がパッケージを見つけたりロードすることができません。

属性 JSON 型 説明
name 文字列 The officially registered package name. This name must conform to the Unity Package Manager naming convention, which uses reverse domain name notation.

The name must:
- Start with com.<company-name>.
- Have a length of 50 characters or less to appear in the Editor; otherwise, 214 characters or less.
- Contain only lowercase letters, digits, hyphens (-), underscores (_), and periods (.)
- To indicate nested namespaces, suffix the namespace with an additional period.

For example, com.unity.timeline is the name of the package that implements Timeline in Unity.

NOTE: This is a unique identifier, not the user-friendly name that appears in the list view on the Package Manager window.
version 文字列 The package version number (**’MAJOR.MINOR.PATCH“**). This value must respect semantic versioning. For more information, see Package version.

For example, ”3.2.1" indicates that this is the 3rd major release, the 2nd minor release, and the first patch.

必要な属性

These attributes are technically optional, and the Package Manager can still install them in a Projects even if they do not contain valid values or are missing. However, you should give these attributes values in order to make your package easily discoverable and provide package consumers with a better experience.

属性 JSON 型 説明
displayName 文字列 Unity エディター (例えば、Project ブラウザー、Package Manager ウィンドウなど) に表示されるユーザーに分かりやすい名前。

例えば、Unity TimelineProBuilderIn App Purchasing
description 文字列 パッケージの簡単な説明。これは、Package Manager ウィンドウの詳細ビューに表示されるテキストです。すべての UTF–8 文字コードがサポートされます。つまり、改行 (\n) や箇条書き (\u25AA) などの特殊な形式の文字コードを使用できます。
unity 文字列 パッケージが互換性を持つ最低の Unity バージョンを示します。これを設定しないと、パッケージはすべての Unity バージョンと互換性があると仮定されます。

書式は、“<メジャー>.<マイナー>” (例えば 2018.3)。特定のパッチを示すには、unityRelease 属性を使用します。

ノート: Unity に互換性がないパッケージは、Package Manager ウィンドウに表示されません。

オプションの属性

これらの属性はオプションであり、省略することができます。ただし、設定する場合は、有効な値である必要があります。

属性 JSON 型 説明
unityRelease 文字列 パッケージに互換性のある特定の Unity のリリースを示す Unity バージョンの一部。この属性は、更新されたパッケージが Unity のアルファ/ベータの開発サイクルで行われた変更を必要とする場合に使用できます (例えば、新しく導入された API が必要な場合や、API アップデーターのルールなしに後方互換性のない方法で変更された既存の API を使用している場合など)。

予想される形式は“<UPDATE><RELEASE>” (例えば 0b4)。

ノート: unity 属性を省略しても特に影響はありません。

Unity に互換性がないパッケージは、Package Manager ウィンドウに表示されません。
dependencies オブジェクト A map of package dependencies. Keys are package names, and values are specific versions. They indicate other packages that this package depends on.

NOTE: The Package Manager does not support range syntax, only SemVer versions.
keywords 文字列の配列 Package Manager の検索 API によって使用されるキーワードの配列。これは、ユーザーが関連するパッケージを見つけるのに役立ちます。
type 文字列 Package Manager に追加情報を与える定数。

内部使用のために予約されています。
author オブジェクト パッケージの作者。

このオブジェクトには、1 つの必須のフィールド (name) と 2 つのオプションのフィールド (emailurl)が含まれます。


{ "name" : "John Doe",
   "email" : "john.doe@example.com",
   "url" : "http://john.doe.example.com/"
}

パッケージマニフェストの例

{
  "name": "com.unity.example",
  "version": "1.2.3",
  "displayName": "Package Example",
  "description": "This is an example package",
  "unity": "2019.1",
  "unityRelease": "0b5",
  "dependencies": {
    "com.unity.some-package": "1.0.0",
    "com.unity.other-package": "2.0.0"
 },
 "keywords": [
    "keyword1",
    "keyword2",
    "keyword3"
  ],
  "author": {
    "name": "Unity",
    "email": "unity@example.com",
    "url": "https://www.unity3d.com"
  } 
}

Package version

Package versioning must follow Semantic Versioning (SemVer). SemVer is a versioning strategy that allows package authors to provide information on the type of changes included in a given version, compared to the previous version, in a format that automated tools can use.

SemVer expresses versions as MAJOR.MINOR.PATCH, and provides a definition for compatibility using these guidelines:

この値を増加 条件
MAJOR (メジャー) There is at least one breaking change.

Neither version of the package can be substituted for the other.
Versions 1.2.3 and 2.0.0 are not compatible and cannot be used interchangeably without any risk.
MINOR (same MAJOR value) The highest MINOR introduces functionality in a backward-compatible way. Use Version 1.3.0 to fulfill a dependency on 1.2.0 because 1.3.0 is backward-compatible.

You can’t use 1.2.0 to fulfill a dependency on 1.3.0.
PATCH (same MAJOR.MINOR values) The highest PATCH introduces bug fixes without changing the API at all, in a backward-compatible way. バージョン 1.3.1 に 1.3.0 にはないバグ修正が含まれているとしても、1.3.0 と 1.3.1 には同じ API があるため、相互に使用することができます。

これらのバージョニングの方法に従うことで、Package Manager は可能な場合は自動的に競合を解決し、パッケージを新しい後方互換性のあるバージョンにアップグレードします。

For more information, see the Semantic Versioning web site.

パッケージにテストを追加する
アセンブリ定義とパッケージ