Как запустить мое гибридное мобильное приложение в режиме отладки/разработки на iPhone?
TL; DR: Я могу запустить наше приложение в режиме разработки через VS2015 с удаленной отладкой на iPhone 5c, который у меня есть, но я не могу сделать то же самое на iPhone 4s.
У меня возникли трудности с подключением гибридного приложения Cordova для развертывания на одном конкретном устройстве в моей среде разработки... Однако я не уверен, что это то, что я делаю неправильно, или если здесь есть проблема с совместимостью. Отправьте вопрос здесь, надеясь, что кто-то поможет мне разобраться в происходящем.
Просто для некоторого фона: данное приложение было создано с использованием Intel XDK, а затем перенесено на Visual Studio 2015, когда Intel недавно удалила некоторые функции XDK "Отладка". Нужно было адаптировать несколько вещей, но проект все еще содержит некоторые из кода Intel JS, как это было в исходном проекте.
В моей среде:
- Windows 10 Pro (основной рабочий стол)
- Apple Mac Mini с OSX "El Capitan" 10.11.6 (в сети как сервер сборки)
- iPhone 5c с iOS 8.3
- iPhone 4s с iOS 9.0.2
При настройке этой среды я выполнил инструкции здесь. Агент remotebuild
настроен на использование http
только для того, чтобы упростить его, так как все это все равно содержится в корпоративной сети.
После этого я мог без проблем запускать наше приложение на iPhone 5c, но попытка запустить его на iPhone 4s дает сообщение об ошибке в VS2015:
Failed to deploy iOS remote for <project_path>\bld\ios\Debug\buildInfo.json to http://10.66.7.23:3000/cordova:
Error from http get [object Object]: Error: socket hang up
Примечание. На выходе консоли remotebuild
на Mac нет ошибок, и VS корректно строит проект, но затем не удается его развернуть.
Я также попробовал несколько профилей Provisioning Profiles на обоих устройствах, установленных с помощью iTunes, Xcode или Apple Configurator 2; но благодаря профилям подготовки, которые не отображаются на устройствах с iOS 8 или новее, я даже не могу проверить, что они установлены вообще.
Оба этих устройства могут устанавливать и запускать предыдущую версию этого приложения (доступно в магазинах приложений), но мне нужно иметь возможность проверять DOM в режиме реального времени, потому что, хотя они имеют одинаковый размер экрана, отзывчивые точки останова ведут себя по-другому.
Итак, прежде чем я вытащу, какие маленькие волосы у меня остались, пожалуйста, кто-нибудь поможет мне разобраться, что, черт возьми, происходит здесь? Я сражался с этим уже более недели, и мне кажется, что я кружась по кругу.
Ответы
Ответ 1
После всего этого назад и вперед с iPhone 4s, оказалось, что само устройство было действительно неисправным. Как-то это привело к тому, что версия iOS была установлена неправильно, что привело к проблемам с программным обеспечением для приложений, запущенных на устройстве.
Это не сразу показалось нам из-за неудачной нехватки устройств, к которым у нас был доступ для тестирования, но поскольку мне удалось получить iPad Mini с 9.3.5 и iPhone 6 с 10.2.1, мы нам удалось проверить совместимость нашего приложения с более новыми версиями ОС.
В любом случае, в заключение я просто хотел сказать массивную спасибо для всех предложений и идей, которые я получил в комментариях к вопросу (особенно @Gandhi, извините за рассказ о щедрости, мне все еще хочется вы заслуживаете того, чтобы быть настолько полезным).
Несмотря на то, что моя конкретная проблема не была чем-то, что могло быть разрешено здесь в SO, я все еще многому научился во время этого процесса, и я очень благодарен.
Ответ 2
Даже ответ уже отправлен самим комментатором, я все еще размещаю мой на благо других.
Когда сборка отлично работает на одном устройстве, работающем на iOS 8, а не на том, что работает в iOS 9, это может быть проблемой с версией iOS из-за изменений безопасности или может быть проблемой совместимости устройств.
В этом случае быстрый способ сузить проблему состоит в том, чтобы протестировать сборку на другом устройстве с той же версией (iOS 9). Но, к сожалению, в деле @Zalithka у него было устройство для тестирования. Но если кто-то сталкивается с такой проблемой, попробуйте в разных устройствах, чтобы быстро решить проблему и прибить ее.