繁体   English   中英

是否可以使用XCode 3.2.3中的iPhone模拟器3.1?

[英]Is it possible to use iPhone Simulator 3.1 from XCode 3.2.3?

因为SDK 4中的模拟器3.2和4.0实际上不适用于iPhone模拟(它总是出现在iPad上而根本没有响应),我最终安装了2个SDK,使用SDK 3.1.3 / Simulator 3.1进行模拟, SDK 4用于在OS 4上构建到iPhone 4.(更多细节请点击此处 。)

我尝试使用SDK4-XCode 3.2.3中的旧模拟器3.1,例如将完整的“iPhoneSimulator.platform / Developer / SDKs / iPhoneSimulator3.1.3.sdk”目录复制到相应的XCode3.2.3目录中,然后选择模拟器-3.1.3(确实出现在“Active Executable”列表中),但它无法构建,超过30个错误,例如

未定义的符号:
“_OBJC_CLASS _ $ _ NSURLConnection”,引自:GRACEViewController.o中的objc-class-ref-to-NSURLConnection
“_OBJC_CLASS _ $ _ NSString”,引自:GRACEViewController.o中的objc-class-ref-to-NSString

有没有办法在使用XCode 3.2.3时使用模拟器3.1(而不是模拟器3.2或4.0)(必须在OS 4上构建iPhone)?

XCode 3.2.3确实做了iPhone模拟。 您需要确保您的项目设置正确。 我有以下设置,它适用于我:

  • 基础SDK: iPhone设备4.0
  • 目标设备系列: iPhone
  • 部署目标: iPhone OS 3.0

有了它,您应该可以选择在iPhone模拟器中运行您的项目。

我发现通过完全保护任何OS3.2代码,我可以选择编译为3.1.3或3.2,只需在编译时更改Active SDK即可。 3.1.3将始终出现在iPhone模拟器中,3.2将始终出现在iPad模拟器中。

以下是完全受保护代码的示例:

    #ifdef UI_USER_INTERFACE_IDIOM
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// iPad Only Code Goes here
            [deviceType setString:@"ipad"];
        } else {
    #endif
// iPhone Only Code Goes Here
            [deviceType setString:@"iphone"];
    #ifdef UI_USER_INTERFACE_IDIOM
        }
    #endif

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM