2016-06-21 2 views
3

Я нахожусь в середине некоторого доказательства моего тестового теста, используя xcodebuild и xcrun для создания и развертывания .app на моих iOS-симуляторах (или даже доставить каталог .app моему конечному клиенту).Командная строка создана и установлена ​​iOS .app сбой при загрузке внутри симулятора

Что бы ни случилось, дело в том, что я успешно справляюсь со всеми необходимыми шагами, чтобы создать с нуля файл .app (ну, каталог), но затем я получаю крах приложения после выполнения следующих двух строк, в частности второй один, когда я пытаюсь загрузить и затем запустить .app на тренажере:

xcrun simctl install booted $(PWD)/build/Debug-iphoneos/APP_NAME.app 
xcrun simctl launch booted somebundle.id.from.me <- CRASH 

Независимо от того, что я стараюсь, что команда xcrun дает эту ошибку на system.log:

Error Domain=FBSOpenApplicationErrorDomain Code=1 "(null)" 

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

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

Некоторые другие люди говорят, что старые версии приложения могут быть живы в планировщике задач симулятора. В самом деле, иногда я нашел свою задачу там, как старую задачу из прошлого, но дважды нажав «домой», чтобы перейти к диспетчеру симулятора, убив его и пытаясь перезапустить мой файл .app с xcrun снова ничего не делает, сумасшедшие все еще там. Я даже останавливаю старые исполнения того же приложения, запущенного из самого Xcode (с кнопкой STOP), но не повезло.

Итак, я определенно потерян. Я не могу запустить свой недавно созданный .app на симулятор через командную строку.

Он провалился с симулятором 9,3 (iPhone 4s) и с симулятором 9,3 (iPhone 6plus). Мои инструменты XCode - это те, что включены в мой XCode 7.3.1. Я использую «Эль Капитан».

Я ничего не могу придумать.

Я хотел бы иметь возможность загружать и запускать мой .app через «инструменты командной строки». Надеюсь, это возможно, или, по крайней мере, кажется, я действительно близок к успеху.

Любые другие намеки, которые я мог упустить?

Поздравления и благодарность.

ответ

2

Другой случай успешно самостоятельно ответил на вопрос :)

Короткая версия: Я строил «реальные Ios устройства» скомпилированную версию, а затем пытается установить его на тренажере. Изменение параметров xcrun и xcodebuild (архитектура и путь) сделало трюк, и теперь приложение работает как шарм при запуске с Simulator.


Длинная версия: В чем была проблема? Архитектуры и пути, которые я (ошибочно) выбирал при вызове xcodebuild . Один из параметров для определения моей архитектуры компиляции заключался в неявном объявлении «ARM» (-sdk iphoneos), но архитектура, используемая машиной времени для симулятора, - i386 (мы находимся в MAC). Как и ожидалось, как только «real -device-compiled-.app» будет установлен на Симулятор, сам симулятор не поймет, как его запустить, а затем произойдет критическая авария.

Что подсказывало мне? 2 других вопроса, которые я нашел где-то еще, в переполнении стека. Ищите дополнительную информацию здесь:

Apps manually installed in simulator crashes upon load

xcodebuild: simulator or device?

Что заставило меня проверить эти другие 2 темы? Один файл .log Я нашел где-то еще, чем значение по умолчанию, и dull /var/log/system.log

RANT: Существует проблема с файлами MANY .log, которые вы можете найти на современном MAC!/RANT

Независимо, в процессе обнаружения, который .log файл был полезный один для меня, я обнаружил, эти из них:

  • $ HOME/Library/CoreSimulator/CoreSimulator.log (не очень полезно моя проблема, во всяком случае).
  • $ HOME/Library/CoreSimulator/[UGLY_HASH_CORRESPONDING_TO_THE_SIMULATOR_YOU_ARE_USING] /system.log

, что в прошлом один был хороший. В конце этого .log-файла я нашел дополнительную информацию при попытке загрузить «плохо сконструированный файл .app». Журнал сказал что-то вроде этого:

Program specified by service does not contain one of the requested architectures 

И тогда слово «архитектура» дал мне подсказку, чтобы решить мою проблему и что искать.


И все. Если кто-то найдет себя в той же ситуации в будущем, я надеюсь, что вся эта информация, которую я написал выше, будет полезна.

Приветствия.


PS: Если вы не можете найти то, что папка, в которой живут ваши хлопотно Simulator (и связанный с ним .log файл), (может быть буквально десятки установленных тренажеров), можно использовать Алькатрас Plugin Вызывается ̶X̶C̶o̶d̶e̶W̶a̶y̶.̶ После того, как этот плагин установлен и Running, ̶ вы можете проверить скорости загрузки ̶i̶O̶S̶8̶ + ̶ симуляторе этого, используя Xcode: ̶

Xcode ̶-̶> ̶ ̶-окон ̶> ̶ ̶ ̶X̶C̶o̶d̶e̶W̶a̶y̶-̶> ̶ Перейти к ̶i̶O̶S̶8̶ + ̶ тренажере FOLDER FINDER ОТКРОЕТ, ̶ и Там будет ваш файл .log ̶: ̶) ̶ ̶

вы можете прочитать комментарии ниже этого и увидеть короткий и правильный способ сделать это).

+1

Или вы можете просто запустить «xcrun simctl list», чтобы выяснить UDID. –

+1

Или вы также можете открыть system.log в консоли из меню Simulator.app ... –

1

xcrun simctl launch booted somebundle.id.from.me не сбой. Он корректно сообщает вам об ошибке, указывающей на неудачу запуска.

Ошибка домена = FBSOpenApplicationErrorDomain Code = 1 означает, что что-то пошло не так, как запуск приложения.Да, вы, наверное, уже это знали, но более конкретно, код 1 указывает на общий сбой, а не на то, что я могу использовать, чтобы точно определить точную проблему. 1 означает, что «эта ошибка что-то не так, но у нас нет лучшего кода ошибки для ее использования».

Для получения более точной информации о том, что происходит не так, я предлагаю вам смотреть симулятор system.log во время запуск. Ваш вопрос указывает, что вы искали в system.log, но похоже, что вы смотрели хост system.log, который вам не очень-то полезен. Например:

Terminal 1 $ tail -F ~/Library/Logs/CoreSimulator/[UDID]/system.log 
Terminal 2 $ xcrun simctl launch booted somebundle.id.from.me 

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

Я подозреваю, что ваш пакет приложений, связанный с переносчиками, имеет неправильный характер, и соответствующие данные, вероятно, присутствуют в системном файле device.log. Если это так, было бы очень полезно иметь в вашем примере радиолокацию (http://bugreport.apple.com), чтобы сообщение об ошибке могло быть соответствующим образом обновлено для распространения обратно на пользователя, а не «(null)».

+0

Мой ответ был настолько длинным, что вы отправили свой первый. Оба в любом случае правы. Спасибо за подсказки по всей этой теме также :) – Isaac

Смежные вопросы