iOS app release - same Bundle ID but different Developer accounts - ios

I have created an app for which a different version was created earlier. The older app had a different Bundle ID from mine, but it has the name I want to use. So if I want to release the app with the same name:
1) Do I have to use the same Bundle ID?
2) Does it matter if the app is being submitted using a different developer account?
3) What about the App ID?

What is your goal? If you want the same name, then your only option is to use a different bundle ID and see if your app name is available in a different locale within iTunes connect.
Your bundle ID has to be different. But the bundle ID has no intrinsic connection to the app name. However, again, within iTunes connect, your app name within locales has to be different.

I believe that your app will be rejected if you try to use the same name and/or same Bundle ID. The point of that is that it uniquely identifies your application
If you want to replace the older app, you will need to use the older developer account and submit an update

Related

iOS - Is it posible to reuse bundle id on the same account?

Here's a case:
My app uses Private Apple Distribution Method and is available on Apple Business Manager.
However, I want to make app publicly available on the App Store.
Is there a way to do this without changing app's bundle id?
I have some dependencies using the current bundle id so I would have to change licences for those dependencies, which I'm trying to avoid.
One option I considered is to remove the app and create a new one with the same bundle id on the same account, basically to reuse the bundle id.
Is this possible? If not, what are my options?

Can 2 same bundle ID cause any conflict?

I read from Cocoa Core Competencies
that
An App ID is a two-part string used to identify one or more apps from
a single development team. The string consists of a Team ID and a
bundle ID search string, with a period (.) separating the two parts.
However it also says that,
The bundle ID is a unique identifier that identifies a single app and
cannot be used by other teams.
I see that we can't register an App ID in the Developer account portal with same bundle ID of an app that is on the appstore.
An App ID with Identifier 'com.example.myapp' is not available. Please enter a different string.
So I don't know if 2 apps from 2 developers can have same bundle ID (like com.example.MyApp), and if this causes any conflicts?
Can these 2 apps be installed on the device?
Can these 2 apps be allowed on the app store?
How does Push Notification work with these 2 apps ?
I see that many services like Fabric Crashlytics, Urban Airship, Google App Invites, ... depends on the Bundle ID to differentiate among apps.
Can these 2 apps be installed on the device?
No, it won't. It will replace the existing app.
Can these 2 apps be allowed on the app store?
No, you cannot create Apps on App Store with same bundle ID.
How does Push Notification work with these 2 apps ?
Push Notifications will show for the app it is made for whose Push Certificates etc are made
Can these 2 apps be installed on the device?
No. If you tried to install another application with same bundle ID it will replace the existing one.
Can these 2 apps be allowed on the app store?
No. When you upload the application on an App store it will ask for unique bundle ID.
If you use same bundle identifier for two different application and try to run on device then previous application is replaced from Device and current application is installed on Device. if you want to run two different application then you can use wild card id.
for App store when you creating application in iTunes connect first it check with existing App ID(same with bundle identifier in Xcode) on app store if exits the you have to put different app id.

Transition from iphone app store to enterprise development

I have an app published on the AppStore and I want to migrate it to an enterprise developer account for in-house distribution. I read in the enterprise documentation that:
If you want users to keep the app’s data stored on their device, make sure the new version uses the same bundle-identifier as the one it’s replacing, and tell users not to delete their old version before installing the new one. The new version will replace the old one and keep data stored on the device, if the bundle-identifiers match.
Now, assuming we keep the Bundle ID the same between the AppStore binary already installed and the enterprise binary signed with a different certificate... it should overwrite the same app on their phone rather than create a second app.
I contacted Apple support and they said "No, you will have 2 apps installed if you do not instruct the clients to uninstall their old one". Is this true?
EDIT: I'm leaving my original answer below for conversations sake as there is good dialogue below. As #mja noted when you initially create an app ID it is associated with one of a few available prefixes to your developer portal and that prefix may be used by iOS to associate & differentiate between apps.
EDIT2: When I go into my Enterprise Portal and try to create an app ID with an identical value to an existing app ID but with a different prefix it still blows up on me and says:
An App ID with Identifier 'com.mycompany.myapp' is not available.
Please enter a different string.
ORIGINAL Answer:
The latter part is incorrect - iOS devices use the Bundle Identifier to differentiate between apps. I can have 20 apps labeled "Cool App" on the same iOS device so long as they have unique bundle identifiers such as com.mycompany.coolapp.1 - com.mycompany.coolapp.20. Likewise (and I've done this accidentally) if I open two projects, both of which have bundle identifiers com.mycompany.myapp, and run one right after the other the last app to be run will be installed on the device whereas the previous app will be overwritten.
Regarding the app data sustaining itself I have not tested that though I'd be interested in what happens for you!
I have managed to achieve this, so that the 'enterprise' build of the app overwrites an 'app store' distributed version.
This does not use the exact same bundle ID but does achieve what OP asked in his original question.
How I did this was, in my enterprise account, create a wildcard bundle identifier with the first two parts the same as the bundle identifier for our production app, for example:
Production : com.xyz.abc
Enterprise : com.xyz.*
Using this wildcard bundle ID, the app can be distributed and will overwrite any versions installed via the app store (user data will still persist). The prefix does not seem to matter here.
One drawback of the wildcard bundle id is the fact that you cannot use APNS etc.

App ID Services and Conventions

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.

iOS - same .app name

I've uploaded several .app's the the iTunes store, where the "executable" file (ie. filename.app) is the same.
What are the repercussion's of this on an actual device, when an actual person downloads both onto their iPad/Phone/Touch , and possibly is running both?
The best answer would be that it is inconsequential since the bundleID's store the .app in different respective folders, but I do need further insight.
The name you give the app is irrelevant. All that matters is the bundle ID. These must be unique. From the iTunesConnect Developer's Guide:
An identifier used by iOS and Mac OS X
to recognize any future updates to
your app. Your Bundle ID must be
registered with Apple and unique to
your app. Bundle IDs are app-type
specific (either iOS or Mac OS X). The
same Bundle ID cannot be used for both
iOS and Mac OS X apps.
Think about the consequences of the alternative. If I name my app MyApp and you name your app MyApp, then a user who bought both would be in trouble. The bundle ID is the unique identifier for each app. The name of the app is unique for convenience and to avoid confusion when purchasing an app, but the bundle identifier is unique to keep products from overwriting one another.

Resources