1

We've an iOS app which is distributed In-House (through MDM or such tools, and never uploaded to App Store)
This iOS app is assigned a BundleID com.companyName.App.Env when building and signed using Provisioning Profile which has Wildcard (*) AppID.(we use Jenkins to the job)
Everything has been working fine, so far!

Now, we need to add APNS capability to this app, so naturally, I'd have to create explicit AppID through Developer Portal.
However, when I try to create an Explicit AppID, I get following error when I try to register it -

An attribute in the provided entity has invalid value
An App ID with Identifier 'com.companyName.App.Env' is not available. Please enter a different string.

The business and nature of usage of this iOS app makes it difficult, to deploy it with a changed app id.

Questions -

  1. if an AppID is assigned to an app while building the app, but was not created in the Developer Portal, how do I create Provisioning Profile with that appID?
  2. If I can't see this AppId in the Developer Portal, where is it getting registered at so that I can reference or remove it? (Assuming that, even 'In-house' distributed apps have their app ids saved to some App Store service when installed on the device)
  3. Is there, really, any other non-destructive option wherein I won't have to create new AppID, just for this purpose?

I really appreciate any suggestions or guidance.

Code.Decode
  • 3,736
  • 4
  • 25
  • 32
  • I'm surprised no one else has faced this issue? – Code.Decode Oct 22 '19 at 14:08
  • So you are trying to create an App Identifier on developer.apple.com that it says it isn't available and you can't see it in your list of IDs? Have you tried making another App ID just to make sure you can? Does the actual ID have any potentially troublesome characters or words in it? – theMikeSwan Oct 25 '19 at 20:39
  • I think if the App ID already existed somewhere it would say the ID exists rather than saying it isn't available. – theMikeSwan Oct 25 '19 at 20:40

1 Answers1

0

The app IDs are globally unique, not just for your developer account.

This is the message you get if the appID is already registered somewhere.

So to answer your questions:

If an AppID is assigned to an app while building the app, but was not created in the Developer Portal, how do I create Provisioning Profile with that appID?

You can only create profiles containing an appid that belongs to your account.

If I can't see this AppId in the Developer Portal, where is it getting registered at so that I can reference or remove it? (Assuming that, even 'In-house' distributed apps have their app ids saved to some App Store service when installed on the device)

If you have registered this appID you can see it in the developer portal's resource dashboard under Identifiers. If you don't have it there, it means someone else has already registered it.

Is there, really, any other non-destructive option wherein I won't have to create new AppID, just for this purpose?

You need to switch to an explicit app id.



From this Technical Q&A at apple we have:

You should use a Wildcard App ID for all apps and app targets that do not enable app-specific capabilities.

...

Using a Wildcard App ID is convenient for all apps that do not use capabilities, as they can reuse the same provisioning profile for code signing. For example, if App1's targets do not enable capabilities, they may reuse the provisioning profile associated to the Wildcard App ID in Figure 2 to code sign all targets.

In this example, App1 has four targets whose Bundle IDs are:

com.myGreatCompany.app1-watch

com.myGreatCompany.app1-macOS

com.myGreatCompany.app1-tvOS

com.myGreatCompany.app1-iOS

Since Explicit App IDs are for use with a single Bundle ID, it can be used to code sign only one app or app target.



You can see this restriction in action even when you register a new appID where wildcard disables app capabilities:

enter image description here

vs.

enter image description here

Durdu
  • 4,649
  • 2
  • 27
  • 47