[英]XCode 4.5 iOS 6.0 simulator and rotation issues
我已经为iOS 4.2做了应用程序,我正在使用XCode 4.3.3进行开发并使用iPhone 5.1模拟器进行测试,一切正常。 最近我决定测试应用程序在iOS 6.0上运行的方式。 在尝试这个时,我面临两个问题:
因此,我使用XCode 4.5打开应用程序并在iPhone 6.0 Simulator上运行它。 我有启动应用程序的问题。 XCode只是说:完成在iPhone 6.0模拟器上运行,停止按钮是灰色的(就像应用程序没有运行)和iPhone模拟器只显示黑屏,没有任何反应。 我要CMD + Q吧。 这对我来说是个巨大的问题 ,因为我设法在很多失败之后成功地随机运行应用程序。
最终,有时,应用程序运行没有问题,我看到模拟器正在运行我的应用程序。 应用程序仅以横向模式进行。 但是当模拟器运行应用程序时,它将保持纵向模式并显示为纵向模式下的横向屏幕设计的应用程序。 我已将支持接口方向设置为两个横向变体,而在Application-Info.plist中也列出了这两个横向方向。
有谁知道发生了什么和可能的解决方案?
提前谢谢了。
[编辑#1:添加了所有输出控制台消息]
控制台消息(对于现在一直存在的问题1)说:
error: failed to attach to process ID 0
[编辑#2:解决第一个问题的小进展]
好的,奇怪的事情正在发生。 为了消除编辑#1中的错误,我做的第一件事是:
在XCode中转到: 产品 - >编辑方案 - >运行[AppName] .app - > Debugger并将其从LLDB更改为GDB
在此之后,编辑#1的错误消失了, 但是出现了新的问题。 现在我运行应用程序后,我在XCode中获取状态消息: 附加到[AppName]并且XCode停留在该操作上。
如果有人给我一个答案,我想说我尝试了以下列表中的所有内容:
以及各种这些动作排列。 简单地说,我总是看到这个问题。 发生在我身上的最好的事情是在这个组合中:
只打开XCode而不打开项目 - >转到窗口 - >管理器 - > [ProjectName]并完全删除它 - >退出XCode - >打开iPhone模拟器并重置设置 - >退出iPhone模拟器 - >重启Mac - >重新打开XCode并运行应用
有时在这种情况下,模拟器设法立即运行我的应用程序,这很好。 但是在关闭模拟器并再次从XCode运行应用程序之后(在这两个操作之间没有做任何事情),XCode再次停留在附加到[AppName]并且不会启动我的应用程序的模拟器。
虽然模拟器不会从我的应用程序从XCode开始,但应用程序本身存储在模拟器上,如果我单独运行模拟器并手动启动我的应用程序,应用程序设法启动,但第二个问题我在我的问题描述 - 布局问题。
[编辑#3:XCode版本信息]
我忘了提到我的XCode版本: Xcode Version 4.5(4G144l)
[编辑#4:“解决方案”]
我找到了“解决方案”(我说“解决方案”,因为我还没有在当前的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
就像我在编辑中说的那样,解决我的第一个问题是将XCode更新为4.5版(4G182) 。 我的第二个问题的解决方案是替换弃用的iOS 5方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
在iOS 6中引入了2种新方法:
- (NSUInteger)supportedInterfaceOrientations
- (BOOL)shouldAutorotate
之后,应用程序工作正常。
[编辑#1:添加仅支持iOS 5和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;
}
完全删除\\Library\\Application Support\\iPhone Simulator
文件夹并从XCode运行模拟器适合我。
现在我可以从XCode运行iOS 6.0 Simulator。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.