Xcode4 使用Xcode 4.2编译iOS 3.1.3
Xcode 4.2是否支持为iOS 3.1.3编译项目?我试着编译一个我目前正在做的项目,每次我试着在iOS 3.1.3的iPhone3G上运行这个应用程序时都会遇到崩溃。我知道我正在运行的操作系统已经过时了,但是客户端要求应用程序应该在iOS 3.1.3上运行。有没有办法解决这个问题?内置设置更改以下设置:Xcode4 使用Xcode 4.2编译iOS 3.1.3,xcode4,compilation,crash,ios-3.x,Xcode4,Compilation,Crash,Ios 3.x,Xcode 4.2是否支持为iOS 3.1.3编译项目?我试着编译一个我目前正在做的项目,每次我试着在iOS 3.1.3的iPhone3G上运行这个应用程序时都会遇到崩溃。我知道我正在运行的操作系统已经过时了,但是客户端要求应用程序应该在iOS 3.1.3上运行。有没有办法解决这个问题?内置设置更改以下设置: 基本SDK->最新的iOS(iOS 5.0) iOS部署目标->iOS 3.1 架构->选择其他。。。并手动添加“armv6” 有效架构->删除“armv7”,只需离开“armv6” 在*
- (bool)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[MyHudDemoViewController alloc] initWithNibName:@"MyHudDemoViewController" bundle:nil] autorelease];
// NOTE THIS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// iOS 3.1 don't support the following statement.
//self.window.rootViewController = self.viewController;
[self.window addSubview:self.viewController.view];
[self.window makeKeyAndVisible];
return YES;
}
呃……对不起。。。忘了一个
为了让XCode 4在iOS 3.1上编译并在3G iPhone上调试,我需要做很多事情:
- 降级到XCode 4.3.3 Xcode 4.5.2将拒绝连接到iPhone3G进行调试。4.3.3版本与4.5.2版本愉快地共存,它们甚至可以共享相同的项目文件,尽管将ARMV7保留在架构设置中会在4.3.3中生成无害的警告。见下文
- 更改项目设置
(您也可以在上面的一行中添加armv7s,以便使用4.5.2编译相同的项目,但它将在4.3.3下生成警告)Architecture -> go to "others", remove the line, put armv6 armv7
- 在plist文件的“所需设备功能”中,卸下armv7
- 更改目标设置(单击左窗格中的目标)
部署目标为3.1
- 编辑您的方案以更改调试器
在Run部分的debug中,将调试器更改为GDB(而不是LLDB)
在测试部分的debug中,将调试器更改为GDB(而不是LLDB)
- 更改将使iOS 3.1应用程序崩溃的自动生成代码
在AppDelegate中“didFinishLaunchingWithOptions”,而不是此行
self.window.rootViewController=self.viewController代码> 把这个密码
然后,您应该能够在3G iPhone上运行和调试if ([self.window respondsToSelector:@selector(setRootViewController:)]) self.window.rootViewController = self.viewController; else [self.window addSubview:self.viewController.view];
if ([self.window respondsToSelector:@selector(setRootViewController:)])
self.window.rootViewController = self.viewController;
else
[self.window addSubview:self.viewController.view];