Xcode 4.2是否支持iOS 3.1.3的编译项目?我尝试编译一个我正在处理的项目,每次尝试在带有iOS 3.1.3的iPhone 3G上运行应用程序时,我都会遇到崩溃。我知道我正在运行的操作系统已经过时,但客户端要求应用程序应该在iOS 3.1.3上运行。任何想法我将如何解决这个问题?
答案 0 :(得分:1)
在构建设置中更改以下设置:
在* AppDelegate.m
中- (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;
}
呃....抱歉......忘了一个......
答案 1 :(得分:0)
以下是我需要做的一大堆事情,以便在3G iPhone上编译XCode 4并在3G上进行调试:
降级到XCode 4.3.3。
Xcode 4.5.2只是拒绝连接到iPhone 3G进行调试。 4.3.3版本与4.5.2很好地共存,它们甚至可以共享相同的项目文件,尽管在架构设置中保留armv7会在4.3.3中产生无害的警告。见下文。
更改项目设置
Architecture -> go to "others", remove the line, put armv6 armv7
(您也可以在上面的行中添加armv7s,用4.5.2编译同一个项目,但它会在4.3.3下生成警告)
Valid architecture -> armv6 armv7 armv7s
Deployment target -> change to 3.1
在plist文件的“Required device capabilies”中,删除armv7。
更改目标设置(单击左窗格中的目标)
deployment target to 3.1
编辑您的Scheme以更改调试器
In the Run section, debug, change debugger to GDB (instead of LLDB)
In the Test section, debug, change debugger to GDB (instead of LLDB)
更改将导致iOS 3.1应用程序崩溃的自动生成代码
在您的AppDelegate“didFinishLaunchingWithOptions”中,而不是此行
self.window.rootViewController = self.viewController;
把这段代码
if ([self.window respondsToSelector:@selector(setRootViewController:)])
self.window.rootViewController = self.viewController;
else
[self.window addSubview:self.viewController.view];
然后你应该能够在3G iPhone上运行和调试。