Developing with a team -- how to set up?

I've been trying and googling and forum-reading this for a couple of days, and ... am either missing something obvious, or am simply dumb. I'd prefer to simply be ignorant, and so I ask. 😄

I've got a personal, paid account. I've got some projects, and I've got some git repos. I'd like to allow some other people to check out a repo and then build the associated project. Only they can't, because the bundle identifier conflicts. The bundle identifier is, e.g., com.kithrup.filterTest. In my Xcode, the selected team is me. And that works, which isn't surprising because I did create it after all.

I've tried using App Store Connect to invite someone, and they do show up there. But they can't build either, again due to the bundle identifier conflict. (Also they can't find any provisioning profiles, which makes sense given everything else not working.)

This is a remarkably basic question for someone who's been developing on the Mac for... oh my, coming up on 20 years in a month. Of course, I managed to avoid Xcode for much of that time, by simply doing unixy stuff.

Help?

You may need an Apple ID registered as an organization.

https://developer.apple.com/support/app-account/


Or your members can use their own bundle id temporarily while developing.

com.myUniqueName.com.kithrup.filterTest

(need to care not to commit or push the temporary bundle id.)

I'm fine if the answer is "needs to be an organization," but nothing says that anywhere.

Changing the bundle identifier is a hack.

Clearly something can be done, because there are open-source macOS/iOS projects.

I'm fine if the answer is "needs to be an organization," but nothing says that anywhere.

You mean in Xcode? Or in App Store Connect? ’cause App Store Connect Help > Add, Edit, and delete users > Add and edit users is pretty clear that individual teams can’t add extra developers.

Changing the bundle identifier is a hack.

I disagree. Apple platforms track apps by their bundle ID. Apps from different teams are by definition different, and thus they have to have a different bundle ID.

Clearly something can be done, because there are open-source macOS/iOS projects.

A lot of folks don’t notice this because:

  • They’re working on library code, which doesn’t require a unique bundle ID.

  • They’re working on the Mac, where this requirement isn’t so tightly enforced.

  • They’re working on a simple app, where changing the bundle ID is a trivial task.

Share and Enjoy

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

You mean in Xcode? Or in App Store Connect? ’cause App Store Connect Help > Add, Edit, and delete users > Add and edit users is pretty clear that individual teams can’t add extra developers.

It wasn't clear to me, and it hasn't been clear to people I've asked, so much so that I have filed a TSI.

They’re working on the Mac, where this requirement isn’t so tightly enforced.

I'm working on a Mac, and this seems pretty tightly enforced. Maybe I picked the wrong model for the app when generating the profile.

I disagree. Apple platforms track apps by their bundle ID. Apps from different teams are by definition different, and thus they have to have a different bundle ID.

I am trying to figure out how to set up a team. That's in the question, it really is.

You mean in Xcode? Or in App Store Connect? ’cause App Store Connect Help > Add, Edit, and delete users > Add and edit users is pretty clear that individual teams can’t add extra developers.

That is correct. It says:

All users receive access only to App Store Connect and are not considered part of your team in the Apple Developer Program.

So how do I add members to my team in the Apple Developer Program?

(Also, a bit related: how do I remove an app from the App Store Connect? Since I was told to try doing that, and now there's an app I'd like to remove. 😄)

Requiring people to change project when working on a project together means that every single commit has to be checked, and possibly at least partially un-done. This doesn't scale, and I am in fact pretty sure that distributed teams don't do that.

Again: if the answer is "well clearly everyone sets up an organization account," I have to again ask "And how do open-source projects do this? Most aren't going to be able to get a DUNS number." But, you know, I would be happy to accept that (I then have to get my group to do that, and it is a pretty significant burden) -- but the documentation needs to be updated.

So how do I do this? It is clearly done. I'm assuming it's such a basic, obvious thing I did wrong that it hasn't occurred to anyone.

That is correct. It says:

If you’re enrolled in the Apple Developer Program as an individual, you can give users access to your content in App Store Connect. All users receive access only to App Store Connect and are not considered part of your team in the Apple Developer Program.

So how do I add members to my team in the Apple Developer Program?

By setting up an Organization team (I added back the first sentence of that paragraph, which makes the context clearer).

I'm working on a Mac, and this seems pretty tightly enforced.

This is only an issue on the Mac if your code needs entitlements that must be authorised by a provisioning profile. Most apps don’t need this, and thus don’t run into this issue.

how do I remove an app from the App Store Connect?

Did you try the process in App Store Connect Help > Manage apps and versions > Remove an app?

I am in fact pretty sure that distributed teams don't do that.

Certainly commercial teams don’t do that. I’m not sure what open source teams do. You could perhaps survey some?

I should point that Apple sample code faces a similar problem and I’ve seen it solved by tweaking the build settings to include the Team ID in the bundle ID. Unfortunately I can’t find a specific of this )-: but I think the trick is to set Product Bundle Identifier (PRODUCT_BUNDLE_IDENTIFIER) to com.example.$(DEVELOPMENT_TEAM).PPP, where PPP is the product name. That way each time who opens the project gets their own unique bundle ID based on the Team ID.

Share and Enjoy

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

Oh my! I had tried changing it to $(TeamID).$(BUNDLE_IDENTIFIER), but I hadn't thought about changing the bundle identifier. (As I have just woken up, I will be testing later.)

Ok, so this is mostly solved now! I did in fact need an organizational account, which involved some hoops to jump through. I want to point out that dev support people have been remarkably helpful and patient. I've now got people invited to the team, and building seems to be normally.

However, it seems that it is simply not possible to fix the "I accidentally and ignorantly added an app to App Store Connect that will never, ever, every be sent for approval and now that bundle ID is forever taken."

I guess most developers don't make the mistakes I do. blush

Developing with a team -- how to set up?
 
 
Q