iPhone app update doesn't validate because of bundle id - iphone

We have not been able to publish our first update to our iPhone app on the app store.
The validate step after build always fails with:
"This bundle is invalid. The bundle identifier cannot be changed from the previous version. If you want to change your bundle identifier you will need to create a new application in itunes connect."
We have only one Apple account with only one app. We have not changed the bundle id in the plist file ever since we released earlier in the summer (it was different before we released though). it is "com.company.product" (with our real company name and real product name all in lowercase). We only increased the version number from 1.0 to 1.10 (after seeing articles here with problems going to 1.1)
The iTunes connect is expecting 1.10 and the same bundle id. Spent 2 days Googling but can't find anything useful and tried different versions and bundle ids etc but nothing was good.
Please help!
(I have also sent an itunes connect question on this to Apple but no response so far)

I got this error before, I'm not sure however if you have done the same thing I did:
In versions 1.0, 1.1 and 1.2 of my app, it only supported iPhone. I then got an iPad of my own for testing. In version 1.3 of my app, I updated it to support iPhone and iPad. It wouldn't upload, giving me this error. Turns out if you want a universal app, it has to be universal from the start, you cant decide in version 1.4 or whatever that you want to add iPad compatibility.

Related

Can't test iPhone app update as an update

I have been working on an iOS app update and am ready to submit it, however I am having a small issue I am concerned about. I create an ad-Hoc version for testing and when I try to synch the update over to my phone via iTunes it won't give me the 'update' option next to the app. The buttons in iTunes says 'remove'. iTunes actually forces me to first remove the old version of the app and only after it is removed, iTunes gives me the option to install the new version and then the app works fine. The only problem is that this is not really testing the update process and I am concerned that once I release the app to the app store my users will have the same issue where they will not be able to just update the app, they will have to remove the old app first and then install the new version. Any idea what might be going wrong here?
iOS takes care of updating Apps, as far as bundle identifier in your info-plist is the same, any newer version will show as an update in iOS. But in iTunes things work differently. You don't have to worry about these things.
If you want to test effects of updating an App, Install the old version from AppStore. Connect your device and Run the project from Xcode. Now this will work the same way as updating your app.
There is no problem from your part. Maybe this time iTunes is not smart enough to know that your ad-hoc version is an update one or maybe the version of the app on iTunes and on your phone is the same. I've made a lot of update to my apps, when you submit a new one to AppStore your user won't face this problem. They will find an update button for your app :).

Updated app with new explicit app id, in-app purchase. SKProductsRequest returns empty list of products

Background:
The current for-sale version of my app uses a wildcard app ID, and the bundle ID is simple and doesn't conform to the com.companyname.appname convention (it's just 'appname'). The App ID it uses is simply of the form 'bundleseed.*', resulting in, I believe, 'bundleseed.appname' when signed with the provisioning profile. (Why? Because this app has been around since the early 2.x days before Apple recommended explicit App IDs, and before XCode introduced the com.companyname convention.)
I'm adding In-App purchase to the app, which requires an Explicit App ID. I've followed the instructions in Technical Q&A QA1680 Updating from a wildcard App ID to an explicit App ID. The result is that I have a new explicit app ID of the form 'newbundleseed.appname', and the new provisioning profile used to sign the app specifies this. The bundle ID in the info.plist remained the same 'appname'.
Problem:
When I deploy the new app from XCode over the top of the old version it appears to work fine. The old-version app instance is replaced with the new app and all of the new features are in place. However, when the app submits a SKProductsRequest it results in an empty list of products. If I deploy the new app as a fresh install (not copying over an old version) then everything works as expected - SKProductsRequest results in a full list of my available products.
I also noticed that the upgraded build carries forward some aspects of the old version, which is strange to me. Specifically, the old version of the app had a default.png which the new app doesn't yet have as part of the build, yet the upgraded app displays the old default.png while it is loading. It's as if the upgraded app is a merge of the old and new.
My primary concern is that In-App purchase will work for my upgrade users. Am I doing something wrong with the Explicit App ID, or is this just an issue with the fact that I'm using the In App Purchase sandbox? In which case, ow can I be confident it will work when released?
Also, any insight on why/how the new app doesn't seemingly replace the old app bundle in-full?
The only thing I can think of is that instead of generating a new bundle seed (as detailed in QA1680), I should have used the old bundle seed when creating the new App ID. i.e. the old App id is 'oldbundleseed.*' and my current new one is 'newbundleseed.appname', and perhaps it should be 'oldbundleseed.appname'. But I cannot do this because the provisioning portal wont let me create an app ID that differs only by bundle seed. If this is my issue, what to do? Contact Apple?
TL/DR: an existing app, updated with a new explicit app ID as to support IAP, works fine except that SKProductRequests result in empty product lists when the app was updgraded vs. a clean install where they result in a populated product list.
How are you doing the upgrade? If you are do a build and run, you will end up with this problem where app is not completely re-written.
Xcode makes some "optimization" decision and copies only files that are really changed and it messes things up.
Create an adhoc distribution and download it to the device that has the older version of the app. Check if that adhoc build enumerates it properly.
Do you implement the request:didFailWithError: delegate method? It is part of the SKRequestDelegate protocol to which the SKProductsRequestDelegate protocol conforms.
I have to agree that StoreKit is not adequately documented. It has been my experience that if iOS sees the same app with different appIDs, it behaves as though they are two different apps rather than overwriting (or partially overwriting) an app with the same title. Still, if your development device is jailbroken: launch the app (in its problematic state), ssh into your device, run launchctl list and see how iOS IDs your app in the resulting list.

This bundle is invalid. iPhone App submission error

Perviously the client uploaded same app on iTunes connect and rejected for some reason.
After some modifications I need to upload the binary again.
The previous binary details are,
Now, here are the current info.plist details,
I am using Xcode 4.0
When I tried to validate product from Xcode I got this error,
I tried different different CFBundleVersion in the Info.plist. but still error occurs.
I cleaned project, deleted build, also re-installed Xcode and retried but no use.
Please help me.
So it looks like this needs to be an ever-increasing version number and can't reset when the marketing version number changes. It seems like you could use your VCS revision number here; in my app I display the marketing version number and if the user "clicks" on it it adds the build number (CFBundleVersion) on the end. The primary purpose of this is to keep the version number clean and simple, but also allow QA and beta testers to determine the exact version of the product they're testing. The Subversion revision number would certainly help us track down the build being used, but in this case that'll be a strange version number jump for me (6 -> ~74000).
basically i had to change 1.1f to 1.11 in both itunes connect and in xcode. the f had to be removed from the version number. no alphas allowed !
Reference: Can't Update App with New Version Number

Problem in updating app on iPad

I created an app for iOS 3.2 for the first version 1.0.
Recently I created an updated app for iOS 4.2 with print feature etc. for the second version.
My problem is that, the users are not able to update the app from appstore.
They are facing issues like data loss of version 1.0 app, crashing etc.
Can someone explain me what can be the reason for this?
And, how can I test this thing on my device, as I am not having the version 1.0 app from appstore, but the code for both versions.
Delete your new one on your test device and install the old one. Then build and debug the new one line by line. I had lots of trouble my first time through due to confusion over the update/migration process of core data. If you use core data, chances are your existing customers have an out of date store DB that your new code is crashing on. The store doesn't get wiped in an update if it's in your user's document directory... Only the one in the app bundle. You'll need to handle that reset or tell core data to migrate it to the new model. Of course, all this is speculation since you've given almost no details about the problem, frameworks used, log files, etc.
During a normal install process, data should not be overwritten. NSUserDefaults and files should remain during an upgrade, as long as the user doesn't delete the app first. I assume the crashing occurs after the new version is installed?

Consequences of not updating the bundle version for an iPhone app?

I submitted an update for one of my iPhone apps last week and just realized I forgot to change the bundle version in Info.plist before I submitted. The update fixes a critical bug, so I want to get it into the store as soon as possible. The app update has not been approved yet. I am debating on replacing the binary with the updated bundle version or leave it.
What are the consequences of leaving the bundle version the same as the previous version of the app?
Apple may not accept the update as the bundle version is the same as what is currently on the app store
If it gets through Apple, iTunes will not automatically download or synchronize to the phone (you can see this behaviour using an ad-hoc distribution)
I'm surprised it even got through. I forgot to do that once, and itunes connect wouldn't accept my binary. I'd say you should leave it as it is, since you probably did change the bundle version in itunes connect, when you were uploading the binary, and so it should all work out. I'm not exactly sure though, cause I'm surprised it is even possible.