iPhone:Problem when submitting the app which has same bundle identifier - iphone

I have created a provisional profile using 'Non Wild Card App ID'. Which does have like "com.compnayname.appname". As i want to use this for my free application as well as the same application with new set of features as paid application, i followed to not to use Wild Card App ID. Now i have submitted my free application, it is being shown well. I am trying to submit the same app which has more features, as paid application, iTunes connect throws error as "The binary you uploaded was invalid. The bundle identifier is already in use by a different software package.". I used the same bundle identifier for paid app build too when creating Distribution build, because provisional profile is created same for both the apps. I also tried to create a build using "com.compnayname.appname.moreinfo", but app building is not successful as Prov Profile is being created with "com.compnayname.appname".
What can i do now? How would i use the same provisional profile and bundle identifier for my same free app and paid app? Then what is the use of creating 'Non Wild Card App ID' ??
Note: I know creating of Wild Card ID and use it. But i wanted to use Non-Wild Card ID for both the apps(but same app), free app and paid app.
Could someone please help me on resolving this?
Thank you. Appreciate your quick help.

if it's the same app, use the same ID, but make it an "upgrade" from your previous app, that is, use the "upgrade this application" button in iTunes Connect. This will mean people who downloaded it before for free will get the new version for free, but you can charge new users if you want.
If you don't want previous owners to get the new version for free, then it's really a new app, and needs a new bundle ID.
Another option is to make it an upgrade, leave it free, and use in-app-purchase to unlock the new features.

The documentation states that if you are building a suite of apps that should share the same settings etc. then you should be using a wildcard app ID.
I don't believe it's possible to use a unique appID for two apps. Then it wouldn't be unique.

Related

xcode app submission error: "no eligible software found, make sure this software is owned by your developer organization"

I'm getting the stated error when trying to upload an app submission to itunes connect on an organization I am a member of, but who's itunes connect username is different than my my apple developer ID.
The problem is I have a single Apple Developer ID I use for all my IOS development across multiple organizations. my.name#gmail.com That id has been added to multiple organizations in the IOS Member Center. On Itunes Connect however, it does not let you add an existing Apple ID (or existing Itunes Connect user on a different organization) as a new user to an organization.
So if I'm a member of 3 organizations, each one uses a different Itunes Connect email, usually the email for that org, not my main gmail Apple ID.
When trying to upload using XCode, I get this error since they don't match. How can I work around this? I fixed it for one organization only by using my co-worker's ID which matched for his appleID+itunes user. However I'd like to be able to do it on my own.
I tried adding individual org emails as xcode emails, however none of them are Apple Developer accounts, and Xcode refuses to use them.
How can I upload my app to a new org I'm a member of on Itunes connect??
EDIT
I tried using the Application Loader tool from Xcode menu, and I get a different kind of error shown below. I tried with App Store Build and Ad Hoc build. This is a development build only at this point which I hope to use for internal testing via Itunes Connect Testflight, so we're not using Release/AppStore provisioning profiles yet, nor have we even created them yet.
EDIT 2
Apple docs say:
"A single Apple ID can be associated with multiple Member Center teams. Using the same Apple ID, you can enroll as an individual and join other teams. However, you can only be associated with a single iTunes Connect team. Consequently, developers should create another Apple ID for different individual or company accounts that they want to manage separately in iTunes Connect."
This is true for itunes connect. But how does one then submit builds to these other itunes connect accounts, from xcode?
I was able to sort this out and thought I'd share for others looking for answers. Because I have a single apple developer id and multiple iTunes Connect ids, that is the core of the problem. Xcode would not let me put and use a non-developer account id into the user preferences. The solution was to use the Application Loader tool.
An Overview of necessary steps, which I use for every deployment now:
Make sure your Release build is using a Distribution provisioning profile and not just a development one. Don't use "Automatic" either, even if it sometimes works. I use an App Store profile, even for test flight releases via ITC. Create the provisioning profile on apple's ios center manually, call it something obvious like "[APP_NAME] App Store Distribution". Then in the Xcode build settings, set the release profile to this name. Secondly, make sure the Code Signing developer is the one on this profile, it doesn't always toggle default to that.
Archive your app as usual to generate the build.
Do not "submit" app from organizer, instead do an export, export to file.
When prompted, choose "App Store Submission" instead of "Ad hoc", otherwise it will fail.
In Xcode open Xcode->Open Developer Tool->Application Loader
From here you can add/select any of your itunes connect users independent of Xcode.
Choose "deliver your app" to submit, and choose the exported build file.
This should get the upload to itunes connect. If you are using TestFlight in ITC and it is setup, this will result in a new TestFlight push.
When creating a new app for each organization I work with, I always setup the new Distribution profile immediately, don't start using "Automatic" or let Xcode "Fix it...", as these may work once, but will likely cause issues or failed releases later. Always name your profiles to include the app name, distribution and App Store, as once you start doing this a lot it is easy to confuse them if you're just naming them non descriptively like "MyApp's profile".
"No eligible software" suggests that either the appID doesn't exist or it exists on the wrong developer account (perhaps Xcode auto created).
Check the team you're using normally (if it's wrong, XC might have done something useful but in the wrong account). Start with Xcode Preferences > Accounts then details of the preferred and current teams in question. After that, check in the devcenter (making sure you're logged in as the team you're trying to submit under) - check your appIDs and see if the app you're expecting to see there actually is.
Also make sure the iTunes Connect account you're using to upload has the "technical" role (per https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/UsingiTunesConnect/UsingiTunesConnect.html)
In my case the problem was I didn't realized that "Application Loader" has a login!
So I just select Window menu / Sign In as.. And enter the same developer account I used to create the "certificate and provision files", that I used to compile the app.
Please match the bundle Id from itunesConnect & Xcode.
I was getting same error & solved with bundleID.
Change your Application Loader user account to application's signed user account.

Error Submitting My App to the App Store

I have setup my App Buddle ID in the Provisioning Portal. (I am NOT using any wildcards in the name.) I have been able to successfully generate provisioning certificates and have run my app on my device and have even distributed via Ad-Hoc already. However, when I then go into iTunes Connect, (or using the Application Loader), I click on "Manage Your Applications" and then I add my company name and hit Next... and then I get the message "You have no eligible Bundle IDs for iOS apps. To register one click here." The "here" links back over to the Provisioning Portal where I see my Bundle ID. It's like the Portal and iTunes Connect aren't in sync. This has been going on for about two weeks now. Several others have reported this error but none of the suggested solutions I have read work for me. It's a free app so I don't need a paid contract or anything. iTunes Connect shows that all is good on the contract and banking side of things.
I have been unable to get any resolution on this from Apple. (I've called the Developer Support line and posted on the Apple Developer Forum. TWICE!) Any help would be GREATLY appreciated.
Thank you!
Before you create an app on iTunesConnect, you must create an AppId on the Provisioning Portal. Note that if you have already used an AppId (even if you deleted the app), you won't be able to use the same AppId again.
Try creating another AppId and using it to create your app on iTunesConnect.

Adding Tester to TestFlight

If I add a tester to TestFlightApp.com They get a link to register their device. This then downloads a profile, which is called TestFlight Access. Not for my app.
What is this profile for and how does it relate to my app?
Also do I still need to add the tester's UDID to the apple developer portal, myself?
That profile allows the service to gather the UDID of the testers device. This way the user never has to manually search that UDID and it is possible for the service to provide developers who invite users that information automatically.
Additionally, the installed web clip will authenticate the device against the service, so the apps that can be installed will be offered. These apps are found by comparing the UDID of the device against the provisioning profiles of all apps available.
So yes, you still need to add the UDID to the provisioning profile and compile your app against it.
The profile process is provided by Apple and well documented here: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009505
There are also other services who leverage that functionality for "easier" gathering of UDIDs and providing an easy way to let users download their beta apps.
I'm jumping in here to say, yes you do need to re-build your app with a new profile that includes the new tester's device UDID. I'm having a problem with this for one tester only, that no matter what I do TestFlight refuses to acknowledge that the profile I am using has this one person's UDID in it yet it does. I'm writing to their support group about it and will let the forum know what I find out if anything useful.
The profile allows the test flight app to install your app. And yes, you will still need to add their UDID to the provisioning profile.

Upload IPhone app to device instead of other app

So I'm not that familiar with the process of Provisioning profiles and certificates.
Currently I have one app I'm developing that I can upload to my device.
Now, for testing reasons, I want to write a very simple app and to upload it to my device as well. The thing is, is that I don't want to configure another app in iTunes connect and provisioning profiles, so I thought maybe it's possible just to change the bundle identifier of the second app to be the same as the first.
However, in XCode I get the following error :
"Code Sign error: The identity 'iPhone Developer' doesn't match any identity in any profile"
Any way to make this happen?
If you set the bundle identifier of the 2nd app to be the same as the 1st, the 2nd app will replace the 1st one on your phone.
If you want the ability to have both apps installed at the same time, you need a new app id.
But you don't want to create a new app id for each test project.
The idea is to recreate the Team provisioning profile available for the Company developer program (I guess you subscribed to the individual developer program).
Create a new app id with bundle identifier set to *
Create the provisioning profile associated to this app id
Download and install this generic provisioning profile
With this wildcard profile, you will be able to install any test application.
Please request a certificate to apple through your paid developer account, generate a provisioning profile and install this in mac as well as in your device. then choose your provisioning profile and build and run your app through this provision.then it will install in device. There are details in developer.apple.com regarding to this. If you feels confusion please mail me sandeep.kniit#gmail.com. i will reply you asap.

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.