If two apps have different Bundle Identifiers but the same title, does it mean they will store in the same place in the real device?
Bundle identifiers have to be unique which means you can not have two apps with the same bundle ID installed on the device. The product name does not have to be unique which makes a lot of sense because it would be difficult to avoid accidental conflicts.
It's been years since this has been posted. But thought this might be helpful to someone who's looking for information.
Bundle Identifier is something which is unique to each app. Each app on the AppStore must have a different Bundle Identifier, else you are going to face problems when you are going to submit your app to the app store.
Regarding the title of the app in the phone menu, it doesn't matter as it's just the display name of the app on the phone.
But when you are picking a name to display your app in the app store, it should be a unique one. Anyway Apple doesn't let you to have two apps with same name in the app store. If someone else is having your name you have to change your name or if you have trademark rights to the name and would like it released for your use, you will have to submit a claim.
Related
There is an app in the iOS App Store that's using the name I really want to have. It has 0 reviews, and looks like it hasn't been updated since 2013.
I'm wondering a few questions here about my options...
Can I have the official name of my app be one thing (like when you're searching for it), but have the bundle identifier text that shows up under the actual icon be something else (the name which is reserved). I'm mainly concerned about the actual text under the icon.
If I were to reach out to this company and they agreed to change the name of their app, is there anything else that would need to happen? Or could they upload a new binary with a new name, and literally 1 second later I click 'create new app' from within the iTunes connect?
Thanks!
It mainly depends how different the names are. Lots of apps are named something like "AppName - Best App Ever" in the App Store, but are just called "AppName" on the homescreen. Some app names on the home screen are sometimes acronyms of their App Store names. If the names are completely different, Apple will not allow it.
I believe the other company will have to reach out to Apple for switching the name over to you.
As my experience with several projects published on App Store, I can tell you:
Your app bundle name (name below icon in your device) is different from your App Store name (App Store name has to be unique).
To change your App Store name, you must create a new version and rename with Itunes Connect, then upload a new binary.
To make changes to the app information, create a new app version.
To change your App Bundle name, you must create a new version, upload new binary with new Bundle name (you can config in info.plist).
Hope you can solve your problem.
I'm stuck in a slightly weird situation. When our app was first created, nobody really knew what they were doing and I'm trying to clean things up a bit.
In the iOS developer center, it seems that there are two App IDs for my app. I think I can delete one of them, because the other one is the one that is actually being used, but I'm not 100% sure.
Here is the App ID that I think is actually being used in our released app:
Here is the "other App ID":
The annoying thing is that the "other App ID" seems to match the bundle ID of the app and xCode seems to be trying to use it as the application-identifier when the app is submitted to the store. I don't want the application identifier to change.
Is it safe to delete the other app id? Can I force xCode to use the correct application identifier? How can I tell which app ID is actually being used by our released app?
Edit:
Why this arose is because after submitting our latest build to the store for testflight, I got this notification:
Dear developer,
We have discovered one or more issues with your recent delivery for
"My Cool App". Your delivery was successful, but you may wish to
correct the following issues in your next delivery:
Potential Loss of Keychain Access - The previous version of software
has an application-identifier value of ['ABCDE.MyCoolApp'] and the new
version of software being submitted has an application-identifier of
['QWERTY.MyCoolApp']. This will result in a loss of keychain access.
After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to iTunes Connect.
Regards, The App Store team
The fact that the application-identifier is changing, and that it appears to be using the "prefix" as part of this value, suggests that it was using the first app ID, but now it is going to use the second.
Do you have access to login in to the iTunes Connect for that account? That's what you really need to verify the bundle ID (aka app ID) of the released app.
Login at itunesconnect.apple.com, click on apps, click on your specific app, click on the 'more' tab, click on 'about this app' it will show you the bundle ID being used for the released app. Feel free to delete the OTHER app ID out of your account. Not the one in iTunes Connect :)
The bundle ID in your Xcode project can always be modified to match whatever app ID you'd like, as well as you can easily regenerate any necessary provisioning profiles for any app ID. (of course, you should make it match the existing one in iTunesConnect if you want to release an update for that app)
Edit:
It sounds like you've been able to match up the app ID, but not the prefix. The way prefixes are assigned has changed over the years and now they are all team based. You can read this technical note and see if it will help you resolve the warning you encountered.
Developer Link
The primary difference between your 2 App ID is the ID:
the first one has '*' as ID. It means it is a wildcard ID. You can create multiple applications using different bundle identifiers with the same provisioning profile using this ID. But you don't have access to specific capabilities such as Push Notifications, in-app purchase (because multiple apps will share the same profile
the second one is fully qualified and can be used only with the app whose bundle identifier is 'MyCoolApp' and can have access to full capabilities of apps.
Note that your app ID naming convention should be in reverse url format as Apple advices: myCompany.myInternalGroup.myAppId.appFlavor for instance.
As I researched that you can not use same app name in iTune whenever you are submitting app is App Store.
but I want to know that is possible multiple apps having same name in springboard?
There's no official rule against it. For example, both Shazam and Shazam Encore appear on the home screen as "Shazam". But if Apple thinks you're doing something weird, or shady, or not in the user's best interest, they might reject your app anyway.
Obviously your bundle identifiers must be unique.
Yes, it is possible but the bundle identifiers must be unique.
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'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.