Instruments всегда запускает iPad Simulator для универсальных приложений с автоматизацией, как я могу заставить его использовать iPhone Simulator? - PullRequest
7 голосов
/ 03 декабря 2010

Я создал универсальный двоичный файл с использованием iOS 4.2 и Xcode 3.2.5. Я пытаюсь провести некоторое автоматизированное тестирование приложения, и поскольку интерфейсы немного отличаются в версиях для iPad и iPhone, у меня есть отдельные сценарии UIAutomation. К сожалению, независимо от того, что я делаю, когда я нажимаю кнопку записи в Instruments, приложение всегда запускается с помощью симулятора iPad. Как я могу заставить Instruments запустить симулятор iPhone?

Универсальное приложение отлично работает в симуляторе для всех 3 симулируемых устройств (iPhone, iPhone (Retina) и iPad). Я могу управлять активным исполняемым файлом через XCode, и «Build and Run / Debug» работает нормально, правильно, используя указанный симулятор. Когда я запускаю Instruments, я выбираю iOS Simulator> All> Automation, затем выбираю сценарий автоматизации для iPhone, а затем устанавливаю цель как имя проекта / build / Debug-iphonesimulator / project-name.

Ответы [ 4 ]

9 голосов
/ 18 ноября 2011

Перед запуском вашей автоматизации из командной строки создайте сборку универсального приложения для iPhone только путем передачи в xcodebuild следующего:

TARGETED_DEVICE_FAMILY = 1

Затем запустите свою автоматизацию, используя инструменты.

Если вы хотите протестировать iPad, сделайте еще одну сборку без этой опции сборки, и инструменты / симулятор по умолчанию вернутся к iPad

Для справки, ознакомьтесь с документами для TARGETED_DEVICE_FAMILY здесь:

http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

5 голосов
/ 12 марта 2013

Нет необходимости возиться с вашим приложением: инструменты позволяют выбирать, использовать ли имитатор iPhone или iPad.Предполагая, что вы уже выбрали свое приложение:

  1. Щелкните селектор цели (в данный момент отображается имя вашего приложения).
  2. Нажмите «Редактировать активную цель»
  3. Рядом свнизу щелкните раскрывающийся список «Параметры».
  4. В нижней части списка вы можете выбрать «Конфигурация симулятора».
4 голосов
/ 22 марта 2012

Очень простое решение - изменить Info.plist вашего приложения перед запуском автоматизации (не нужно перестраивать приложение). Используйте PlistBuddy, чтобы изменить UIDeviceFamily для iPhone или iPad. Например:

plistbuddy="/usr/libexec/PlistBuddy"
plistfile="$myapp/Info.plist"
if [ $device == "iphone" ]; then
 uidevicefamily=1
else
 uidevicefamily=2
fi
$plistbuddy -c "Delete :UIDeviceFamily" $plistfile
$plistbuddy -c "Add :UIDeviceFamily array" $plistfile
$plistbuddy -c "Add :UIDeviceFamily:0 integer $uidevicefamily" $plistfile
1 голос
/ 07 декабря 2010

У меня тоже были проблемы с этим, что я заметил, потому что независимо от того, какие настройки запуска я использовал, XCode отображал Simulator - 3.2, когда он должен был показывать 4.0 или 4.1 для версии SDK на симуляторе iPhone.

Мне удалось это исправить, изменив настройку «Семейство целевых устройств» на iPhone / iPad, поскольку он каким-то образом был настроен только на iPad.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...