OS/Architecture-specific versions
If your plugin includes native binaries, language servers, local models, or other platform-specific components, you can publish separate plugin versions for different operating systems and CPU architectures.
JetBrains Marketplace uses the OS and architecture of the user's IDE to select and deliver the matching plugin build. This lets you avoid bundling binaries for every supported platform into a single plugin archive.
Declare the target platform
Each platform-specific version must declare its target operating system and architecture in plugin.xml.
For example, a macOS ARM64 build:
Common platform dependencies include:
Platform | Dependency |
Windows |
|
MacOS |
|
Linux |
|
X86 |
|
X86_64 |
|
ARM32 |
|
ARM64 |
|
Build targeted versions
Upload every OS/architecture build as a separate plugin update. For example:
The suffix is only a naming convention. When the IDE checks for plugins, it sends its operating system and architecture to JetBrains Marketplace. Then JetBrains Marketplace determine the target platform from the dependencies declared in plugin.xml (not from the plugin archive name!) and returns the matching plugin version.
Gradle support for platform-specific plugins
The IntelliJ Platform Gradle Plugin supports native variants starting with version 2.19.0. Set since-build to 261 or later, then declare the native files for each platform:
During local development, runIde picks up the native files for the current OS and architecture. For publishing, publishPlugin invokes buildPluginVariants and publishes all the configured platform-specific archives to JetBrains Marketplace.
See the nativeVariants configuration documentation and buildPluginVariants task documentation for details.