iOS App won't start after OTA deployment of the same version - iphone

We're distributing an iOS App over the air to our beta-testers. We've now noticed, that if a tester installs the exact same build of the app he already has on the system, the app won't start anymore. There are no provisioning warnings or anything like that. The screen just goes black for about 1/4 of a second and the app quits again. If we delete the app, the install will work fine after that. Also upgrading the app to a new build works fine. This only happens if we try to install the exact same build. Has anyone experienced something similar?

A reason of crash of a new version of the app is that the serialisation of objects in cache has changed. If it's the case, you may clean the cache at the first launch.
Another reason may be an old expired profile.

I had this same issue. It turns out that the issue was related to the naming of the Bundle ID and Product Name. The bundle ID suffix should match the product name exactly without spaces or special characters. Many people (including myself) have changed the product name to reflect the name that they wish to be shown on the iPad home screen. It turns out that this should not be done, and the proper method is to match the Product Name to the Bundle ID suffix, and then in the Info.plist, there is a property called "Bundle Display Name" that can be changed to reflect what will be shown on the iPad's app home screen. Once I made this change, the error went away in all of my apps.
For example:
Bundle ID:
com.company.AppName
Suffix:
AppName
Product Name (Build Settings):
AppName
Bundle Display Name (Info.plist):
App Name (this can be whatever you wish)

Related

iOS app icons updated, not showing on clean Build/Run

I'm prepping for my first update (1.0.1) on the AppStore and will be changing the icon in the process. I deleted the old 57x57 and 114x114 icons, dropped new ones into Xcode 4's target summary, and did a clean build/run. The new icons show up in Xcode, but not on the device's home screen.
I suspect if I delete the app and redo the above steps, this may work, but that leaves me to wonder if an AppStore distribution will update the icons for all users.
Is there something I'm forgetting to do to update the icon for this next release?
I was having this problem when replacing icons for an app, the new icons didn't show up on the iOS device, no matter how many times I did a clean/build. The solution for me was to reboot the device and the new icons were recognized.
I'm guessing this is a problem only in development, it is likely that the cached icon is refreshed when an app is installed or updated from the App Store.
The answer turned out to be that my new icons had slightly different names than the old. Strangely, Xcode never complained and still showed them next to the target and in the summary.
Lesson learned: When doing an app update (or "Appdate"), modified resources need to be of the same file name to be found. It seems replacing a resource with a different resource is not sufficient. Overwriting the old resource is the way to go.
It will update the icon for the user's when it's distributed. I had an app i released to the app store that I had gotten from Google Images and made into an icon. Long story short, I had to change my icon so it didn't look like another App's which had the same icon! If you change it in your Build Settings you'll be ok.
If you change your apple-touch-icon.png for both regular and retina in your Build Settings, it will update on the app store, and the end user's ultimately. Bottom line. It should've did it for yours, I don't know why it didn't?

iPhone - changing the product name

I have an application on the store that has two versions: for iPad and iPhone. I have noticed now that one of the apps have a misspelled name on the product name field on the target info (see picture).
I wonder what would happen if I correct that. Will I have problems changing the name there?
My concerns are:
iTC complains that the app is not the same as before
The corrected version is not seen anymore by iOS as an upgrade to the old release. So, users are unable to update and will be forced to buy it again to continue receiving updates
Do you guys know something about this?
thanks.
It shouldn't matter. What determines the uniqueness of your app is its App ID.
The Product Name is just the name displayed on the home screen.
So as long as you don't change the App ID, you should be fine.

Submitting for App Store in 4.2: Strange "Whitespace" error from XCode submission validation

I originally submitted and was approved with the 4.1 SDK. I upgraded to the 4.2 and was making some fixes, and when I tried to submit to the App Store I got this message:
"Filename may not contain whitespace."
My info.plist had the default ${Executable} as the Executable File property. I went ahead and changed it. Tried rebuilding, and got the same error. Strange thing though, the filename that XCode was assigning was a match to my "Bundle Display Name," which is what controls how the app is named in Springboard. I changed the Bundle Display Name property to have No_Spaces, and the app passed validation.
I don't really want my app to have an underscore in the name, so I'm wondering if this is a bug or if I missed something somewhere. Keep in mind that NOTHING other than some code tweaks changed between submission and approval in 4.1, and submitting in 4.2
Look at this Thread:
https://devforums.apple.com/message/282652#282652
Known problem with XCode 3.2.5
Change the Product Name in the Distribution Build Settings for your app's Target, and remove spaces from that name. It's one of 5 "names" for an app (Target name, Product Name, Bundle display name, Bundle Identifier, iTunes store name), which can all be different. You can still have spaces in your iTunes name and the under-the-icon Bundle display name.

Unable to have two versions of the same app on the one iphone

I have two versions of my app. I'm trying to keep a copy of each on my iPhone for testing purposes.
In my build settings, my bundle display name is ${PRODUCT_NAME} and I've given each version of my app a different product name (eg "v92" and "v10"). When I install each version to my iPhone, they both appear side by side with different names, however one will work normally, and the other will immediately close the moment it's opened. If I delete the version that works normally, the other will start working.
Does anyone know what's going on?
I think the apps are distinguished on the device by the App Id and not the product name. I dont know how you were able to install two apps only by changing the product name. When i mistakenly installed a different app with same app id but different product name the original app was overwritten.
Try creating a separate app id for the new version only for testing. That might solve your problem but make sure you use the correct app id when you submit your app.
EDIT: It might not be the right solution if you are doing some app id specific stuff (like APNS) in you app.
I ran into this one too and eventually solved it. I know the solution had to do with changing something in the information property list, but I'm not sure exactly what. I would suggest making sure that all of the following are different for your two versions:
bundle display name
executable file
bundle identifier
bundle name
At least you can create two app id's and two provisioning profiles in your developers account. Then you'll be able to install your 2 versions like a two different apps. It's an ugly solution, but it definitely works.

creating a free version of an app, but having the app separate on debug device

I was just making a free version of one of my apps. I copied the folder, renamed the project, and changed the icon file, loading screen, interface, and code. BUT YET it still replaces a build on my phone.
1)how do I stop this from happening (i want both the free and paid version on my phone)
2) if you can fix this, will a customer who has the paid, and downloads the free, will that replace it on their phone?
I really need to know these, as I have the app ready to go, and would like to get it before the end of the week.
cheers
Sam
You need to have a different app bundle identifier. I think that's your problem.
Long answer:
Go into your projectname-info.plist file and change the CFBundleIdentifier.
I'd recommend something like:
com.mycompany.mycoolapp for the app store
com.mycompany.mycoolapp-beta for the beta version
You should actually be able to set up the "Debug" build configuration to use a different info.plist file configured with a different CFBundleIdentifier and a different icon filename. That way you'll automaticlly get the beta ID and icon, etc for the Debug build and the real id/icon for the full one.
This should allow users to install and use both the production and test versions of the apps at the same time without confusion.
You might also find this IPA target template helpful if you're doing ad-hoc distribution to Windows users for testing:
http://devblog.appmagination.com/2010/01/target-template-for-building-iphone-ipa.html