我已经为iOS 4.2制作了应用程序,我正在使用XCode 4.3.3进行开发并使用iPhone 5.1 Simulator进行测试,一切正常。最近我决定测试应用程序在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 - >调试器并将其从LLDB更改为GDB
在此之后,编辑#1的错误消失了,但是出现了新问题。现在我运行应用程序后,我在XCode中收到状态消息:附加到[AppName] ,XCode停留在该操作上。
如果有人给我答案,我想说我尝试了以下列表中的所有内容:
以及各种这些动作排列。简单地说,我总是看到这个问题。发生在我身上的最好的事情是在这个组合中:
只打开XCode而不打开项目 - >转到窗口 - >组织者 - > [ProjectName]并完全删除它 - >退出XCode - >打开iPhone模拟器并重置设置 - >退出iPhone模拟器 - >重启Mac - >重新打开XCode并运行应用程序
有时在这种情况下,模拟器设法立即运行我的应用程序,这很棒。但是在关闭模拟器并再次从XCode运行应用程序之后(在这两个操作之间没有做任何事情),XCode再次卡在附加到[AppName] 上,并且不会用我的应用程序启动模拟器。
虽然模拟器不会从我的应用程序从XCode开始,但应用程序本身存储在模拟器上,如果我单独运行模拟器并手动启动我的应用程序,应用程序设法启动,但第二个问题我在我的问题描述中 - 布局问题。
[编辑#3:XCode版本信息]
我忘了提及我的XCode版本: Xcode版本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
答案 0 :(得分:8)
就像我在编辑中说的那样,解决我的第一个问题是将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;
}
答案 1 :(得分:2)
完全删除\Library\Application Support\iPhone Simulator
文件夹并从XCode运行模拟器对我有效。
现在我可以从XCode运行iOS 6.0 Simulator。