it-swarm.com.ru

Запустите симулятор iOS из Xcode и получите черный экран, затем Xcode зависает и не может остановить задачи

У меня проблемы с запуском моего базового приложения для iPhone (при прохождении лекций по Stanford iTunes CS193p) в симуляторе iOS.

Я долго искал (и Google, и SO), но пока не смог найти решение. Есть много подобных ошибок, но решения, похоже, не исправляют это.

В Xcode я нажимаю «запустить». Он успешно компилируется и собирается, запускает симулятор iOS, но не загружает приложение. Только строка состояния вверху. С черным экраном.

Я только написал очень простой код (следуя лекциям) и не могу обойти эту проблему. 

Чтобы еще больше запутать, я написал веб-оболочку (UIWebView) перед этими лекциями, и это прекрасно работает. Но в коде практически нет различий. Все новые приложения, которые я создаю с нуля, терпят неудачу с той же самой проблемой черного экрана. 

Если нажать кнопку «Домой» на симуляторе и запустить приложение, оно отобразится. Но Xcode, похоже, не знает, что происходит.

Как будто Xcode утратил способность общаться с iOS Simulator и предполагает, что он работает (даже если я выйду из iOS Simulator). Я пытаюсь выйти из Xcode, и он просит меня остановить задачи. Тогда просто висит. Поэтому я вынужден перезапустить, чтобы выйти из Xcode.

Я использую: OSX 10.8.2 Xcode 4.5.2 IOS Simulator 6.0

CalculatorAppDelegate.h

#import <UIKit/UIKit.h>

@interface CalculatorAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end

CalculatorAppDelegate.m

#import "CalculatorAppDelegate.h"

@implementation CalculatorAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions (NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

@end

CalculatorViewController.h

#import <UIKit/UIKit.h>

@interface CalculatorViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *display;

@end

CalculatorViewController.m

#import "CalculatorViewController.h"

@implementation CalculatorViewController

@synthesize display = _display;

- (IBAction)digitPressed:(UIButton *)sender
{
    NSString *digit = [sender currentTitle];
NSLog(@"digit pressed = %@", digit);
}

@end
67
Matt

Удивительно, но у меня получилось перейти в меню iOS Simulator и нажать «Сбросить содержимое и настройки».

73
doug

Перед сбросом эмулятора сначала перейдите на экран своих проектов "project navigator" и под экраном general -> информация о депозите проверьте, что свойство main interface правильно настроено!

enter image description here

36
Chris

Я новичок в разработке приложений для iOS. Я практиковался в разработке приложений для iOS с самого начала, и во время работы с очень простым приложением Hello World, я также столкнулся с той же проблемой, что после создания и запуска приложения в симуляторе iOS появляется только черный пустой экран .... чтобы найти решение проблемы, я случайно щелкнул Window -> Scale -> 50% в симуляторе iOS, и это действительно помогло решить мою проблему. Я смог увидеть домашнюю страницу с моим приложением и щелкнуть значок приложения. смог запустить мое приложение успешно . Версии приложения: Xcode 5.1 iOS Simulator: 7.1 OSX: 10.9.3

8
asdf

Другое решение состоит в том, что если вы создаете пользовательский интерфейс программно в проекте Objective C, то вам может понадобиться добавить некоторый код для раздувания представления, поэтому вам нужно будет добавить эти 3 строки, чтобы интерфейс окна взаимодействовал с кодом (внешний фактически взаимодействуют с кодом, а другой изменит экран на белый, чтобы вы знали, что он работает).

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

self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.

...

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];


return YES;
}
5
sivi

Это может быть связано с неправильной настройкой информации о развертывании. (т.е. если ваша раскадровка не установлена ​​в качестве основного интерфейса)

4
Eric Hou

Решение 1: Вы можете Quit simulator и попробуйте снова.

Решение 2 (рекомендуется): перейдите к iOS Simulator -> Reset Content and Settings...

 Step 1

Появится всплывающее окно с сообщением 'Are you sure you want to reset the iOS Simulator content and settings?'

 Step 2

Выберите Reset, если хотите, или кнопку Don't Reset.

Обратите внимание, что после сброса содержимого симулятора все приложение, установленное на симуляторе, будет удалено, и оно вернется к исходным настройкам.

3
Jayprakash Dubey

Если вы потеряли свою точку входа в раскадровке или просто хотите изменить точку входа, вы можете указать это в Интерфейсном Разработчике. Чтобы установить новую точку входа, вы должны сначала решить, какой ViewController будет действовать как новая точка входа, и в Инспекторе атрибутов установить флажок «Начальная сцена».

Вы можете попробовать: http://www.scott-sherwood.com/ios-5-specifying-the-entry-point-of-your-storyboard/

3
user2101881

Перезагрузка компьютера должна быть все, что вам нужно сделать.

1
Lolo

Мне удалось найти решение для этого. Это было найдено благодаря этой записи в блоге: 

http://vandadnp.wordpress.com/2012/03/18/xcode-4-3-1-cannot-attach-to-ios-simulator/

Решение состоит в том, чтобы нажать cmd + shift +, (команда, shift и затем запятую ",") .., который загружает некоторые опции для выпуска или отладки. 

Измените отладчик с LLDB на GDB. Это решает проблему.

0
Matt

вы также можете перейти в «Оборудование» -> «Перезагрузить», затем «Оборудование» -> «Домой» и нажать на свое приложение.

0
coder666

Убедитесь, что установлен начальный просмотр контроллера 

0
davut dev

Пожалуйста, убедитесь, что вы сделали это, если вы получаете черный экран после копирования раскадровки из другого проекта  enter image description here

0
Abhinav Jha

Пожалуйста, проверьте все ограничения для всех видов и просмотрите полную раскадровку. Обычно это происходит из-за этого.

С уважением, Arora

0
Gaurav Arora

Чтобы убедиться, что это проблема симулятора, посмотрите, сможете ли вы подключиться к симулятору с помощью совершенно нового проекта без изменения кода. Попробуйте шаблон панели вкладок.

Если вы считаете, что это проблема с симулятором, нажмите меню iOS Simulator. Выберите «Сбросить содержимое и настройки ...». Нажмите «Сброс».

Я не вижу вашу XIB и какие @properties, которые вы подключили в Интерфейсном Разработчике, но также может быть, что вы не загружаете свое окно, или что ваше окно не загружает ваш контроллер представления.

0
Aaron Brager

У меня была та же проблема с XCode ... черный экран при запуске приложений, отсутствие отладки и щелчков заблокировало бы XCode. 

Я, наконец, обнаружил проблему ... по той причине, что симулятор не может подключиться к XCode, я взглянул на мой файл etc/hosts и обнаружил, что несколько месяцев назад, чтобы решить другую проблему, я отредактировал файл Host, чтобы сопоставить localhost с моим фиксированный IP вместо значения по умолчанию ... мое значение:

10.0.1.17 localhost

Это должно работать, так как это мой IP, но меняя его обратно на фиксированный IP-адрес по умолчанию Xcode ...

127.0.0.1 localhost 

Надеюсь это поможет.

0
Chad Celsius

Я решил это только после удаления симуляторов с предыдущими версиями iOS.

0
Eran Talmor

Я делал то, что предлагает Дуг («Сбросить содержимое и настройки»), который работает, но занимает много времени, и это действительно раздражает ... пока я недавно не нашел совершенно случайное другое решение, которое намного быстрее и, кажется, до сих пор работает! Просто нажмите cmd + L на вашем симуляторе или зайдите в меню симулятора «Hardware -> Lock», которое блокирует экран, когда вы разблокируете экран, приложение работает, как будто ничего не произошло :)

0
Dimi Dim

Что случилось со мной, так это то, что Тип класса не был UIViewController для скрипта, прикрепленного к моему контроллеру представления. Это было для UITabController ..... Я по ошибке быстро создал неправильный тип класса .... Так что убедитесь, что класс, если правильный тип ... Надеюсь, это кому-то поможет. Я был в ажиотаже и совершил эту ошибку.

0
CakeGamesStudios

Просто перезагрузите ваш симулятор, нажав Simulator-> Сбросить содержимое и настройки.

0
Pravin S.

У меня были черные экраны симуляторов только для симов iOS 11. После попытки сброса, перезагрузки, переустановки и создания новой учетной записи пользователя на моем компьютере я нашел следующее решение:

defaults write com.Apple.CoreSimulator.IndigoFramebufferServices FramebufferRendererHint 3

нашел в этом ответе здесь: Xcode 9 iOS Simulator становится черным экраном после установки Xcode 10 beta

0
Apoc