как установить приложение на ios симулятор
Запускаем iOS приложения из консоли на девайсе и симуляторе
В статье будет кратко описано, как собрать приложение консольными командами и запустить на реальном девайсе и симуляторе без какой-либо надобности открывать xcode для этого.
В общем, стоит начать с того, что в моей компании имеется отдел ios разработки в составе > 10 человек, которые работают над пачкой приложений. Для автоматизации рутинной работы нам пришлось развернуть CI сервер (пока самописный, ввиду особых исторических причин (ну как у всех), планируется миграция на jenkins). К рутинным вещам я отношу — сборку проектов, запуск тестов (если, конечно, вы их пишете), создание ипашек для тестеров и для выкладки в app store. В общем, хотелось чтобы по нажатию кнопочки или по хуку в гите всё это начинало работать. Пока у нас всё работает по нажатию кнопки разработчиком, про гит пока только в планах. В данной статье я только затрону тему компиляции проекта и упаковку его в ipa файла. Функционал запуска проектов на девайсах на стороне CI сервера еще находится в стадии разработки, а вот сам процесс упаковки уже давно в «бою», может кому пригодиться.
Перед компиляцией проекта необходимо установить apple doc generator github.com/tomaz/appledoc (там есть описание как установить).
Переходим к скаченному проекту. Корневой проект представляет собой сам ResearchKit framework, само тестовое приложение находится в другом месте, переходим туда:
Пробуем компилировать приложение. Собираем под симулятор, так как для сборки проекта под симулятор не нужны сертификаты/провижен файлы.
Билд падает, так как нет схемы ORKCatalog. Так как схема в оригинальном проекте не была помечена как shared, то после “слива” из гита, xcode еще ничего не знает об этой схеме, чтобы он ее снегирил, нужно просто открыть проект. Поэтому просто открываем проект:
После видим долгожданное ** BUILD SUCCEEDED **. Отлично, всё работает.
Запускаем проект на симуляторе
Компилируем под симулятор, архитектуры могут быть i386/x86_64. Через SYMROOT задаем путь результата сборки:
(Мысли вслух: когда писал статью, компиляция в режиме Release работала, перед публикацией статьи еще раз проверил все шаги и компиляция в этом режиме перестала работать, поэтому собираем в Debug, какие-то из последних коммитов это сломали.)
После успешной сборки мы получили ORKCatalog.app файл в build/Debug-iphonesimulator/. Осталось запустить это на симуляторе. Для этого будем использовать ios-sim утилиту github.com/phonegap/ios-sim. Пользоваться ей достаточно просто.
Получаем список доступных симуляторов:
Из предложенного списка я выбрал ‘iPhone-6-Plus’. Запускаем приложение на нем:
Если всё правильно сделали, то должен запуститься симулятор с приложением (для входа в режим ввода в консоли используйте ctrl + C).
Создание ipa файла и запуск на реальном девайсе
Тут немного сложнее, нам нужен mobileprovision файл для разработки (developer) и наличие сертификата на машине (p12 файл), при этом наличие аккаунта в xcode не нужно. При подписании/упаковки приложений из консоли нет необходимости добавлять аккаунт в xcode, это очень помогает, например, на CI сервере можно держать только p12 файлы.
Будем считать, что на вашей машине есть соответствующий сертификат. После генерируем developer mobileprovision через developer.apple.com в вашем аккаунте и скачиваем на машину (дадим ему название test.mobileprovision, а bundle id будет ru.habrahabr.test). После копируем его в директорию, где его сможет подхватить xcode:
Собираем архив под девайс (это архитектуры arm64/armv7):
Компиляция упадет, так как мы еще не прописали в приложении свой bundle id и не прилинковали mobileprovision, ошибка будет такого вида:
Будем передавать bundle id из консоли + нужно прописать его в Info.plist файле. Также через консоль будем передавать линк на наш mobileprovision. Plist файл находим по пути ORKCatalog/Supporting Files/Info.plist, в котором для ключа CFBundleIdentifier выставляем значение ru.habrahabr.test. Bundle id передаем через ключ со значением нашего ид PRODUCT_BUNDLE_IDENTIFIER=ru.habrahabr.test. Линк на mobileprovision передаем через ключ PROVISIONIG_PROFILE, со значние UUID, который прописан в mobileprovision.
Значение будет подобно 87b0df89-793a-4a0f-92bf-c5f9c35f1405. Снова собираем:
В итоге получим архив build/archive.xcarchive, который осталось упаковать в ipa. В xcode 7 появился новый метод упаковки, им и воспользуемся. Перед этим создадим конфиг файл options.plist с таким содержанием:
Пробуем собирать ipa:
Сборка падает, по логам можно понять, что что-то с entitlements:
По ошибке ясно, что приложение подписываем entitlements, значения в котором не соответствуют значениям в нашем mobileprovision, а именно com.apple.developer.healthkit. Ищем причину. Смотрим каким entitlements подписано приложение:
Видим, что всё ок, за исключением этого:
У нас в mobileprovision нет этой опции, нужно выяснить, откуда это взялось:
Поиск нам выдал ORKCatalog/Supporitng Files/ORKCatalog.entitlements. Смотрим что внутри:
Там только одно значение:
По логике нужно перезаводить mobileprovision, в который нужно добавить это значение, но мы ленивые и для теста это не обязательно, нам нужно просто переподписать приложение с entitlements без этого значения.
У нас есть как минимум два варианта:
1. Просто редактируем существующий entitlements (ORKCatalog/Supporitng Files/ORKCatalog.entitlements) и снова пересобираем (через archive).
2. Без пересборки, сами переподпишем ORKCatalog.app с нужным entitlements.
Выберем первый вариант как более простой. Поэтому из файла ORKCatalog/Supporitng Files/ORKCatalog.entitlements просто удаляем строки:
и снова пересобираем архив:
Видим долгожданное сообщение ** EXPORT SUCCEEDED **. Под build/dev-ipa/ появиться ipa файл, который будем устанавливать на девайс. Устанавливать на девайс будем с помощью ios-deploy github.com/phonegap/ios-deploy. Цепляем девайс к машине, получаем id девайса через:
Собираем ipa файл для маркета
Без использования xcode смогли собрать ipa файлы для тестов и на выкладку в app store. Всё это можно легко автоматизировать на CI сервере чтобы облегчить жизнь разработчикам.
Как я могу установить.файл в моем симуляторе iPhone
У меня есть симулятор iphone, работающий на моем Mac.
10 ответов
ты не можешь. Если он был загружен через iTunes store, он был построен для другого процессора и не будет работать в симуляторе.
затем я нашел папку полезной нагрузки и переместил приложение внутрь на свой рабочий стол.
наконец, я переместил это приложение в папку приложений iPhone simulators, найденную по адресу:
надеюсь, что это помогает! (Примечание: некоторые приложения сбой чаще, чем другие.)
в Xcode 6+ и iOS8+ вы можете сделать простые шаги ниже
откройте терминал и вставьте команды ниже:
xcrun simctl install booted xyz.app
для версии под iOS 8, Выполните следующие простые шаги.
вы не можете запустить файл ipa в симуляторе, потому что файл ipa компилируется для архитектуры ARM телефона, а не архитектуры x86 симулятора.
однако вы можете извлечь приложение, установленное в локальном симуляторе, отправить его кому-то другому и скопировать его в симулятор на своем компьютере.
обновление для Xcode 8.0+ вам нужно выполнить следующие действия:
проверьте, что каталог вы найдете на полезная нагрузка папка, скопируйте это app файл
FYI: Library папка скрыта по умолчанию в mac, вы можете увидеть скрытый файл, используя команду ниже.
теперь здесь вы увидите много каталогов с длинными шестнадцатеричными именами, все это симуляторы.
чтобы найти нужный симулятор, отсортируйте эти каталоги с помощью «упорядочено по > Дата изменения».
выберите этот файл симулятора и перейдите к ниже местоположения.
открыть терминал и выполните команду ниже, чтобы установить это приложение
прежде всего, IPAs обычно имеют только ломтики ARM, потому что App Store в настоящее время не принимает ломтики симулятора в загрузках.
/Library/Developer/Xcode/DerivedData/projectname-xyzzyabcdefg/Build/Products/Debug-iphonesimulator Если вы хотите сохранить его или распространять его среди других людей.
для установки из командной строки используйте xcrun simctl install
device можно устройства UUID, его имя, или booted что означает загруженное устройство.
вы можете получить его от:
Libraries—>Applicationsupport—>iphone simulator—>4.3(its ur simulator version)—>applications—> тогда вы можете увидеть много файлов, таких как 0CD04F. узнайте свой файл приложения, открыв его.
вы можете скопировать файл в свою систему (какой системный симулятор вам нужно запустить ) местоположение Libraries—>Applicationsupport—>iphone simulator—>4.3(its your simulator version)—>applications—>
затем откройте симулятор 4.3 (его версия симулятора, где вы вставили). Вы можете увидеть установленное приложение там.
получать от других людей:
Пожалуйста, скажите им, чтобы узнать Libraries—>Applicationsupport—>iphone simulator—>4.3(its ur simulator version)—>applications—> тогда вы можете увидеть много файлов, таких как 0CD04F. из их системы и получить, что файл от них.
затем вы можете увидеть приложение установлен в вашей системе simulator и вы можете запустить его после нажатия на файл.
Вставить Сюда:
— /Приложения / Xcode-Beta.app / содержание / разработчик / платформы / iPhoneSimulator.платформа / разработчик / SDKs / iPhone Simulator. SDK / приложения
— Вставьте здесь и запустите симулятор.
вполне возможно построить и установить на симулятор.
Я сделал это, скопировав конфигурацию сборки отладки (я назвал ее SimRelease для моего примера ниже) в настройках проекта. Я изменил архитектуры на i386 и x86_64 (не уверен, насколько это было необходимо), но ключевое различие для изменения между скопированной конфигурацией сборки-Сборка для активной архитектуры, установленной на нет. После этого пара простых инструментов командной строки сделает отдых!
/ Library/Developer/CoreSimulator/ Devices / и установить на каждом устройстве.
оттуда простая команда для установки на устройство:
xcrun simctl установить DEVICE_ID APP_FOLDER_LOCATION
вот простой сценарий оболочки, чтобы принять приложение и установить его на любом устройстве:
надеюсь, что это помогает! Мне потребовалось время, чтобы придумать лучший способ сделать это.
для Xcode 9.4.1 и новейшие симуляторы:
Надеюсь, мой ответ будет замечен здесь, так как мне потребовалось некоторое время, чтобы понять, но я просто получил его работу.
в первую очередь нужно построить и запустить приложение на симуляторе. Затем вы открываете Монитор Активности. Дважды щелкните имя приложения, чтобы найти его содержание.
на следующем экране откройте открытые файлы и Порты tab и найдите строку с MyAppName.app / MyAppName.
скопировать ссылку но обязательно остановитесь на MyAppName.app. Не копируйте следующий путь.
Control нажмите на значок finder и выберите перейдите в папку.
вставьте путь и нажмите enter. Вы увидите свое MyAppName.файл приложения. Скопируйте его на рабочий стол и сжать его. Переместить его на нужный 2-й компьютер и распаковать архив. Создайте случайный проект, чтобы открыть симулятор.
наконец: буквально перетащите приложение с рабочего стола в свой симулятор. Вы увидите установку и приложение открывается и делает не аварии.
Как установить приложения на Xcode 6 iOS Simulator
Я ищу способ установить почтовое приложение на симуляторе Xcode 6 iOS.
Кроме того, как я могу установить приложения, которые уже являются общедоступными в App Store, чтобы я мог запускать их на iOS Simulator? Есть ли простой способ?
4 ответа
Помните, конечно, что эти приложения должны быть приложениями для iOS Simulator, а не приложениями для устройств iOS.
Если у вас нет доступа к исходному коду проекта или двоичным файлам симулятора, вы не можете установить его на свой собственный симулятор.
В Xcode 8.2 теперь вы можете перетащить приложение в окно iOS Simulator. Смотрите этот блог: https://medium.com/@ hollanderbart /New-функция-в-Xcode-8-2-симулятор fc64a4014a5f
ПРИМЕЧАНИЕ. Приемник приложения для симулятора должен загрузить ту же версию симулятора и iOS, что и для компиляции пакета приложения для симулятора.
Чтобы установить приложение, скомпилированное для симулятора, вам необходимо:
Теперь вы должны сразу же увидеть значок приложения в симуляторе (вероятно, появившийся на странице 2).
Папка будет выглядеть примерно так:
/Users /MyHomeFolder /Library /Developer /CoreSimulator /Devices /09BB353F-3AF9-4A2A-8CDB-0F15634AD6D8 /данные /Контейнеры /Data /Application /8F509C84-6809-461D-9F9E-06811EF9A700
Пакет приложения будет находиться в папке Контейнеры в Bundle /Application /3ADE9CF0-F6D0-4461-9B82-30A86580D2C7 /StackOverflow.app
У меня на Mac работает симулятор iphone.
Ты не можешь Если он был загружен через магазин iTunes, он был создан для другого процессора и не будет работать в симуляторе.
Затем я нашел папку Payload и переместил приложение на свой рабочий стол.
Наконец, я переместил это приложение в папку приложений для имитаторов iPhone, которая находится по адресу:
Надеюсь это поможет! (Примечание. Некоторые приложения выходят из строя чаще других.)
В Xcode 6+ и iOS8 + вы можете сделать простые шаги ниже
Откройте терминал и вставьте команды ниже:
xcrun simctl install booted xyz.app
Для версий ниже iOS 8 выполните следующие простые шаги.
Для Xcode 9.4.1 и последних симуляторов:
Надеюсь, мой ответ увидят здесь, так как мне потребовалось некоторое время, чтобы разобраться, но я просто получил его на работу.
На следующем экране откройте вкладку « Открыть файлы и порты » и найдите строку с MyAppName.app/MyAppName.
Вставьте путь и нажмите Enter. Вы увидите ваш файл MyAppName.app. Скопируйте его на рабочий стол и заархивируйте. Переместите его на второй компьютер и распакуйте файл. Создайте случайный проект, чтобы открыть симулятор.
Наконец: буквально перетащите приложение с рабочего стола в симулятор. Вы увидите установку, и приложение открывается и не падает.
Вы не можете запустить файл ipa в симуляторе, потому что файл ipa компилируется для архитектуры ARM телефона, а не для архитектуры x86 симулятора.
Однако вы можете извлечь приложение, установленное в локальном симуляторе, отправить его кому-то другому и попросить скопировать его в симулятор на своем компьютере.
В терминале введите:
/ Library / Developer / CoreSimulator / Devices / 594C6B4D-AB19-479B-A047-240361C51D95 / data / Applications / So open
/Library/Developer/CoreSimulator/Devices/*/data/Containers/Bundle/Application/ В противном случае приложение не будет отображаться в симуляторе.
ОБНОВЛЕНИЕ: Для Xcode 8.0+ вам необходимо выполнить следующие шаги:
К вашему сведению: Library папка по умолчанию скрыта в Mac, вы можете увидеть скрытый файл, используя команду ниже.
Теперь здесь вы увидите много каталогов с длинными шестнадцатеричными именами, это симуляторы.
Чтобы найти нужный имитатор, отсортируйте эти каталоги с помощью «Упорядочить по> Дата изменения».
Выберите этот файл симулятора и перейдите к расположению ниже.
Откройте терминал и выполните команду ниже, чтобы установить это приложение
Прежде всего, в IPA обычно есть только фрагменты ARM, потому что в настоящее время App Store не принимает фрагменты симулятора при загрузке.
/Library/Developer/Xcode/DerivedData/projectname-xyzzyabcdefg/Build/Products/Debug-iphonesimulator если хотите сохранить его или распространить среди других людей.
Для установки из командной строки используйте xcrun simctl install
device может быть UUID устройства, его именем или booted означать загруженное в данный момент устройство.
Вы можете получить это от:
Libraries—>Applicationsupport—>iphone simulator—>4.3(its ur simulator version)—>applications—> тогда вы можете увидеть много файлов, как 0CD04F. узнать файл вашего приложения через открыть его.
Вы можете скопировать файл в папку вашей системы (какой симулятор системы вам нужно запустить) Libraries—>Applicationsupport—>iphone simulator—>4.3(its your simulator version)—>applications—>
Затем откройте симулятор 4.3 (это версия вашего симулятора, куда вы вставили). Вы можете увидеть приложение, установленное там.
Получение от других людей:
Пожалуйста, скажите им, чтобы выяснить, Libraries—>Applicationsupport—>iphone simulator—>4.3(its ur simulator version)—>applications—> тогда вы можете увидеть много файлов, как 0CD04F. из их системы, и получить этот файл от них.
Затем вы увидите, что приложение установлено в вашем симуляторе системы, и вы можете запустить его после нажатия на файл.
Вставьте сюда:
— /Applications/Xcode-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhone Simulator. SDK / Applications
— Вставьте сюда и запустите симулятор.
Это очень возможно построить и установить на симуляторе.
/ Library / Developer / CoreSimulator / Devices / и установить на каждое устройство.
Оттуда простая команда для установки на устройство:
xcrun simctl установить DEVICE_ID APP_FOLDER_LOCATION
Вот простой сценарий оболочки, чтобы взять приложение и установить его на каждое устройство:
Надеюсь это поможет! Мне понадобилось время, чтобы выяснить, как это сделать.
Для Xcode 10 вот простой способ, который работал для меня для отладочного IPA (профили разработки)
Он должен установить это приложение на этом симуляторе.
Xcode уроки. Урок 5. Запуск мобильного приложения для iOS
iOS симулятор – это небольшой встроенный в Xcode апплет, который позволяет легко протестировать созданное приложение даже без использования тестового физического устройства. Любому разработчику доступно несколько симуляторов на выбор для проверки своего приложения на всех актуальных мобильных устройствах Apple с разными размерами экрана. Симулятор здорово упрощает проверку приложений на разных устройствах, т.к. не требуется наличия в руках физического устройства.
Цель урока: научится создавать простые мобильные приложения с интерфейсом для iOS.
Запуск приложения в эмуляторе iOS
Сначала необходимо открыть проект любого приложения. И в верхней панели нажать на кнопку рядом с названием проекта, чтобы выбрать устройство для эмуляции. Для примера, на рисунке выбран «iPhone 6s»:
Затем необходимо открыть эмулятор, который находится по пути Xcode->Open Developer Tool->Simulator:
После этого необходимо запустить компиляцию мобильного приложения путем нажатия кнопки «выполнения»:
На экране появится следующее окно, эмулирующее работу выбранного устройства «iPhone 6s» с версией iOS 11.2, о чем сообщает подпись снизу:
Приложение уже скомпилировано внутри эмулятора. Перейдя на другую вкладку экрана, можно произвести его запуск (в данном случае оно имеет название «Calc v.1.1»):
Теперь можно тестировать приложение и проверять его работу на данном устройстве в эмуляторе:
Запуск приложения на физическом устройстве
Существует возможность запуска приложения на реальном устройстве для тестирования. Для этого необходимо подключить устройство usb-кабелем и открыть список устройств, выбрать в нём появившееся устройство (в данном случае «iPhone»):
Далее необходимо запустить процесс компиляции и дождаться появления иконки приложения на устройстве:
Необходимо кликнуть по иконке приложения на устройстве и в появившемся окне-предупреждении нажать кнопку «отменить».
Затем необходимо осуществить переход в пункт Настройки->Основные->Управление устройством. Здесь необходимо найти свою учетную запись разработчика и выбрать её путем нажатия, чтобы перейти в следующий пункт настройки:
Далее необходимо нажать кнопку «доверять» и подтвердить это действие:
После этих действий, мобильное приложение успешно запустится на физическом устройстве:
Создание приложения конвертации из 10 в 2 систему счисления и наоборот
Создадим приложение, которое будет производить конвертацию из десятичной системы счисления в двоичную и наоборот. Приложение содержит 2 TextField для ввода чисел пользователем, несколько элементов label, кнопку, по нажатию на которую и происходит перевод чисел, и элемент Switch. Если Switch находится в активном положении, то перевод будет осуществлять из 10 системы в 2, в обратном случае будет производится перевод из 2 системы в 10.
import UIKit class ViewController: UIViewController < @IBOutlet weak var DEC: UITextField! @IBOutlet weak var BIN: UITextField! @IBOutlet weak var Switch_Dec: UISwitch! @IBOutlet weak var Status: UILabel! @IBAction func OK(_ sender: Any)< var dec=Int(DEC.text!) var bin_len=BIN.text?.count if (Switch_Dec.isOn==true) < Status.text="Переводим из 10 в 2 систему" var i=Int(dec!) var bin=[Int]() var count=0 while i>1
Создание простого калькулятора в Xcode для iOS
Создадим более сложное приложение, которое будет являться калькулятором. Результат скомпилированного приложения приведен на рисунке.
Этот проект будет позволять выполнять простые арифметические операции с двумя числами, такие как: умножение, деление, сложение, вычитание, полная очистка и удаление одного символа. Для каждой цифры необходимо создать свою отдельную кнопку, а также для всех арифметических операций и очистки полей. Код программы приведён ниже:
На рисунке выше также приведен результат выполнения операции умножения чисел «9896» и «8547».