Skip to main content
Participant
December 21, 2023
Question

InDesign PlugIn does not launch on M1 Mac

  • December 21, 2023
  • 2 replies
  • 609 views

Hi all,

 

I have ported an InDesign C++ PlugIn to run also on native ARM Macs.
It was built as a FAT binary for Intel compatibility and worked fine on both platforms.

 

After I added an external dylib to the PlugIn it no longer starts and InDesign displays the message "Some of your plugins do not support InDesign in ARM native mode. Launch InDesign in Rosetta Emulation mode to use these plugins."
When starting under Rosetta, the PlugIn is loaded succesfully, but it should also work native.

 

The dynamic library contains Intel and ARM code and is works fine with a test application I wrote.

 

Any ideas what is preventing InDesign from loading my PlugIn?

 

Thanks,
Dirk

This topic has been closed for replies.

2 replies

Legend
December 22, 2023

man dyld

lists plenty environment variables such as DYLD_PRINT_LIBRARIES .

Set them in the Xcode >> Product >> Scheme … >> Run >> Arguments tab and watch Xcode console output when you launch InDesign from within Xcode. Otherwise, set them from the shell and launch InDesign with the full path to the binary within the bundle.

Inspiring
December 22, 2023

Hi Dirk,

 

As the problem only occured when you used external dylib and it gets loaded when running under Rosetta, it is very clear that your external dylib does not support ARM architrecture (Apple Silicon/M1 Architecture).

 

You can validate whether your dylib is universal binary i.e supporting both intel and arm architecture by using the following command -

 

lipo -archs [filename]

 

google more on lipo or otool command you will be able to figure our how to use it and validate the architecture of your dylib.

 

- Rahul Rastogi

Adobe InDesign C++ Plugin Architect

DirkOAuthor
Participant
December 22, 2023

Hi Rahul,

thanks for the helpful information.

The problem was really the missing ARM architecture.

I found the reason and the PlugIn now loads on both platforms.

Dirk