Testing on iOS 3.1 simulator - iphone

iOS project. Base SDK 4.2, deployment target 3.0. A customer is complaining about an issue on iOS 3.1 (he has an old device).
I tried installing Xcode 3.2.3 - the oldest there is for download. It does not offer iOS 3.1 as a test target. Does anyone know how can I enable older versions of iOS on the simulator?
The box also has Xcode 4 (in a different folder). Could it be the case that they're sharing the iOS simulator, and the backwards-incompatible one from Xcode 4 is getting in the way?

There is no substitute for testing on a real device.
I've had a problem with my iPod touch (3rd gen, ios 5.0) crashing in one app. Every day. The dev won't buy, beg, borrow or steal a real iPod touch to test it on so he can fix it. As a user this is extremely frustrating.
EDIT:
The final versions of Xcode with the iPhone SDK, as it was called then, are not available from Apple's download page, but the direct links still work.
The direct links can be found at:
http://chris-fletcher.com/2010/08/28/howto-install-iphone-sdk-2-0-3-1-for-xcode-3-2/

If you use the latest Xcode, you can install device debugging support via the Downloads->Components section, a la: http://cl.ly/3U1V1G3W2p2E1G29342e

http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-iphone-sdk.html
Some of the links are dead though. Apple is removing those old files little by little. Get them while supplies last.

Related

Installing older iOS for device testing

It used to be simpler to test versions of the iOS that were older than the currently shipping iOS. I can't seem to find a way to do it now that Apple calls home when trying to restore a device. If the device is eligible for a more recent iOS, iTunes and XCode 4.5 force you to upgrade the iOS.
In my case, I have an iPhone 4 that I want to test with iOS 5.1.1. I have the .ipsw file that actually was used on this device. iTunes generates an "not eligible" error when I try and force the restore from this .ipsw. XCode 4.5 does also. My understanding is that Apple is no longer signing 5.1.1 and my device is eligible for iOS 6, the reason for the error.
In the past, I had enough devices laying around that I shelved and used for testing. I don't have that luxury now.
Two questions:
1. Is there any way to install an older iOS on device that is eligible for a newer iOS?
2. How are you testing on older iOS versions?
I welcome suggestions
No, you cannot install an older iOS unless you are jailbroken and your SHSH blobs were stored with Cydia or TinyUmbrella.
Most people use the simulator, or older devices.
https://developer.apple.com/downloads/index.action
can be used to find old xcodes and ios SDKs.

Xcode deployment target

If my deployment target is set to iOS 4.1 and submitted to apple, and they test the app on iOS 4.3, would that cause the app to malfunction? My app was rejected for a bug that I am unable to recreate on my iPhone 4. The exact same device model they tested the app on. I simply cannot find the bug or error in my code. Any advice would be greatly appreciated.
If you build your app to target iOS 4.1 it should run on iOS 4.3. It's possible that your app does something that works on 4.1 but causes a problem on 4.3; I had that myself with an app already in the store, and had to post an update so it worked correctly under a newer iOS release.
Note that you can tell the iOS Simulator what version iOS to simulate: on the Hardware menu, select Version, and subsequent runs will be tested against that version of the system libraries.
The simulator is not a perfect reproduction of a real device, but hopefully you can do this to reproduce the behavior that Apple has seen on their devices.
Did you test it on your iPhone 4 with iOS 4.3? There's two parts to the puzzle. If they rejected it for crashing under iPhone 4, you have to check all the different iOS versions you claim to support. The target iOS 4.1 should still make it work on 4.3, you just might have a crash (which apparently you do). Through testing with that actual software version on your iPhone, you'll find the bug and hopefully squash it. Good luck!

Xcode debugger not stop i ipod with IOS 5 Beta

I have 2 devices,iphone with 4.3.1 and ipod with 5.0.
The problem is that in my iphone the debugger stop in break points, and in ipod the debugger won't stop on break points.
Any ideas on why that happens?
Have you installed the iOS 5 SDK in your Mac? I think that is what you require.
Also you need to understand that some of the functionalities might still be missing in some of the cases as it is still a BETA version. It might not be a fully functional version yet.
So either you can try using the iOS 5 SDK in your mac or if you have already tried it then I think you should wait for the final iOS 5 full version to work properly.
Also in the below link, they have discussed that some of the functionalities of iOS 5 still doesn't work on iPod. So may be Apple is working on it before the final launch.
http://www.ifans.com/forums/showthread.php?t=344401
You can also try referring to this link:
iPhone Dev: Xcode debugger does not stop on breakpoints
I think its the same problem like with iTunes. If you use a beta SDK you also need beta iTunes to sync with your device and a beta Xcode. Do you have the beta Xcode? Thats because the official Xcode release don't have an iOS 5 debugger. Open your Organizer and look if your iPod is listed as a supported debugging device.
Do you have iOS5 SDK installed as well? Are you testing with that? If not, the app won't stop at breakpoints. Your XCode version does not have the iOS5 debugger.
Not the solution to your problem, but I faced the same problem and solved it using UIAlertViews & NSLogs. I should also mention that I even installed xcode with iOS 5 SDK beta, even after which the breakpoints won't hit.
It was some issue with the symbols. You can create & display a temporary alert view where you want to put the break-point with its message/title being the value that you want to see, or you can log the value.
To debug a device running iOS 5 you will need to install the beta version of XCode, which contains the iOS 5 SDK. Once you register as an apple developer you can download it from developer.apple.com.

Updating iPhone application from 3.0 to iOS4

I was just wondering if anyone knows of any articles relating to upgrading an iPhone application from 3.0 to iOS4. (Thanks for this iWasRobbed).
While the application still runs on iOS4, it will not run on the iPhone 4, but does on my iPhone 3G.
When I deploy the app on the iPhone 4, the Default screen loads and it will sit there hanging. The only inclination towards a problem I get is this warning:
warning: UUID mismatch detected with the loaded library - on disk is:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/UIKit.framework/UIKit
warning: UUID mismatch detected with the loaded library - on disk is:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/PrivateFrameworks/DataAccessExpress.framework/DataAccessExpress
Thanks
James
James,
Apple has provided this checklist: http://developer.apple.com/iphone/checklist/
It generally should not be that big of an issue. Typically, you just set the baseline SDK as 4.0 and the deployment target as either 4.0 or something 3.0+.
If it is not running on an iPhone 4, you may wish to explain further what specifically it is doing or not doing when you attempt to run it on that device. Keep in mind that all apps (for the most part) that were designed to run on 3.0 and above will typically run well on an iPhone 4.
There might be some issues with deprecated methods, so make sure you resolve those prior to installing and running the app. You should get a compiler warning for any of those, if not check your target settings and there should be a checkbox for it.
Other than that, I'm not sure what else would prevent you without understanding further details of your project.
As additional information, you should really look into the WWDC 2010 video called "Future Proofing Your Applications" (watching it now :)
That is most likely a mismatch between what iOS your iPhone 4 is running and what SDK you're using in Xcode. The UUIDs are mismatched because the iPhone 4 is using a different version SDK to what you've coded in.
Solution, install the latest SDK and make sure your iPhone matches this. The latest out is 4.1
I had the same problem and think I have solved it because the problem has gone away.
Firstly I deleted the build folder. Then I Installed the latest version of ios (4.1 in this case) onto my iphone through itunes. Afterwards i installed the latest xcode and iphone sdk package from the apple devlopers site.
This in itself probably fixed the problem but just to be sure I added a new provisioning profile for the phone on my computer and everything worked great afterwards.
Hope that helps

downgrading iPhone 3GS iOS4 to OS3

I'm working on an iphone project for OS3.1.3. I updated my iPhone to iOS4 and now I can't test my project on my iPhone anymore. I tried downgrading but get "device not eligible"
What should I do now?
If I download latest XCode SDK4 will I be able to recreate my app so that it runs both on OS3 and OS4 ? It has no specific os4 features.. it should just run on both and want to test it on real iphone with os4..
Greets
First of all, downgrading your phone won't work. at least not with the "official" approach. I think once there is a Jailbreak for iOS4, downgrading your phone should be possible again.
Secondly, Creating an iOS app with XCode SDK4 that runs on your 3.x devices is no problem at all:
Just set the "iPhone OS Deployment Target" Value (Target -> Info -> Build) to "iPhone OS 3.0"
You can build with SDK4 and still target older devices running iOS 3.2 or earlier. How to do this is covered in detail in this other question here.
You can downgrade your phone OS, that's covered in this question over here.
But really the best approach is to update Xcode, compile with SDK4 and support earlier iOS versions as well.
I'm in the same situation.
What is the best ?
1 Upgrade to SDK4 and still target on IOS 3.xx . Will iPhone ios 3.1.3 users be able to download apps built with SDK4 . I don't think so.
2 Downgrade ios4 to ios3 and still work with SDK3.
PS : Someone suggested to get the lastest SDK
You can downgrade iPhones, iPod touches and iPads.
Instructions are here. If for instance you're downgrading a second generation iPod Touch from iOS4 to iOS3.1.3 you'll need the iPod2,1_3.1.3_7E18_Restore.ipsw firmware. A Google search will bring these things up.
Some downgrading references ask you to modify a "hosts" file. I don't think this is necessary, I downgraded from iOS4.2 to iOS3.0 (and to iOS2.0 for fun) without having to do this.
Good luck.