2012-09-18 76 views
12

我有为iOS 4.2制作的应用程序,我在XCode 4.3.3中开发并使用iPhone 5.1 Simulator进行测试,一切正常。最近我决定测试应用程序在iOS 6.0上的运行方式。当尝试这个,我面临两个问题:XCode 4.5 iOS 6.0模拟器和旋转问题

  1. 所以,我打开应用程序中找到XCode 4.5和iPhone 6.0模拟器上运行它。我在启动应用程序时遇到问题。 XCode只是说:在iPhone 6.0模拟器上完成运行,停止按钮呈灰色(如应用程序未运行),iPhone模拟器仅显示黑屏并且没有任何反应。我必须要CMD + Q它。这对我来说是巨大的问题,因为我设法在失败后成功运行应用程序。

  2. 最终有时,应用程序运行时没有问题,我发现模拟器正在运行我的应用程序。应用程序仅在横向模式下进行。但是当模拟器运行应用程序时,它将保持纵向模式,并显示纵向模式下为横向屏幕设计的应用程序。我已将支持的界面方向设置为两种风景变体,并且在Application-Info.plist中还列出了这两种风景方向。

有没有人知道发生了什么事情和可能的解决方案?

非常感谢提前。


[编辑#1:加入所有输出控制台消息]

控制台消息(问题1现在保持存在的)表示:

error: failed to attach to process ID 0 

[编辑#2:解决第一个问题的小进展]

好吧,奇怪的事情正在发生。第一件事,我才能从编辑#1消除错误所做的是:

在Xcode中去:产品 - >编辑计划 - >运行[AppName的]。应用程序 - >调试器,它从LLDB改变GDB

之后,编辑#1中的错误消失了,但是出现了新问题。现在运行应用程序后,我在XCode中收到状态消息:附加到[AppName],并且XCode停留在该操作上。

如果有人给我一个答案,我想说的是,我什么都试过从下面的列表:

  • 去窗口 - >管理 - >导出数据 - >删除
  • 围棋到窗口 - >管理器 - > [项目]并删除它完全 然后重新打开它
  • 复位iPhone模拟器设置
  • 重置iPhone模拟器+干净生成+退出模拟器+运行项目
  • 退出的XCode +重启MAC +重新打开Xcode和运行应用程序再次

和各类这些行动排列。简单地说,我总是看到这个问题。发生在我身上的最好的事情是在这个组合:

只打开XCode而不打开项目 - >转到窗口 - >管理器 - > [ProjectName]并完全删除它 - >退出XCode - >打开iPhone模拟器并重置设置 - >退出iPhone模拟器 - >重启的Mac - >在这种情况下,模拟器重新Xcode和运行应用程序

有时管理运行我的应用程序向右走,这是伟大的。但在关闭模拟器并再次从XCode运行应用程序(在这两个操作之间没有做任何事情)之后,XCode再次卡住附加到[AppName],并且不会启动我的应用程序模拟器。

尽管模拟器不会从我的XCode应用程序开始,但应用程序本身存储在模拟器上,如果我单独运行模拟器并手动启动我的应用程序,应用程序管理启动,但第二个问题在我的问题描述中 - 布局问题。


[编辑#3:XCode的版本信息]

我忘了说我的XCode版本:的Xcode 4.5版(4G144l)


[编辑#4 :“Solution”]

我发现“解决方案”(我说“解决方案”重刑“,因为我还没有找到一个在当前的XCode版本)。

我刚才下载的XCode 4.5版(4G182)和正常运行我的应用程序(不更改调试器GDB)和除布局的问题,这是肯定存在,因为到iOS 6.0做了一些改动比较iOS的一切都工作正常5.我认为这实际上是解决方案,因为我最初使用的这个版本的XCode不会被使用,因为它是一些beta版本。

所以,第一个问题解决了,还没有解决布局问题。


[编辑#5:最终溶液]

好,第二问题解决了。有关我的第二个问题所有信息,下面是这个链接的答案:http://yusinto.blogspot.de/2012/08/ios-6-auto-rotate-and-orientation.html

+1

iOS 6仍处于NDA下,但请尝试阅读开发中心的iOS 6.0部分的新增内容 – wattson12

+0

[模拟器中的iOS 6自转可能与实际的iOS 6设备有所不同](http://stackoverflow.com/问题/ 12406748/ios-6-autorotation-in-simulator-vary-from-actual-ios-6-device) – rckoenes

+0

@rckoenes:我的第二个问题是描述(看起来)与你给出的链接上的问题相同的问题,感谢您的链接,但我的第一个问题绝对不是该链接的任何内容的重复。 – uerceg

回答

8

就像我在我的编辑说,解决我的第一个问题是更新的XCode到4.5版(4G182)。解决我的第二个问题是更换过时的iOS 5的方法:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

在iOS 6中推出2种新的方法:

- (NSUInteger)supportedInterfaceOrientations 
- (BOOL)shouldAutorotate 

之后,应用程序工作得很好。

[编辑#1:添加景观唯一的应用程序的工作的样品与iOS5和iOS 6支持]

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    // Override point for customization after application launch. 
    self.viewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil]; 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

MainViewController.m

#pragma mark - Orientation support 

- (BOOL)shouldAutorotate { 

    return YES; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 

    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
} 

- (NSUInteger)supportedInterfaceOrientations { 

    return UIInterfaceOrientationMaskLandscape; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 

    return UIInterfaceOrientationLandscapeLeft; 
} 
+1

不设置rootViewController也可以导致此问题。 就像一个使用[self.window addSubview:yourViewController.view] – codeburn

2

删除\Library\Application Support\iPhone Simulator文件夹,并从XCode运行模拟器为我工作。

现在我可以从XCode运行iOS 6.0 Simulator。

+0

这对我有效。 – pt2ph8