We have a MacOS application that we plan on distributing standalone (it'll be installed through MDM or directly, not through the app store). We utilize endpoint security and full disk access for this (enterprise) app. I have a makefile that uses codesign to sign the app inside-out. All that appears to work (i.e., when I try to run the app directly it functions as I expect it to).
What's the recommended way to allow the developers in my team to also sign the app for local development so it functions as close as possible to production? My first thought is to distribute the developer identity to their machines using MDM. However, ideally i'd like to rule out the ability for a developer who has the MDM profile assigned to export the keys. That really only leaves a centralized solution in place or disabling SIP on their system (which I don't want to do). Alternatively, would creating a separate identity for production make more sense, so that in the case the developer certificate is revoked, the production releases continue to function as normal (however, I assume this would also require creating two different profiles for the endpoint security entitlement--one for each certificate).
Thanks!
Derek
A product you sign for direct distribution must necessarily be signed with your Developer ID signing identity. Without that, you won’t be able to notarise it.
Developer ID signing identities are precious, and I have a whole bunch of thoughts on that in The Care and Feeding of Developer ID.
allow the developers in my team to also sign the app for local development … ?
Don’t give them all a copy of your Developer ID signing identity.
A better option is to:
-
Gather the provisioning UDIDs of all your development Macs and add them to your team on the Developer website. See Developer Account Help > Register devices.
-
Have each of your developers create an Apple Account [1].
-
And add them all to your team with an appropriate role. See Developer > Support > Articles > Program Roles and Developer Account Help > Manage your team.
-
They can then create their own signing identities, using Xcode or the Developer website. For the first, see Xcode > Settings > Accounts. For the second, see Developer Account Help > Create certificates.
-
For the provisioning profile you have a couple of options:
-
You could create a single development profile that authorises all these devices and codes-signing identities. That has the advantage that you only need to this once.
-
You could have each member of your team do this. That each team member more flexibility, and means that you don’t have to regenerate and redistribute an updated development profile every time someone joins the team, renews their certificate, adds a device, and so on.
-
-
And use those to sign your product for use on any of your development Macs.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
[1] You might have already created them an Apple Account as part of the MDM setup. I’m not entirely sure whether you can add those Apple Accounts to your team. I have a lot more experience with standard Apple Accounts, rather than managed ones.