building "universal" pkg

walt
Contributor III

this is mainly for distributing outside of Jamf as of now, but may be helpful to understand both processes.

Is there a proper procedure to build a package that wont require rosetta on M1 / Apple silicon Macs when installed manually or through MDM?

I tested a pkg built on 10.15.7 / Intel and immediately prompts for rosetta 2 (though the preinstall script of the package has a command to install rosetta but it seems to identify it as non-universal). For enrollments, I have a script that runs before DEPNotify that installs rosetta and that's fine for pkg distribution through MDM.

Thank you.

3 REPLIES 3

jyoakum
New Contributor III

I think depending on what you are using to create the package, there are different ways. For example, in my environment, we will bundle up desktop images into a package and deploy it. Since it has no executables, if we add the architecture type x86_64,arm64 to the advanced properties, it will install without the need for Rosetta. If it has an executable, adding those to the properties, will still result in the underlying executable needing the extra code to support the M1. I haven’t done it, but when creating the executable, you would have one set of code for Intel based macs, and another for arm64, and use a switch command to direct the machine to use whichever code is for that architecture...

We use Whitebox Packages app to create our packages for distribution which has the GUI to enter in those advanced options.

I hope this explains it a little better.

walt
Contributor III

@jyoakum thank you for the response, i think that definitely gives me more insight.

I typically build most packages in composer as it's straight forward enough for what I need, but I am not sure if Composer can handle that setting?

How do you configure that in Packages? And would it matter if it's a raw or distribution package style?

edit: when I selected distribution, it looks like advanced options has hostArchitecture, platforms>client>arch - did you add x86_64,arm64 to the hostArchitecture field?

jyoakum
New Contributor III

Honestly, I am not sure if it is host architecture or client architecture... I’d just put it in both and see what happens...