2010-06-25 66 views
3

因为SDK 4中的模拟器3.2和4.0并不实际适用于iPhone模拟(它总是出来iPad并且根本没有响应),所以我最终用2个SDK安装,使用SDK 3.1.3/Simulator 3.1进行模拟,以及SDK 4,用于在OS 4上构建到iPhone上。(更多详细信息here。)是否可以使用XCode 3.2.3中的iPhone Simulator 3.1?

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

未定义的符号:
“_OBJC_CLASS _ $ _ NSURLConnection的”, 从引用: objc级-REF对NSURLConnection的在 GRACEViewController.o
“_OBJC_CLASS _ $ _的NSString”,从引用 : objc -class-REF到的NSString在GRACEViewController.o

是否有使用的XCode 3.2.3时使用模拟器3.1(而不是3.2模拟器或4.0)(WHI的方式ch是必须在OS 4上构建到iPhone上)

+0

你好你找到一种方式来运行较早版本的模拟器?我有同样的问题。 – 2010-08-30 08:18:27

+1

嗨,我终于安装了2个版本的XCode。使用模拟器3.1.3的旧版本3.2.1以及仅将新版本3.2.3构建到设备中。 – lionfly 2010-09-01 00:23:26

回答

3

XCode 3.2.3确实会模拟iPhone。你需要确保你的项目设置是正确的。我有以下的设置和它的作品对我来说:

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

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

+0

升级后我遇到了一些麻烦,因为我的旧项目不再生成或运行。菜单选择不起作用。我不得不进入Target的信息并进行设置。 – mbmcavoy 2010-06-25 17:05:01

+2

我有相同的设置,虽然我可以在模拟器中运行,但模拟器正在模拟iOS4。硬件 - >版本菜单中的唯一选项是4.0和3.2(将其切换到iPad模拟器)。我认为OP正在寻找一种在4.0模拟器中测试3.1兼容性的方法。 – 2010-07-01 15:49:34

+0

我明白你现在在说什么。您将需要运行3.1.x的实际设备来测试兼容性。这个苹果dev论坛主题可能会提供进一步的洞察:https://devforums.apple。COM /消息/ 244347 – keno 2010-07-01 18:38:29

0

我发现通过完全保护任何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 
相关问题