Re-signing .app with a different team's (under same org) Developer ID Application identity

I am developing a macOS app that requires the Associated Domains entitlement. The app will be distributed as a custom app.

  1. The app needs to be signed using Team A’s Developer ID Application certificate and packaged under Team A’s Team ID.
  2. Team A has a secure signing and packaging setup, but they do not provide access to their Developer ID Application Identity (cert) or their provisioning profile.
  3. I am part of Team B and have access to Team B’s Developer ID Application identity and provisioning profiles.

I am thinking of doing the following:

  1. I create a provisioning profile under Team B that authorizes the Associated Domains entitlement.
  2. I sign the app using Team B’s Developer ID Application identity, ensuring the required entitlements are included.
  3. Then, I re-sign the app using Team A’s Developer ID Application identity, since Team A has also set up the same bundle ID with the Associated Domains entitlement and corresponding provisioning profile.

Questions:

  1. Is this approach correct & does it have any drawback?
  2. Will the double signing process work without issues, given that Team A has the required provisioning profile for the same bundle ID?
  3. Are there better ways to handle this situation where signing must be done under Team A but access is limited?

Thanks!

Answered by DTS Engineer in 827395022

I don’t think this’ll work, at least not if I understand your suggestion correctly. I’ve included some general info at the bottom of this post, but I wanted to clarify a key point. You wrote:

2. Team A … do not provide access to their Developer ID Application Identity

but also:

3. I re-sign the app using Team A’s Developer ID Application identity

If Team A doesn’t provide you access to their signing credentials, how can you re-sign the app with their signing credentials?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"


The Associated Domains entitlement must be authorised by a provisioning profile. That profiles ties together a bunch of information. TN3125 Inside Code Signing: Provisioning Profiles has lots to say about this, but the critical point here is that the information includes the App ID.

An App ID is composed of two parts: the App ID prefix (on macOS this is always your Team ID) and the bundle ID. You’re proposed to change the App ID prefix part without changing the bundle ID part. That won’t work. The Developer website ensures that the bundle ID part of your App ID is unique. If the other team has registered an App ID with that bundle ID, you won’t be able to register it in your team.

Accepted Answer

I don’t think this’ll work, at least not if I understand your suggestion correctly. I’ve included some general info at the bottom of this post, but I wanted to clarify a key point. You wrote:

2. Team A … do not provide access to their Developer ID Application Identity

but also:

3. I re-sign the app using Team A’s Developer ID Application identity

If Team A doesn’t provide you access to their signing credentials, how can you re-sign the app with their signing credentials?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"


The Associated Domains entitlement must be authorised by a provisioning profile. That profiles ties together a bunch of information. TN3125 Inside Code Signing: Provisioning Profiles has lots to say about this, but the critical point here is that the information includes the App ID.

An App ID is composed of two parts: the App ID prefix (on macOS this is always your Team ID) and the bundle ID. You’re proposed to change the App ID prefix part without changing the bundle ID part. That won’t work. The Developer website ensures that the bundle ID part of your App ID is unique. If the other team has registered an App ID with that bundle ID, you won’t be able to register it in your team.

Oh yes, I almost missed it. Thanks for pointing this.

The Developer website ensures that the bundle ID part of your App ID is unique. If the other team has registered an App ID with that bundle ID, you won’t be able to register it in your team.

It is not difficult, we have a custom script hosted in a secured place. That script has access to the signing identity. We only execute the script providing .app path and .entitlements path to the script for code signing . It code signs and place signed .app it in a given folder.

how can you re-sign the app with their signing credentials?
Re-signing .app with a different team's (under same org) Developer ID Application identity
 
 
Q