views:

81

answers:

2

after i complied my app on IOS4 my app stopped working on ipod touches. it is a first generation ipod touch, with os 3 on it. So i assume application for OS4 are not working on old ipodtouches ? but there was no warring from the app store and it is even listed for download for ipod touch too. any ideas ?

base SDK is iphone device 4 and development target is iphone os 3. i works on iphone's with os 3 but when i try it on my ipod touch with os 3.1.3 it crashed. and i am getting this error mi_cmd_stack_list_frames: Not enough frames in stack. I added a break on main.m and the app crashes even before getting to first line in main.m .. the debug is ok it crashes when i try to run it on the device. it works fine in simulator.

One more thing, this is a universal app, and i am using uisplitview controller.. so i think when it runs on os 3 it breaks.. is there anyway to fix this ?

A: 

Apps built for iOS 4.0 will not run on devices with 3.0. Note that in the App Store, there is a section under "Requirements:" that says "Requires iOS 4.0 or later." in cases like this.

jenningj
They will if you set your Deployment Target to 3.0 as [described here](http://stackoverflow.com/questions/3027120/).
progrmr
A: 

Ok!!! I assumed my main.m will do the job and point the right appdelegate but apparently i still needed to check if the classes exist. so here is the answer

Class splitVCClass = NSClassFromString(@"UISplitViewController");
if (splitVCClass)
{
        //UISplitViewController* mySplitViewController = [[splitVCClass alloc] init];
    UISplitViewController* _splitViewController = [[splitVCClass alloc]init];
    [_splitViewController setViewControllers:[NSArray arrayWithObjects:_rootNavigationController,_navigationController,nil]];
}

happy ending.

arash13