Live iOS app: change bundle identifier - iphone

I have an app on the app store that was deployed with a certificate for an app id with a wildcard bundle identifier. Now I have to add push notifications to this app, resulting in exactly the same problem as described in this question.
The answers in the linked question say I should create a new app id with the complete bundle identifier. This is a problem, as the provisioning portal is telling me "The bundle identifier you have specified is already in use. Please select another."
I have looked at all the app ids, provisioning profiles etc. and the bundle id is not in use. Either someone else is using it or I did it some long time ago and deleted it.
What can I do about this?

Had to contact Apple developer support. After some weeks they figured out that the bundle id was taken by another account and were able to transfer it to my account.

Related

Finding Bundle/Developer for used App Name

I'm trying to upload an app to the app store and getting the following error (which is easy enough to understand):
The App Name you have entered has already been used
The app is not on the iTunes. Is there any way to figure out who owns the app or what bundle id it is associated with?
It's means the app name is already registered by another developer. If that developer already releases the app then you can find the app by searching the app name in iTunes store.
App names can be reserved for 180 days (6 months) as detailed here: iTunes Connect Developer Guide
After creating your app and it is in the state Prepare For Upload or
Waiting For Upload, you have 180 days (6 months) from your creation
date in iTunes Connect to deliver a binary to Apple. If you do not
deliver a binary before the 180-day deadline, your app is deleted
from iTunes Connect. As a result of this deletion, your app name can
be used by another developer and you cannot reuse the app name, SKU
or bundle ID. See “Deleting an App” to learn more about the
ramifications of App Delete.
This may be why the app is not in the store. There's no official way to find out who owns that name, or what the bundle ID is. That is all private to the developer's development account.
you can use the same bundle id..you just have to put different name in the app store.
It is not possible to find out the bundle id associated with it..since it might be possible it has not released on the app store

IPhone: changing signature on app update

I need an answer to the following question:
I want to develop an iOS app in two phases.
1) The app doesn't need a defined app ID so I sign it with my general purpose developer signature
2) I need to add to my app Push Notifications so I need to define a specifid app id and I have to sign the updated binary with a specific app signature.
The question (may be naive):
What happens to already installed old versions?
They will update normally dispite of different signature?
To be honest I think so since I think that the bundle id is what makes the difference and with a defined bundle id (that in phase 2 will be rhe same of app id) all the apps will be updated even if signed with different signatures.
Can you confirm this?
Thanks In Advance.
When you create an app in iTunes Connect - you get a unique Apple ID. This is what is unique on the app store.
You also create it with a Bundle ID. The bundle ID is the unique identifier for iOS.
You can't change your Bundle ID once you have associated it with an app, but you can build your app using the developer wildcard id and then later on use another bundle id for the app store.
Have a read of: https://developer.apple.com/ios/manage/bundles/howto.action

How are Bundle IDs supposed to work for multiple Apple apps?

Here is the situation we would like to have: release two different apps by the same company. Ideally, they could share login info across them but this is NOT mandatory.
Our current plan is this:
One provisioning profile with the Bundle ID "com.wikia.*"
App one (which is already out) would have a Bundle ID suffix of "app.GameGuides" so it's "Your Bundle ID" value is "com.wikia.app.GameGuides".
App two (which we are trying to release) would have a Bundle ID suffix of "lyricwiki" so it's "Your Bundle ID" value is "com.wikia.lyricwiki".
Is that how it's supposed to work or should each app have their own provisioning profile with the wildcard only for variations of the SAME app?
Any help is greatly appreciated!
[Note: App one (GameGuides) is already out, using a profile with the prefix "com.wikia." in the App Store & is also on the Android Market... and app two (LyricWiki) is on the Android Market & we're trying to submit it to the App Store but we are getting an error that our "Bundle ID" has already been used... not sure if this is an error on the "Your Bundle ID" or if the wild-carded Bundle ID can't be reused (which seems strange since it is wildcarded).]*
Docs on wildcard app IDs:
https://developer.apple.com/library/ios/#qa/qa1713/_index.html
Our company does what youre describing, com.wikia.app1, com.wikia.app2, etc. I would double check that you didnt try to submit it twice and make sure there isn't actually another app with that bundle ID, otherwise contact Apple to see why it's being rejected.

Can I change the Bundle Identifier in my app after it's been approved?

I've got my app approved a while ago and used the * provisioning profile so I created somehting like:
com.mydomain.MyApp
but now I have the necessity of adding push notifications and I can't due I am using the * provisioning profile and it needs to have its own app ID and profile.
How should I proceed in order to achieve an app update without breaking anything
The bundle identifier for an app must always remain the same between updates, but the AppID can actually be different. So all you need to do is create a new AppID that used the same bundle identifier as the original app instead of a wild card.
Apps that use a wildcard still need a normal bundle identifier. The wildcard AppID lets you use any bundle identifier you like, but it still needs one.
There used to be an Apple article about this:
but it is no longer available online However, an archive is available.
You can't change the CFBundleIdentifier of a released app if you want to release updates for it, the App Store will automatically reject it when you upload. So...
I needed to enable iAds on an app previously developed with a wildcard App ID. Here's what I did:
I have a wildcard App ID of <AlphaNumeric>.* which my app currently uses, and my app has a CFBundleIdentifier of com.companyname.mygame.
Created a new App ID of <AlphaNumeric>.com.companyname.mygame.
Created new development and distribution provisioning profiles that include the new App ID.
Download the new provisioning profiles to Xcode and my devices.
I was then able to compile the App with the new non-wildcard distribution profile, which meant on upload I could enable iAds (or Push for you). The CFBundleIdentifier didn't change so the new compilation appears as an update to the existing app.
I can confirm this process worked without issue.
Under Frequently Asked Questions in the document entitled "Technical Note TN2259," which is "Adding In-App Purchase to your iOS and Mac Applications," there's this bit
Question: My iOS application is currently signed with a Provisioning Profile
that uses a wildcard App ID. How do I enable my App ID to support
In-App Purchase?
Answer: Read the Creating and Configuring App IDs section of
the iOS Team Administration Guide to learn how you can enable your App
ID to support In-App Purchase.
The link points here, and there's a section called, "Updating Your App to Include APNS, iCloud, In-App Purchase, or Game Center Requires an Explicit App ID"
That said, I don't know (yet) at what point the app takes on the new App ID. Is it when you upload for review, before that, or when it has been approved? I am working on this problem now, so I might be able to add to this answer soon.
Edit: The explicit app id only affects the piece of software you are testing and has, essentially, nothing to do with iTunes Connect whatsoever. This means that if you are testing in-app purchases, the piece of software that's running (your app) has to have a provision profile based on a cert that is app specific. What happens in iTunes Connect is totally irrelevant.

Converting wildcard bundle identifier to single ID

I have an app in the app store that uses a wildcard bundle identifier. I want to implement in-app purchashing , which requires a non wildcard ID. How do I convert the wildcard ID of an existing app to a static ID for in-app purchase and push notification?
The bundle identifier for an app must always remain the same between updates, but the AppID can actually be different. So all you need to do is create a new AppID that used the same bundle identifier as the original app instead of a wild card.
Apps that use a wildcard still need a normal bundle identifier. The wildcard AppID lets you use any bundle identifier you like, but it still needs one.
http://developer.apple.com/library/ios/#qa/qa1713/_index.html
https://developer.apple.com/library/ios/#technotes/tn2259/_index.html
You don't actually need to change the app's id, you just need to make a new provisioning file for the specific id you've already shipped, and then sign the upgraded version of your app with the new code-signing certificate.
That is, if the old app's bundle id was com.yourcompany.myapp, and signed with a com.yourcompany.* certificate, you just make a new com.yourcompany.myapp certificate, but you leave the app's bundle identifier the same as before.
In short you can convert an already submitted app that uses a wildcard bundle ID to a unique App ID. However, you're going to have some issue(s), or fallout from a user standpoint if you do so.
Apple uses bundle ID's to identify apps on the app store (hence the term App ID :-)).
The problem that you're facing is that your app is already up on the App Store with possible user downloads. Now when you update your application with the new unique App ID, the users that have already downloaded your application (with the old App ID) will not get the update (with the new unique App ID).
The reason why this happens is that you now have a new bundle ID in your application. With no connection to the old App ID. Since apps can only have one reference to an App ID. It's usually a good idea to keep an App ID the same throughout the production release, and updates of your application.
If you create a unique ID for your App (which you can). Users that download the new updated app everything will be all fine and dandy, but for the users that downloaded your app before the update. Well... you have now officially created an app orphan for those users, these users will never get that update since it doesn't match the App ID.
As far as there being a way around this. I'm not sure if there is. I can only suggest that you ALWAYS create unique App ID's for your future production release applications.
In order to create an application that allows you to use Apple's Push Notification service, and Apple's In App Purchase. You will need to create an App ID that is a unique App ID. I would always recommend that you use unique ID's for your applications. It will save you a ton of headaches later on down the road.
For clarification purposes the following are unique ID's
com.companyname.appname (preferred naming convention for unique App ID's)
appname.companyname