Можно ли использовать iPhone Simulator 3.1 из XCode 3.2.3? - PullRequest
3 голосов
/ 25 июня 2010

Поскольку Simulator 3.2 и 4.0 в SDK 4 на самом деле не работают для симуляции iPhone (которая всегда выходит из iPad и не отвечает вообще), я в итоге установил 2 SDK, используя SDK 3.1.3 / Simulator 3.1 длясимуляция и SDK 4 для встраивания в iPhone с ОС 4. (Подробнее здесь .)

Я пытался использовать старый Simulator 3.1 из SDK4-XCode 3.2.3, напримерскопировав полный каталог «iPhoneSimulator.platform / Developer / SDKs / iPhoneSimulator3.1.3.sdk» в соответствующий каталог XCode3.2.3 и выберите Simulator-3.1.3 (который отображается в списке «Активный исполняемый файл»), ноон не может создать с более чем 30 ошибками, например,

неопределенные символы:
"_OBJC_CLASS _ $ _ NSURLConnection", на которые ссылается: objc-class-ref-to-NSURLConnection в GRACEViewController.o
"_OBJC_CLASS _ $ _ NSString", на которую ссылается: objc-class-ref-to-NSString в GRACEViewController.o

Есть ли способ использовать Simulator 3.1 (вместо of Симулятор 3.2 или 4.0) при использовании XCode 3.2.3 (который необходимо встроить в iPhone в ОС 4) ???

Ответы [ 2 ]

3 голосов
/ 25 июня 2010

XCode 3.2.3 выполняет симуляцию iPhone.Вы должны убедиться, что настройки вашего проекта верны.У меня есть следующие настройки, и он работает для меня:

  • Базовый SDK: Устройство iPhone 4.0
  • Семейство целевых устройств: iPhone
  • Цель развертывания: iPhone OS 3.0

При этом у вас должна быть возможность запустить проект в симуляторе iPhone.

0 голосов
/ 26 июня 2010

Я считаю, что, полностью защищая любой код OS3.2, я могу выбрать компиляцию как 3.1.3 или 3.2, просто меняя Active SDK при компиляции.3.1.3 всегда будет появляться в симуляторе iPhone, а 3.2 всегда будет появляться в симуляторе iPad.

Вот пример полностью защищенного кода:

    #ifdef UI_USER_INTERFACE_IDIOM
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// iPad Only Code Goes here
            [deviceType setString:@"ipad"];
        } else {
    #endif
// iPhone Only Code Goes Here
            [deviceType setString:@"iphone"];
    #ifdef UI_USER_INTERFACE_IDIOM
        }
    #endif
...