包含此页的版本:
不含此页的版本:
从 Unity 6.3 开始,包管理器会检查 Unity 生态系统中使用的所有 tarball 包上的数字包签名。
包签名是一种加密标识符,有助于验证包的来源,并确保在开发人员创建包后没有更改。包签名使每个人都可以更轻松地确认包的来源和完整性,并发现任何未经授权的更改或篡改。建议的最佳做法是让所有发布者对其包进行签名。采取这个简单的步骤有助于 Unity 社区的成员在使用包时更加自信。
当您尝试安装具有签名问题的注册表包时,“包管理器”窗口会标记该包。下表说明了每个标志以及如何解决它。
| 图标 | 描述 | 建议的作 |
|---|---|---|
| 此包有签名,但签名无效。这可能表明该软件包已被篡改、不安全或恶意。 | 考虑从项目中删除此包。 | |
| 此包裹缺少签名。Unity 无法验证此包。为了保护您的项目,建议的最佳做法是仅使用签名包。 | 作为包使用者,请包所有者发布带有签名的包版本,然后安装签名版本。 作为包发布者,对包进行签名,然后分发已签名的版本。 |
从 Unity 6.3 开始,发布者可以直接从包管理器窗口或使用命令行参数对其包进行签名。
对包进行签名时,必须将其与组织之一相关联,以便包使用者可以快速确定谁创建并拥有它。
唯一可以签名的包是在“包管理器”窗口中具有“自定义”或“本地”标签的包:
Packages文件夹。要从“包管理器”窗口对包进行签名,请执行以下作:
确保已登录到 Unity Hub。
打开“包管理器”窗口。
选择要签名的包。
选择导出。
在显示的模式中,打开“创作组织”菜单,然后选择要与此包关联的组织。
选择存储已签名包的位置,然后选择选择文件夹 (Windows) 或选择 (macOS)。
注意:如果该位置已存在该包,则会显示一条警告消息,提示您确认覆盖该文件。
导出过程完成后,文件管理应用程序将在您指定的位置打开,并显示新创建的文件。“控制台”窗口中还会显示一条确认消息。
导出作将创建一个 tarball 文件 (.tgz),这是一个压缩的存档文件。此 tarball 文件包含一个加密文件 (.attestation.p7m),其中包含包签名。
有关将此 tarball 文件分发给其他人的信息,请参阅共享您的包。
如果使用持续集成 (CI) 发布包,则可以从命令行对包进行签名。
要收集组织的组织 ID 并从命令行对包进行签名,请执行以下作:
如果使用要签名的包的项目已打开,请关闭 Unity 编辑器。
转到 Unity Cloud 仪表板 (https://cloud.unity.com/account/my-organizations) 并选择要用于对包进行签名的组织。
注意:您还可以在仪表板右上角选择帐户的链接,然后选择为目标组织切换组织,然后再次打开菜单并选择管理组织。
在“我的组织”页面(或“组织设置”页面)中,找到“组织 ID”字段。
复制组织 ID 值。
打开命令提示符窗口。
将目录更改为 Unity 编辑器的位置。有关更多信息,请参阅 Unity 编辑器命令行参数和查找编辑器程序文件。
输入以下命令,替换尖括号表示的占位符值:
Unity.exe -batchmode -username <your_username> -password <your_password> \
-upmPack <path_to_package_folder> <path_to_tarball> \
-cloudOrganization <your_organization_id>
Unity.app/Contents/MacOS/Unity -batchmode -username <your_username> -password <your_password> \
-upmPack <path_to_package_folder> <path_to_tarball> \
-cloudOrganization <your_organization_id>
| 要替换的参数 | 描述 |
|---|---|
<your_username> |
用于登录 Unity Hub 或 Unity 编辑器的用户名。 |
<your_password> |
用于登录 Unity Hub 或 Unity 编辑器的密码。 |
<path_to_package_folder> |
包含package.json文件。注意:不包括 package.json在此参数值中。 |
<path_to_tarball> |
要保存已签名 tarball 文件的输出路径 (.tgz).【注】如果文件夹不存在,命令会为您创建该文件夹。 |
<your_organization_id> |
您从 Unity Cloud 仪表板复制的组织 ID。 |
输出 tarball 文件包含一个加密文件 (.attestation.p7m),其中包含包签名。
有关将此 tarball 文件分发给其他人的信息,请参阅共享您的包。