编译为不同的iOS版本

时间:2013-11-25 09:30:31

标签: iphone objective-c sdk ios7 xcode5

我在App Store中有一个针对iOS 5的应用程序,可以在iOS 6甚至iOS 7中正确运​​行,但是现在,我想添加一个新功能(只有一个带控制器的新视图)。 / p>

问题出现在这里:如果我使用Xcode 5编译代码,它看起来很尴尬,顶级状态栏消失,甚至一些视图停止工作。

我知道这个应用程序需要从Zero for iOS 7重写,但与此同时,有没有办法让它像之前一样工作?

我可以以某种方式下载以前的SDK,在这种情况下,我是否可以将应用程序更新到App Store?

2 个答案:

答案 0 :(得分:0)

您需要将6.1 SDK从较旧版本的Xcode复制到您现在拥有的Xcode.app中,然后在构建设置中专门选择6.1 SDK。

对于设备,这是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk,对于模拟器,它是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk。路径是一样的。

答案 1 :(得分:0)

只需从开发者页面下载Xcode 4.6,并将其与Xcode 5并行使用。

但你真的不需要重写任何东西...... 只需使用以下代码为UIViewController创建一个子类,然后使用默认值。

- (void) viewDidLoad{
#if __IPHONE_7_0
    if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) {
       [self  setEdgesForExtendedLayout:UIRectEdgeNone];
    }
#endif
}

另外请不要忘记,所有UINavigationController在7及以上都是半透明的而不是半透明的。