XCode 4 project falls apart in XCode 4.2 - iphone

I have a 6 month old app on the AppStore, which compiles and runs without problems using XCode 4.0.2 on Mac OS 10.6.8, and has no issues on any devices when purchased.
Recently, I wanted to roll out a new version and made some improvements that do not even involve a change in code. All looked good in the simulator, but when I tried to install my Ad-Hoc build, I ran into a problem: my devices are now running iOS 5.1.1 and it wouldn't install.
Restoring back to iOS 4 proved impossible, so I installed XCode 4.2 with iOS 5 SDK. (I'd be ok with upgrading to Lion as well but...)
The App completely fell apart when I tried to run it in the simulator, with about 50 issues here and there, and wouldn't even get past the first screen.
Although I can find my way around in the written code, I'm not a programmer, and have no clue as to how I could fix all those issues. Apart from hiring a programmer with each new iOS release, is my only option to directly release it on the AppStore and do my testing with a live product? (E.g. under a disposable App ID)
I just can't wrap my mind around as to why a product that runs perfectly fine on the actual device can not be run on the test bed.
Thanks for putting up with my rookie question, I really would appreciate your guidance.
(Screenshot of warnings: http://www.sunnyphotography.com/_temp/warnings.png )

Related

New iOS SDK Best Practices

Every iOS SDK release I skip all the beta releases simply because I never wanted to mess up my current software/SDK versions. I wanted to make sure xCode still worked fine for my current projects but I could still get a "BETA" version.
What is the best way to download the newest SDK's without messing up your existing versions?
Unfortunately, there is none. Installing a new version of Xcode might mess up with your settings. Also, a project created in Xcode N+1 (or updated with it) might not be openable in Xcode N.
For iOS N+1, it's even worse: Apple says that you can't roll back to iOS N after installing the beta. It used to work for my colleagues with iOS 6 -> iOS 5 though.
The only thing I can think of:
Install Xcode N+1 on another mac
Install iOS N+1 on another phone.
Just run multiple versions of Xcode on your machine. This has been straightforward since it became a self contained dmg package available on the App Store.
See my answer below for more information:
Can I deploy an iOS 5.1 SDK app to a device running iOS 6.0 from Xcode?

Does build made on xcode 3.2 runs on IOS 5

May be this will be silliest question but users are facing such problems.
Sorry for same.
I have made build on xcode 3.2 which has maximum IOS 4.3 and uploaded on itunes.
Now users which are downloading application having IOS 5.0 says that application is getting crashed or vanished.
So, just want to ask that build made on xcode 3.2 runs on IOS 5.0
Please help.....
Thanks a lot....
The short answer is that you have a bug in your app.
An app compiled for iOS 4.3 should work just fine. However, as with any update to the operating system, ambiguities in API calls are tightened, undocumented behaviours vanish and some APIs become deprecated. Deprecations won't cause problems (yet), though both of the others might.
For this reason you should be testing with new versions as they become available.

Lion + Xcode 4.1 deactivated iOS Simulator 3.x Testing

I searched for days, nothing found, no answer on apple dev forums, I want to be able to test my apps on older versions - on iOS Simulator!
I know - this is not the proper way of testing and not 100% reliable. But I can't afford getting another test-device with older iOS, aaand downgrading my existing devices seems to be a very tough task too - damn sure too tough for me...
Testing on iOS Simulator for 3.x versions will do enough good for those who didn't upgrade to 4.x yet and download my apps.
So please - anyone who was able to reactivate the older iOS Simulator SDKs on Lion / Xcode 4.1? - Don't tell me to set deployment target please :-)
THANKS!
Actually you can install xcode 3.2.x in Lion, and it's will automatic installed in "developer-old" floder. Your xcode 4.1 is still available.
I also want to reactivate the older iOS Simulator SDKs on Lion / Xcode 4.1. ;)
NotMyName posted blow in devforums.apple.com
By reverting back to OS X 10.6.8, and Xcode 4.02, apparently. :-(
Although it is worth noting that the Apple employees posting here have repeated a few times that this is an intended change, and one might guess that either the various simulator versions weren't particularly accurate on their API levels, or that it was just too much work to maintain. I seem to remember there being some bugs in the block implementations at the various levels, for starters.
There's also the often reported mantra, "The simulator is NOT an accurate way of testing your app's behavior."
You can't reactivate the iOS 3.x Simulator, you will need to install an older version of Xcode (one with the iOS 3.x SDK) along side Xcode 4.x (with the iOS 4.x SDK).

iPod touch debugging: Error on install/run only if app exists on device already?

I am using an iPod to test an app. The device is all set up with the right provisioning profiles, etc-- that's not really the issue.
But every time I start the app from Xcode on the device, I get the "A signed resource has been added, modified, or deleted." error from the Organizer window.
Wait, I know, you think it's a provisioning profile problem.
But here's the kicker: if I just delete the app from the iPod (using the main screen) and try again, it works fine. I only get this error when the app is already installed. The other kicker is that this behavior doesn't happen on an iPhone that I have for occasional testing-- on that device, I can start/restart/restart indefinitely. But using the iPod, my compile-run-test cycle is annoyingly slow since I have to manually delete the app each time.
Any ideas?
I'm using Xcode 3.2.2 (prerelease) FWIW. The iPod has stock OS 3.1.2 on it.
Thanks!
I had a similar problem with the original 3.2 beta 1 and my iPhone running 3.1.3. However, I did not need to delete my app to workaround it. I was able to get around it by using the clean all targets. It seems you've done that though. :(
That said, with the 3.2.2 beta 2: IDE 1643, Core 1644, ToolSupport 1631 - my problem went away.
From the release notes Beta 2:
FIXED: In iPhone SDK 3.2 beta 1, some users saw the message "A signed resource has been added, modified or deleted…" when rebuilding their projects. This has been fixed for beta 2.
Are you sure you're running Beta 2? Perhaps a re-install of xcode might help? I assume you've tried power cycling the iPod Touch?
The only thing I can tell you is file a bug with apple here and hope they fix it
I had the same ussue a couple of days ago. My problem was I had created a distribution build and installed it on my iPod through iTunes. After removing the app from iTunes and syncing the iPod Xcode stopped complaining when making new builds.
Otherwise you could try "Clean all targets" under "Project" in Xcode.
Also had this problem, try turning off the passcode lock: http://bencollier.net/2010/03/debugging-on-iphone-requires-app-deletion/

Developing for 2.2.1 SDK on Snow Leopard

I’ve installed Snow Leopard, have Xcode 3.2 and 3.0 iPhone SDK. I want my applications to run on 2.2.1, but the SDK is nowhere to be found in Xcode. I’ve set the deploy target to 2.2.1, but still I cannot be sure I am not using any 3.0-isms. (I’ve sent a sample application to my friend who still has 2.2.1 and it does not run, so it looks I really do use some 3.0 specific API.) How can make sure that my applications will run on 2.2.1? (Simulator also lists only 3.0 as version option.) I’d hate to check my sources manually for every call that might not have existed in 2.2.1.
See my question.
However, I think this is a bad situation that Apple has created for us. There really is no way to test against 2.x.x, if you, like me, have no iPhone 2.2s to test against. I actually bought a new 3Gs just so I could use the old 3G for testing. Stupidly though, when iTunes came up one day and asked if I wanted my phone updated to 3.0.1, I said yes, without realizing which phone I was updating.
I have tried, to no avail, to downgrade to 2.2.1, doing all the things like holding the home button and power for 10 seconds, etc., but I keep getting a baseband loading error.
I know Apple is trying hard to push everyone to 3.0, but not having the stats on how many users are still on the older OS, it seems prudent to keep supporting that OS. They should at least have kept 2.2.x support for the Simulator. I hate to release a 2.2.1 app based on whether I think I am using 3.0 calls or not, without actually testing it on 2.2.1.
OK, SDK 3.1 was released yesterday (September 9) and also contains SDK 2.2.1. You cannot build for the Simulator, only for the device, but most of the glaring 3.0-isms will appear as compile errors, which makes testing much easier.
Uninstall the SDK or Developer folder completley.
using Terminal execute: /Library/uninstall-devtools --mode=all, then restart, re-install new SDK.