I'm the Team Agent of an iOS Enterprise Program.
I'm trying to add a new app id (the new app-id is never used before in my account, but it's possible it is used by another enterprise account.
But, after submit, it says:
The bundle identifier you have specified is already in use. Please
select another.
Why it is happening and how can I solve this?
App IDs must be globally unique (not just unique within your iTunes account).
If you or somebody else has used that bundle ID on another iTunes account, Enterprise or regular, then it can't be re-used on any other account.
To avoid this, it's best to use wildcard ids for development (com.mycompany.*) and only create fully qualified ids when you are ready to deploy an app using a specific account.
Bundle Identifiers need to be unique across the board. If it's used in another business just change it. You can do this in the *-Info.plist file associated with your project. Look for the Bundle identifier field. It's reverse domain typically. So use something like com.yourcompany.appname If the bundle wasn't set by you but, someone on your project. You should be able to get access to a provisioning profile that supports that bundle identifier. Keep in my mind for all purposes that iOS will treated different bundle identifiers as different apps.
All app ID's seem to have to be unique among all IDs that Apple had in their entire worldwide iTunes database.
Has some other company registered the internet domain for mycompany.com, which you used as part of your com.mycompany.myapp app ID? Did you substitute your company's domain name for "mycompany". Or perhaps some other company is trying to (mis)use your company's registered domain name. Or does your company's corporate unbrella encompass more than one developer account (perhaps 1 enterprise enrollment and 1 company enrollment, or more)? The app ID could be registered in the other account.
Related
so currently I am developing an app with certain bundle identifier. previously I use one apple developer account, and we plan to change the apple developer account associated with this app.
when I change the 'team' to the new apple developer account like this:
then I get an error like this:
Failed to create provisioning profile. The app ID "xxxxx" cannot be
registered to your development team. Change your bundle identifier to
a unique string to try again.
No profiles for 'xxxxx' were found Xcode couldn't find any iOS App
Development provisioning profiles matching 'xxxxxxx'.
it seems that I have to change the bundle identifier. I don't want to change the bundle identifier.
I have tried to inspect in my previous apple developer account, I thought that i have to delete something related to the bundle identifier in that previous apple developer account, but I can't find it (maybe I don't know where the file that needs to be deleted)
what should I do if I want to use the same bundle identifier app but change the apple developer account ?
I little bit confused here,
when I first develop the app, I don't have paid apple developer account for my company, I just use the free account, and this app is associated with that Personal Team (ads IT solution), my apple ID for this Personal Team let say is xxx#gmail.com,
and then with this same apple ID (xxx#gmail.com) then I enroll as organization (my company).
but when log in to this organization account, I can't the bundle identifier on the App IDs section.
it seems the free account and the paid account seems different. and it seems this bundle identifier is associated with that personal account (free account)
I don't know how to access that persoanl team account, because when I login using the same apple ID, I will be directed to the organization account
I just ran into the same issue.
Go to your Apple developer account where the app is currently registered.
Click "Certificates, IDs & Profiles" on the left column.
Click Identifiers on the left column.
Click on the row with the identifier you want to use on your new Apple account.
Click "Remove" on the top right.
Confirm that you would like the identifier and profile to be removed everywhere
You should now be able to click "retry" in xCode, and the identifier will be able to link with your new account.
Its an old post... But if it helps someone...
I had run into this issue and followed the below approach which is an alternative without going to website.
Basically I opened the project in xCode with the old Team Information. Then changed the Bundle ID for that to a different random value.
Once this change got applied... the previous bundle id became free and available. Then I was able to use it for the new Account's Team Bundle ID.
Of course it was easier for me since I had 2 Macs. One logged in with the Old User Account and the other logged in with the New User Account. You may need to switch between the Accounts if you only have one device to work with.
You can transfer apps via AppStoreConnect. Apple's help page: https://help.apple.com/app-store-connect/#/deved688524f. Select your app, go to the App Store > App Information tab and you can scroll down and see it.
However, there's a good chance you won't find a button there because it doesn't meet the criterion of "The App must have had at least one version that has been released to the App Store" per their requirements at https://help.apple.com/app-store-connect/#/devaf27784ff. Just having it in there for testing does not count. I still haven't found a way around this.
You can open up the browser's inspector while on the App Information tab, find the link "/WebObjects/iTunesConnect.woa/wa/LCAppPage/transferApp?adamId=xxxxxxx" (don't search with the x's) and remove the class ng-hide from its parent node, and click on the button to see which criteria your app fails to meet.
A side note, based on a comment: if you remove the app from your account it won't help because the AppID still exists.
I know it sounds weird, but the way I found was to call to Apple Developer Program Support, then they helped me unassign it from the first account to make it "bundle identifier" available to the second account.
It was very effective because I couldn't access to AppConnect from my first account due it's a free one.
These have baffled me ever since I signed up for developers account!
I Need to Know which one to use when I submit my app to the store?
Also in target > build settings > code signing > provisioning Profile are those values as shown in the image, which one do I pick to submit my app?
The com.domain.name or wild card?
And lastly what in the heckaroo is the com.domain.name used for and what's its importance?
Wild card ids are for development purposes only. Suppose you're working on an app, and don't know what its final name will be. You use the wildcard app id until you've named it.
Once you've named it, you do the com.domain.name one for submission.
These must be unique across the entire iOS ecosystem, which is why they work this way. Provided no two companies have the same name and product name, there will be no collisions.
The wildcard app ID (defined as *) can be used for any bundle identifier (the one you set in Xcode).
If you app conforms to the following (taken from the Registering an App ID page in the Certificates, Identifiers & Profiles section of the developer portal):
If you plan to incorporate app services such as Game Center, In-App Purchase, Data Protection, and iCloud, or want a provisioning profile unique to a single app, you must register an explicit App ID for your app.
Then you need to specify an explicit App ID - the com.domain.name you mentioned. This must match the bundle identifier of your app you set in Xcode.
The App ID is tied to the developer account (I believe it can be transferred) and this is unique per application. For example, say I set up an app with the App ID of com.stackoverflow.rich, you could then not use that App ID.
The App ID must be an explicit App ID when finally submitting the app to the App Store.
When releasing for the App Store you need to set your App Store Distribution profile under Provisioning Profile -> Release. You can probably just press delete/backspace on the Code Signing Identity -> Release, and then the Automatic setting will pick up the correct certificate.
Whenever you use the Archive command (under Product), the Release build configuration is always used (unless you change it under the Scheme settings).
If you want more info about this have a read of the App Distribution Guide.
There's also a Technical Q&A on this topic as well.
A few quick questions on App ID's / Submission if you don't mind,
1: Can many App ID's can be added to the same provisioning/distribution profile? - so apps with different app ids can be distributed to the store with the same distribution profile?
2: Can you release an app to the store with a wildcard app id?
3: Does enabling services on an app id just allow you to use for example iCloud apis? If they weren't enabled would iCloud Apis (for example) just be ignored in the app?
4: When I was submitting my app last night, iTunes Connect needed a bundle id, which I set to say "com.John.myApp" -- when I was validating my app it said that my Apps bundle Id in xcode had to match "com.John.myApp" that I set in iTunes connect....
However in xcode my bundle id was something bigger like: "com.John.${PRODUCT_NAME:rfc1034identifier}"
so I just set it to "com.John.myApp" is that ok?
Thanks all,
Use a wildcard profile.
Yes.
It depends on the service, and some services won't work with a wildcard profile.
Yes. The default you replaced is just a default, a lot of people will have the app name in the bundle I'd but you don't have to.
I have been excited to try to add for the FIRST time a new App on iTunes Connect to TEST my GAMEKIT features.
I have read this technical note and I am getting confused because I had already a boundle id for my App that I created when I started developing it (that's my current bundle id with which I created the current provisioning and testing profiles: hello-*).
In order to use GameKit and InApp Purchase should I create a new Bundle Id?
I am confused because:
I don't know if the current Bundle Id is valid (in respect to the technical note linked above)
I don't know if hte Bundle Id influences the things that I can ADD in the App later (E.g. in App Purchase, GameKit, ...)
If I create a new App with a name (say: HelloApple) but with a bundle Id with wildcard (Say: hello-*) will I be able to add a new App with the same name but a different bundle Id in a later stage? This indeed before publishing ANY of the two Apps.
I don't fully understand why there is a choice between using or not using a wildcard; in other words, if a non wildcard bundle id is needed to use in App purchase and GameKit why should a developer want to use a wildcard App Id?
Any help will be appreciated, in particular I need to solve my first issue: which bundle Id should I use in ordert to use GameKit and InAppPurchase?
Before answering your questions some definitions:
Bundle ID: A reverse DNS string that precisely identifies a single app.
Bundle ID search string: it is used to match a set of bundle IDs, where each bundle ID identifies a single app. For example, if the bundle ID search string is com.mycompany.MyApp or a wildcard such as com.mycompany.*, then it will match the bundle ID com.mycompany.MyApp.
App ID: A string that identifies one or more apps from a single team. An App ID consists of a bundle ID search string preceded by the Team ID, a 10-character string generated by Apple to uniquely identify a team. In the technical note that you link it is ABCDE12345 and called the Bundle Seed ID.
(Development) Provisioning Profile: you use it to authorize your app to launch on devices and use certain store technologies when you are in development. It is comprised of: a single App ID, a set of devices, and a set of development certificates. The provisioning profiles are created in Member Center and you need them on your device to run your app. XCode can download provisioning profiles and install them onto devices.
Now I will answer to your bullets:
To use Game-Center (GameKit) and IAP you need an explicit App ID, that is and App ID with a bundle ID search string that has no *. A wild-card App ID is one in which the bundle ID search string that has a *, and is the one you have now.
What you create initially is an App ID with an associated Bundle ID. If it is explicit you can add Game-Center and IAP, if it is a wildcard App ID not... that's it.
You can not have two apps with different names but the same explicit App ID or Bundle ID. But you can have two apps with different names that do not use Game-Center or IAP with a unique App ID using a wildcard App ID.
You ask why the wildcard is useful... Well, I said that if you do not use Game-Center or IAP you can have two or more apps associated to an wildcard App ID. Then you can create a provisioning profile with this App ID and you only need to install this provisioning profile on your devices for all your apps. There is a default provisioning profile of this type called the Team Provisioning Profile which is valid for all your apps, but you could create more specific ones that are valid for a subset of all you apps.
This process is really useful for big teams. If you have a small team and few apps it is really confusing, but it helps to understand the reasoning behind it.
But there is more to say about all this. I recommend that you read the "App Distribution Guide" as I did recently. It is an extensive guide, but for the moment you only need to read sections of topic "Maintaining Your Signing Identities and Certificates" and "Maintaining Identifiers, Devices, and Profiles". The guide is very clear, full of screenshots and it will answer all your questions. Also you can go back to the guide down the road to quickly solve some issue (and you will have issues).
The first time that I created an App with Game-Center and IAP more than a year ago I looked up stackoverflow to answer all my questions. But I've been having issues when certificates expired, when I added new devices, etc, and every time I found and Ad-hoc solution after a lot of fiddling around and going back to stackoverflow. Don't get me wrong, there are great answers in stackoverflow but it is a much better strategy in my experience to read something longer that explains the big picture. App ID, Bundle ID's, Certificates, private keys, etc, is a messy subject, specially if you do not understand why it is built this way.
The bundle id is just an identifier for your app. It's mainly used to provide you with the certificates you need to use to sign your app before submitting to the App Store or to use it on development devices (e.g. for testing). The bundle id can be whatever you want. Apple recommends using the syntax com.yourcompany.yourapp to keep it consistent among apps you develop and avoid conflicts with other app's identifiers.
A wildcard can be used on all your apps, while a specific id can be used with one app only. I advice you to have an id for each of your app and only a wildcard for development (so you can run on your devices as many apps as you want without having to bother about the certificates until you decide to ship the app). You don't need to have access to all services (like Game Center or iCloud) on all your apps and therefore you better sign the single certificates just with the services your app needs.
What I think Apple wants is:
Create a different bundle ID for each app that uses in-App purchase/GameKit or both.
You can have same App-ID, and bundle ID for apps that do not use these.
If the bundleID you have for your app is not used for any other of your apps, you can use it.
Somebody more knowledgable, Please correct me if I am wrong.
I have an iOS app which I have developed and packaged and I was ready to submit to the app store. However the client has requested that I update an existing app which was developed by another unrelated developer rather then submit a new one. Basically using my new code.
All I have been provided with so far is a Bundle ID. Obviously if I try and add a new App ID under my developer account I get an error:
"The bundle identifier you have specified is already in use. Please select another."
Is there any way around this? I can't see any easy way as this Bundle will never be under my provisioning profile.
Any help will be much appreciated.
Two ways:
You need to use their iTunes Connect Credentials and upload your App
They need to add you as team member (Add your Apple Id to their account as their team member)
For this they need to invite you to join to their program and you need to accept their invitation.
They can invite you by logging to their developer account and :
Developer Account->Member Center->People->Invite a person to your team
Refer:
Account Management