Apr 12, 2017 This video explains the entire export process to three different platforms. ♥ Support my videos on Patreon: http://patreon.com/brackeys. Packages are self-contained units that the Unity Package Manager can share across Unity Projects. Most of the time these are called packages, but occasionally they are called Unity Package Manager (UPM) packages. More info See in Glossary. No import dialog is shown.-job-worker-count.
-->Extract Unity Package On Mac Apps
MakeAppx.exe creates both app packages (.msix or .appx) and app package bundles (.msixbundle or .appxbundle). MakeAppx.exe also extracts files from an app package or bundle and encrypts or decrypts app packages and bundles. This tool is included in the Windows 10 SDK and can be used from a command prompt or a script file.
For information about how to use MakeApp.exe to package a desktop app, see Package a desktop app manually.
Important
If you used Visual Studio to develop your app, it's recommended that you use the Visual Studio wizard to create your app package. For more information, see Package a UWP app with Visual Studio and Package a desktop app from source code using Visual Studio.
Important
Note that MakeAppx.exe does not create an app package upload file (.appxupload or .msixupload), which is the recommended type of valid app package for submissions to Partner Center. The app package upload file is typically created as part of the Visual Studio packaging process, although it can also be created manually.
Using MakeAppx.exe
Based on your installation path of the SDK, this is where MakeAppx.exe is on your Windows 10 PC:
- x86: C:Program Files (x86)Windows Kits10bin<build number>x86makeappx.exe
- x64: C:Program Files (x86)Windows Kits10bin<build number>x64makeappx.exe
There is no ARM version of this tool.
MakeAppx.exe syntax and options
General MakeAppx.exe syntax: Si expression software for mac.
The following table describes the commands for MakeAppx.exe.
Command | Description |
---|---|
pack | Creates a package. |
unpack | Extracts all files in the specified package to the specified output directory. |
bundle | Creates a bundle. |
unbundle | Unpacks all packages to a subdirectory under the specified output path named after the bundle full name. |
encrypt | Creates an encrypted app package or bundle from the input package/bundle at the specified output package/bundle. |
decrypt | Creates an decrypted app package or bundle from the input app package/bundle at the specified output package/bundle. |
This list of options applies to all commands:
Option | Description |
---|---|
/d | Specifies the input, output, or content directory. |
/l | Used for localized packages. The default validation trips on localized packages. This options disables only that specific validation, without requiring that all validation be disabled. |
/kf | Encrypts or decrypts the package or bundle using the key from the specified key file. This can't be used with /kt. |
/kt | Encrypts the or decrypts package or bundle using the global test key. This can't be used with /kf. |
/no | Prevents an overwrite of the output file if it exists. If you don't specify this option or the /o option, the user is asked whether they want to overwrite the file. |
/nv | Skips semantic validation. If you don't specify this option, the tool performs a full validation of the package. |
/o | Overwrites the output file if it exists. If you don't specify this option or the /no option, the user is asked whether they want to overwrite the file. |
/p | Specifies the app package or bundle. |
/v | Enables verbose logging output to the console. |
/? | Displays help text. |
The following list contains possible arguments:
Argument | Description |
---|---|
<output package name> | The name of the package created. This is the file name appended with .msix or .appx. |
<encrypted output package name> | The name of the encrypted package created. This is the file name appended with .emsix or .eappx. |
<input package name> | The name of the package. This is the file name appended with .msix or .appx. |
<encrypted input package name> | The name of the encrypted package. This is the file name appended with .emsix or .eappx. |
<output bundle name> | The name of the bundle created. This is the file name appended with .msixbundle or .appxbundle. |
<encrypted output bundle name> | The name of the encrypted bundle created. This is the file name appended with .emsixbundle or .eappxbundle. |
<input bundle name> | The name of the bundle. This is the file name appended with .msixbundle or .appxbundle. |
<encrypted input bundle name> | The name of the encrypted bundle. This is the file name appended with .emsixbundle or .eappxbundle. |
<content directory> | Path for the app package or bundle content. |
<mapping file> | File name that specifies the package source and destination. |
<output directory> | Path to the directory for output packages and bundles. |
<key file> | Name of the file containing a key for encryption or decryption. |
<algorithm ID> | Algorithms used when creating a block map. Valid algorithms include: SHA256 (default), SHA384, SHA512. |
Create an app package
An app package is a complete set of the app's files packaged in to a .msix or .appx package file. To create an app package using the pack command, you must provide either a content directory or a mapping file for the location of the package. You can also encrypt a package while creating it. If you want to encrypt the package, you must use /ep and specify if you are using a key file (/kf) or the global test key (/kt). For more information on creating an encrypted package, see Encrypt or decrypt a package or bundle.
Options specific to the pack command:
Option | Description |
---|---|
/f | Specifies the mapping file. |
/h | Specifies the hash algorithm to use when creating the block map. This can only be used with the pack command. Valid algorithms include: SHA256 (default), SHA384, SHA512. |
/m | Specifies the path to an input app manifest which will be used as the basis for generating the output app package or resource package's manifest. When you use this option, you must also use /f and include a [ResourceMetadata] section in the mapping file to specify the resource dimensions to be included in the generated manifest. |
/nc | Prevents compression of the package files. By default, files are compressed based on detected file type. |
/r | Builds a resource package. This must be used with /m and implies the use of the /l option. |
The following usage examples show some possible syntax options for the pack command:
The following shows command line examples for the pack command:
Create an app bundle
An app bundle is similar to an app package, but a bundle can reduce the size of the app that users download. App bundles are helpful for language-specific assets, varying image-scale assets, or resources that apply to specific versions of Microsoft DirectX, for example. Similar to creating an encrypted app package, you can also encrypt the app bundle while bundling it. To encrypt the app bundle, use the /ep option and specify if you are using a key file (/kf) or the global test key (/kt). For more information on creating an encrypted bundle, see Encrypt or decrypt a package or bundle.
Options specific to the bundle command:
Option | Description |
---|---|
/bv | Specifies the version number of the bundle. The version number must be in four parts separated by periods in the form: <Major>.<Minor>.<Build>.<Revision>. |
/f | Specifies the mapping file. |
Note that if the bundle version is not specified or if it is set to '0.0.0.0' the bundle is created using the current date-time.
The following usage examples show some possible syntax options for the bundle command:
The following block contains examples for the bundle command:
Extract files from a package or bundle
In addition to packaging and bundling apps, MakeAppx.exe can also unpack or unbundle existing packages. You must provide the content directory as a destination for the extracted files. If you are trying to extract files from an encrypted package or bundle, you can decrypt and extract the files at the same time using the /ep option and specifying whether it should be decrypted using a key file (/kf) or the global test key (/kt). For more information on decrypting a package or bundle, see Encrypt or decrypt a package or bundle.
Options specific to unpack and unbundle commands:
Option | Description |
---|---|
/nd | Does not perform decryption when unpacking or unbundling the package/bundle. |
/pfn | Unpacks/unbundles all files to a subdirectory under the specified output path, named after the package or bundle full name |
The following usage examples show some possible syntax options for the unpack and unbundle commands:
The following block contains examples for using the unpack and unbundle commands:
Encrypt or decrypt a package or bundle
The MakeAppx.exe tool can also encrypt or decrypt an existing package or bundle. You must simply provide the package name, the output package name, and whether encryption or decryption should use a key file (/kf) or the global test key (/kt).
Encryption and decryption are not available through the Visual Studio packaging wizard.
Options specific to encrypt and decrypt commands:
Option | Description |
---|---|
/ep | Specifies an encrypted app package or bundle. |
The following usage examples show some possible syntax options for the encrypt and decrypt commands:
The following block contains examples for using the encrypt and decrypt commands:
Key files
Key files must begin with a line containing the string '[Keys]' followed by lines describing the keys to encrypt each package with. Each key is represented by a pair of strings in quotation marks, separated by either spaces or tabs. The first string represents the base64 encoded 32-byte key ID and the second represents the base64 encoded 32-byte encryption key. A key file should be a simple text file.
Example of a key file: Video monitoring software for mac.
Mapping files
Mapping files must begin with a line containing the string '[Files]' followed by lines describing the files to add to the package. Each file is described by a pair of paths in quotation marks, separated by either spaces or tabs. Each file represents its source (on disk) and destination (in the package). A mapping file should be a simple text file.
Example of a mapping file (without the /m option):
When using a mapping file, you can choose whether you would like to use the /m option. The /m option allows the user to specify the resource metadata in the mapping file to be included in the generated manifest. If you use the /m option, the mapping file must contain a section that begins with the line '[ResourceMetadata]', followed by lines that specify 'ResourceDimensions' and 'ResourceId.' It is possible for an app package to contain multiple 'ResourceDimensions', but there can only ever be one 'ResourceId.'
Example of a mapping file (with the /m option):
Semantic validation performed by MakeAppx.exe
![App App](/uploads/1/2/6/8/126871277/643072202.jpg)
MakeAppx.exe performs limited sematic validation that is designed to catch the most common deployment errors and help ensure that the app package is valid. See the /nv option if you want to skip validation while using MakeAppx.exe.
This validation ensures that:
- All files referenced in the package manifest are included in the app package.
- An application does not have two identical keys.
- An application does not register for a forbidden protocol from this list: SMB, FILE, MS-WWA-WEB, MS-WWA.
This is not a complete semantic validation as it is only designed to catch common errors. Packages built by MakeAppx.exe are not guaranteed to be installable.
A package is a container that holds any combination of Assets, Shaders, Textures, plug-ins, icons, and scripts that enhance various parts of your project. Unity packages are newer, more tightly integrated versions of Asset Store packages, able to deliver a wide range of enhancements to Unity.
Use the Unity Package Manager window (in Unity’s top menu: Window > Package Manager) to view which packages are available for installation or already installed in your project. In addition, you can use this window to install, remove, or update packages for each project.
The Package Manager window displays a list view on the left and a detail view on the right.
Finding packages
By default, the Package Manager window displays the list of packages in the In Project mode, so that only the packages already installed in your project appear in the list.
To expand the list to include all available packages, click the All button. The list now displays everything registered in the package registry, regardless of whether they are already installed in the project.
Viewing package details
The pane on the right side of the Package Manager window displays details about the selected package.
These details include the following information:
- (A) The display name
- (B) The version number (and tag, if available)
- (C) The link to open the package documentation page
- (D) The official package name from the registry starting with
com.unity.
- (E) The author
- (F) The installation or update status
- (G) A brief description
- (H) Buttons to install, remove, or update the package
- (I) The link to open the package change log
Version tags
Some packages display tags next to the version number. These tags convey information about that version of the package.
The Package Manager uses the following values:
Tag | Meaning |
---|---|
verified | Unity's Quality Assurance team has officially verified that this package works with a specific version of the Editor. |
preview | This package is at an early stage of the release cycle and may not have been documented and fully validated by either the development team or Unity's Quality Assurance team. |
A Package without a tag is considered production quality. Best free 3d software mac.
Finding more information
You can find out more about a package by viewing its documentation.
To access it, click the View Documentation link in the Details pane:
The package documentation page opens in your default browser.
Accessing the Package Manager window
You can perform a variety of tasks through the Package Manager window:
- To open the Package Manager window, navigate to Unity's main menu and go to Window > Package Manager.
Installing a new package
To install a new package:
- Open the Project Manager window and click the All button.
- Select the package you want to install from the Packages list. The package information appears in the Details pane.
- Click the Install X.X.X button. When the progress bar finishes, the new package is ready to use.
Removing an installed package
To remove an installed package:
- Open the Project Manager window.
- Click the In Project button if you are in All mode.
- Select the package you want to remove from the Packages list. The package information appears in the Details pane.
- Click the Remove X.X.X button. When the progress bar finishes, the package disappears from the list.
Notes:
- You can only remove packages which are not required by another package.
- When you remove a package, any Editor or run-time functionality which it implemented is no longer available.
Updating an installed package
You can update a package while in either the In Project or All mode:
- Open the Project Manager window. An arrow indicator appears next to any packages that have updates available.
- Select the package you want to update from the Packages list. The package information appears in the Details pane.
- Click the Update to X.X.X button. When the progress bar finishes, the new package version information appears in the Details pane, and any new functionality is immediately available.
Advanced package topics
This section provides more advanced information about the package manifest file. You don't need to know anything about these topics to install, remove, and update packages.
In addition to its contents (Assets, Shaders, Textures, plug-ins, icons and scripts), a Unity package contains a package manifest file. The package manifest tells Unity how to display its information page in the Package Manager window, and how to install the package in the project.
In addition, it contains several files that help manage the package deployment, including the tests, the samples, the license, the changelog, and the documentation.
Manifests
There are two types of manifest files: project manifests (
manifest.json
), and package manifests (package.json
). Both files use JSON (JavaScript Object Notation) syntax to communicate with the Package Manager, by describing which packages are available for each project, and what each package contains. Project manifests
Project manifests (
manifest.json
) tell the Package Manager which packages and versions are available to the project.Project manifests support the following value:
Key | JSON Type | Description |
---|---|---|
dependencies | Object | List of packages for the Package Manager to load. These are usually packages officially registered with Unity. |
Example of a
manifest.json
file:Unity stores each project manifest in the
[your_project_root_folder]/Packages/manifest.json
file.Package manifests
Extract Unity Package On Mac App Free
The Package Manager uses package manifests (
package.json
) to determine which version of the package to load, and what information to display in the Package Manager window.Package manifests support the following values:
Key | JSON Type | Description |
---|---|---|
name | String | The officially registered package name, following this naming convention: 'com.unity.[your package name]' . For example, 'com.unity.resourcemanager' |
displayName | String | The package name as it appears in the Package Manager window. For example, 'Resource Manager' |
version | String | The package version 'MAJOR.MINOR.PATCH' . Unity packages follow the Semantic Versioning system. For example, '1.3.0' . |
unity | String | The Unity version that supports this package. For example, '2018.1' indicates compatibility starting with Unity version 2018.1. |
description | String | A brief description of the package. This is the text that appears on the Details pane of the Package Manager window. Some special formatting character codes are supported, such as line breaks (n ) and bullets (u25AA ). |
keywords | Array of Strings | Keywords used for searching in the Package Manager window, specified as a JSON array of strings. For example, ['Physics', 'RigidBody', 'Component'] . |
category | String | The category this packages is in. For example, 'Forces' . |
dependencies | Object | A list of packages that this package depends on, expressed as a JSON dictionary where the key is the package name and the value is the version number. Unity downloads all dependencies and loads them into the project alongside this package. |
Example of a
package.json
file:Unity stores each package manifest in the
[your_package_root_folder]/package.json
file.The Package Registry
Unity maintains a central registry of official packages that are available for distribution. When Unity loads, the Package Manager communicates with the registry, checks the project manifest file, and displays the status of each available package in the Package Manager window.
When you remove a package from the project, the Package Manager updates the project manifest to exclude that package from the list in In Project mode but it is still available in All mode because it is still on the registry.
Mac os sierra software compatibility chart. When you install or update a package, the Package Manager downloads the package from the registry.
Requirements
This version of Unity Package Manager is compatible with the following versions of the Unity Editor:
- 2018.1 and later (recommended)
Known limitations
The Package Manager includes the following known limitations:
- If you manually edit the
manifest.json
file, the Package Manager window doesn't refresh the list of packages. You need to either re-open the window or toggle between In Project and All modes to force an update.
Documentation revision history
Date | Reason |
---|---|
Mar 13, 2018 | Documentation updated (final edits). Matches package version 1.8.2. |
Mar 2, 2018 | Documentation updated. Matches package version 1.8.2. |
Feb 19, 2018 | Documentation updated. Matches package version 1.8.0. |
Feb 8, 2018 | Documentation updated. Matches package version 1.7.0. |
Feb 6, 2018 | Documentation cleaned up. Matches package version 1.6.1. |
Jan 31, 2018 | Documentation updated (developmental review) |
Jan 29, 2018 | Document updated. Matches package version 1.6.0. |
Jan 18, 2018 | Document updated. Matches package version 1.5.1. |
Jan 17, 2018 | Document updated. Matches package version 1.5.0. |
Jan 12, 2018 | Document updated. Matches package version 1.4.0. |
Nov 7, 2017 | Document created. Matches package version 1.0.0. |