Copy link to clipboard
Copied
Hi gang;
I am not a Mac user and as such, my knowledge is limited. What I do know is that it's WAY more finicky than PC's. As an example, I have a client that can't use one of my plugins on his new M1 Mac running Montery 12.4. I assume, unlike PCs, the plugin needs to be recompiled somehow to be compatible with the M1.
I compiled my Mac plugin on an older laptop running an older OS about a year or two ago. I can't recall off the top of my head which one. But what are the steps? Do I need to first update my Mac OS to the latest the laptop will accept? Then recompile my plugin? Is there any specific setting I need to use for M1 compatibility? What if my laptop cannot be upgraded to the latest Mac OS? Do I need to use a particular SDK version?
This is the error message my client sent me:
Any help would be appreciated.
Thanks,
-Richard
Copy link to clipboard
Copied
Here's some information that should help:
https://ae-plugins.docsforadobe.dev/intro/apple-silicon-support.html#intro-apple-silicon-support
Copy link to clipboard
Copied
Copy link to clipboard
Copied
Generally you want to compile against the lowest SDK you can so that it has maximum compatibility with the most amount of systems. I believe you can compile a universal binary for mac going back to 11.3 for the apple silicon, and way back to 10.x for the intel version. Any new-ish version of macOS / Xcode should be able to do this.
Copy link to clipboard
Copied
Hi James!
Thanks for your reply. Well, I'm still using the CS6 SDK so I guess I've got that part covered but I still don't know how exactly I'm supposed to compile for the Mac M1 native support.
Is this something that I do in Xcode specifically? Like a specific setting? Any clues on what / where? jamesastro
posted a link in his answer to add universal binary support, and this seems to be what you're referring to. Is that step what I need to do?
Is there anything I need to add to the C++ plugin project?
Also, if I compile for native M1 does that mean my plugins won't be compatible on non-M1 Macs?
Any specifics would be welcome from everyone on how to do this.
Thanks,
-Richard
Copy link to clipboard
Copied
It's surprisingly easy to do this, or at least it was for my plugins:
1) Use Xcode 12.2 or later.
2) It'll automatically upgrade your project, adding a target for "Any Mac (Apple Silicon, Intel)".
3) Choose that target near the top-middle of the Xcode screen.
4) The document that I linked to earlier tells you how to upgrade your .r file.
5) Avoid throwing C++ exceptions through C functions. (Once again, see the document referred to earlier.)
6) Build your app using Product > Archive.
It'll build a universal binary that'll run on both Intel and Apple Silicon.
Good luck!
Copy link to clipboard
Copied
Hi @jamesastro
Thank you very much for these detailed step-by-step instructions and for clarification on compatibility. This is exactly what I was hoping for!
I'll give it a shot and report back.
Regards,
-Rich