This week I ran across an interesting problem. I was taking an older version of one of my company’s apps and making some minor feature adjustments and redeploying. I spent about 5 hours updating the code, debugging and testing. I then spent about 16 hours trying to get the changes to deploy on my device.
What was strange is, this had never happened before with this app and I had other apps that I made changes to where there was no problem.
Here are the scenarios:
Created a debug build and deployed to my iPad and iPhone directly from Xcode.
Macbook Pro 2011 - OSx Yosemite 10.10
iPhone 5 - iOS 8.1
iPad 3 - iOS 8.0.2
This build worked as expected. Nothing really to report. I was working in this method for the entire development cycle.
Created an enterprise build and deployed via the classic Testflight service.
When I tried this method, a few unusual things happened.
1. The app loaded as expected, but the icon was in a disabled state where you could not launch the app and it was semi-transparent.
2. I also received the error message: “Unable to Download App – ‘Appname’ could not be installed at this time.”
No matter how many times I selected retry I received the same message. I figured that I set up the certificates incorrectly. But after revoking the certificate and recreating everything I was convinced that this was not the problem. I also used iTunes and tried to drag and drop the app right on the device with the same results.
Next up was scouring stack overflow, I found a few helpful tips, but I did not really find anything that solved the problem.
At this point, I started looking at some of the core files that are used to load the app. I started
comparing some of the core app files to the app that I had that was working. I quickly identified that that info.plist was different between the two apps.
I renamed the non-working app plist and copied the working plist over. I did and enterprise build and it worked just as expected. At this point, I took the working plst and added all of the custom settings from the backup and everything still worked as expected.
I can’t say for sure but it looks like there is some difference in the legacy plist that does not agree with the new way of doing things.
Problem solved, I don’t plan on breaking this down any further, but I am going to submit a Radar to Apple, they may want more information, if so, I will update this post.