Issues when updating iOS app from wildcard to explicit app ID? - iphone

We have an app in the store right now that was shipped with a wildcard app ID.
The update that is now pending approval was created with an explicit app ID, to enable push notifications.
We've noticed the following issue during ad hoc testing of the update: if we delete the app-store version from our iPhones, and then install the ad-hoc update, everything is fine. If, however, we leave the app-store version running in the background, and install the ad-hoc update over it, the updated version installs but fails to start up. We suspect that this has to do with the ID change.
If this problem is specific to ad hoc installs, then it is not a worry for us, but we are concerned that existing users will encounter this problem when doing the real upgrade from the app store.
Has anyone seen installation issues after upgrading from a wildcard-ID app to an explicit-ID version?

Related

Why does Trigger.IO app need to be uninstalled when upgrading on iOS?

I'm testing a Trigger.IO app built with Forge v1.4 on an iPod running iOS 6. I've been installing the .ipa through a distribution provision profile.
Occasionally, after installing an updated version, the app would launch but not run correctly. I traced this behaviour to the window.forge being absent, presumably due to a bad initialization. I would then make sure to kill the app process before installing updates and my recollection is that this seemed to make the problem go away.
Now, I've added the Facebook and Splash modules and my app now consistently won't go past the splash screen after I install an upgraded version unless I forcibly uninstall the old version first. Presumably, it dies before creating the webview. Any idea why I would need to uninstall my app first before upgrading? Is this a known behaviour?
I want to make sure that my users don't experience this when upgrading.
My app runs happily without Forge, and doesn't have any particular dependencies on localStorage data. I don't have a Mac and have been installing via iTunes in Windows, so I don't think I can access logging information.
You should have a look at this post:
How application get update from apple store?
The quick answer is when you update an app, you install the new bundle but you keep the user data stored previously such as a local DB. If you changed the local DB in the new app (or anything else) your app can crash when updated but is fine when downloaded from scratch.

iPhone App:Test the newer version of app first and after make it available for other users for download

I have an iPhone App which is available on App Store.
Now I have made some changes in my existing App which can be tested only when an App is available on App Store.
So I want to release newer version but I want to test it first before it it available on App Store for all users
And once it is tested and if it works fine as per expectation then only I want to make it available for other user.
How can I do that?
The short answer is: NO - there is no way to make an app available on the app store that only you can download and test.
If you can specify exactly what it is that you are trying to test that only works when the app is live, we may be able to suggest a different approach.
EDIT: if you just want to test the upgrade process, you can just install the new version on top of the old one - there's no need to delete the one already on the phone. For example if you download the version from the app store, run it, and then build and install a version from Xcode, it will install on top of the app store version, and keep all the settings and documents from that version, just like if a user was upgrading.
Also read up on "wireless distribution" for adhoc apps. Using wireless distribution, you can download and install the app from a link on your phone, just as if you were doing it from the app store, except the link will only work for UDIDs that were included in the adhoc profile.
Two choices:
OTA AdHoc Distribution
Set up over-the-air Ad Hoc distribution. These guys can help: https://testflightapp.com/
A user can install an adhoc build over an appstore build without deleting data, and vice-versa.
Side-by-side Builds
Ok, so your question is about side-by-side installation: you want a user to have the real app and a test version on the phone at the same time. To do that you just need to create version of the app with a different bundle Id. So if your app is com.myco.MyApp, create a copy of it as com.myco.testing.MyApp. Then use Ad Hoc distribution (or whatever) to get it to testers.
I've got a build script that updates the bundle version with the build number. I'm actually just about to update the script so that it will modify the bundle Id so I can have side-by-side testing. This is what I do for the bundle version on my build server:
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion '${PROJECTBUNDLEVERSION}'" $PROJECT/Info.plist
Presumably can do something similar for the CFBundleID:
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier '${PROJECTTESTBUNDLEID}'" $PROJECT/Info.plist

After upgrade in app purchase product id is invalid

I'm testing my in app purchase code for an update to my app. The in app purchase works great when I do an install from xcode to my phone. The issue arises when I have the currently released version installed on my phone then I install the dev version over the top of the release version. When I install in this way my product ID comes back as invalid even though I've tested it many times and it works as long as I didn't have the release version installed previous to installing the dev version.
We did alter our Bundle ID in this update but everything has worked except when we install in the way I described above.
Has anybody encountered this behavior before?
Also the currently released version does not have in app purchases.
This happens all the time.
If you install your development version over the App Store version - new In App Purchases IDs are returned as invalid.
This will work perfectly when you upload the new version to the App Store.

How to test an iPhone application update?

I already have an iPhone application (version 1.0) available in the App Store and am ready to submit a newer version (version 1.1). How do I test the new upgrade to make sure that the current sqlite database and property list files on the earlier version do not get deleted/overwritten etc? The new version assumes the old data in both the sqlite database and property lists remain.
Or better yet, is there a resource I can use to walk me through what to watch for when developing an application update?
The way we tackled this when we wanted to test our database upgrade code was to use ad hoc distribution.
We had our testers download the 1.0 app from iTunes and install it on their test devices.
Then we built an Ad Hoc distribution of the app using a configuration based on the Release config, and made sure that it had the same bundle identifier. As long as the bundle identifier is the same, the new app should overwrite the previous version.
We asked our testers to install the ad hoc build as they normally would, by dragging it into itunes and then syncing the device to simulate upgrading.
As far as I know, this is identical to the user downloading and installing an upgrade via the app store on the device itself.
As you'd expect, the documents folder should be left intact, leaving your database in place, and your app should be able to run its upgrade code to modify the database in the way you need.
Hope this helps :)
Test like so:
delete app from device.
install v1.0 app (or .ipa file) into iTunes
sync to device, iTunes will install the app
launch app on device, create and save data, etc.
quit app on device
install v1.1 app (or .ipa file) into iTunes; iTunes will ask to confirm replacing older version of the app.
sync to device, iTunes will update the app
launch app on device
test using existing data with new version of the app.

Why can't I update ad hoc iPhone apps?

I have a script working well for creating ad hoc iPhone builds. I can drop the app and mobileprovision file on iTunes (Mac version), and it installs to the device without a problem. But if I generate a new build and drop the files on iTunes a second time, I always get the dreaded "could not be verified" error on sync.
The only thing that fixes the problem is to delete the app and profile from the desktop and device, sync, and then drop the new copy and sync again. I've tried every variation of deleting the profile or app on only the device or desktop, and nothing other than cleaning out both will fix it.
Does anyone know if this a bug in the installation process for ad hoc apps, or am I missing something?
Are you changing your version for each build?
I don't remember getting an error message, but I found that if I did not change the version information each time, I could not drag and drop to install the new version. I would need to delete the app first.
Not sure if this will help, but it is the only thing I can think of so far.