Я написал универсальное приложение для iPhone и iPad, которое отлично работает в симуляторе iPad на Xcode, но теперь я хотел бы протестировать функциональность iPhone. Кажется, я не могу запустить iPhone-симулятор с этим кодом, поскольку он всегда по умолчанию использует iPad?
Вместо этого я попытался запустить на устройстве, и по мере его запуска я получаю следующую ошибку:
dyld: Symbol not found: _OBJC_CLASS_$_UISplitViewController
Referenced from: /var/mobile/Applications/9770ACFA-0B88-41D4-AF56-77B66B324640/Test.app/Test
Expected in: /System/Library/Frameworks/UIKit.framework/UIKit in /var/mobile/Applications/9770ACFA-0B88-41D4-AF56-77B66B324640/Test.app/TEST
Поскольку приложение создано программно, а не использует XIB, я разделил 2 логики устройств, используя следующие строки в методе main.m:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate_Pad");
}
else
{
retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate_Phone");
}
С этого момента они используют разные AppDelegates, и я проверил свои заголовки, чтобы гарантировать, что UISplitView никогда не используется и не импортируется через логику телефона.
Как избежать этой ошибки и есть ли лучший способ разделить универсальные логические пути в этом программно-созданном приложении?