Мне удалось скачать файл .ipa для iOS-приложения Pythonista3. Мне это очень нравится, и я нахожу его настолько полезным, что пытаюсь запустить его на своем MacBook; больший экран, лучшая клавиатура и так далее. Я понял, что путь - это симулятор Xcode.

Во-первых, у меня на рабочем столе Pythonista3.app . Я бегу в терминале:

xcrun simctl install C7F3CA5B-3F59-49F3-986C-4C7C43D8BFE6 "~/Desktop/Pythonista3.app"

Обратите внимание, что я собираюсь запустить это на iPad Pro Gen 3 (12,9 дюйма).

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

Я попытался установить его программно с установленным параметром verbose:

xcrun -v simctl install C7F3CA5B-3F59-49F3-986C-4C7C43D8BFE6 "~/Desktop/Pythonista3.app"

Со следующим выходом (терминал)

xcrun: note: PATH = '/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin'
xcrun: note: SDKROOT = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk'
xcrun: note: TOOLCHAINS = ''
xcrun: note: DEVELOPER_DIR = '/Applications/Xcode.app/Contents/Developer'
xcrun: note: XCODE_DEVELOPER_USR_PATH = ''
xcrun: note: xcrun_db = '/var/folders/22/vc4mhyq143nc34kzl_n6v3j80000gn/T/xcrun_db'
xcrun: note: xcrun via simctl (xcrun)
xcrun: note: database key is: simctl|/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk||/Applications/Xcode.app/Contents/Developer|
xcrun: note: lookup resolved in '/var/folders/22/vc4mhyq143nc34kzl_n6v3j80000gn/T/xcrun_db' : '/Applications/Xcode.app/Contents/Developer/usr/bin/simctl'

Было также очень интересное поведение, когда я пытался запустить исполняемый файл Pythonista3 (потомок Pythonista3.app): Operation not permitted - это примерно то, что сказал мне терминал. Я на самом деле прошел весь путь и (временно) отключил защиту целостности системы через csrutil , но даже это не позволило мне запустить исполняемый файл UNIX. Я попытался удалить зависимость / требование armv7 из Info.plist без какой-либо выгоды.

Может ли это быть проблемой подписания кода? Я слышал об использовании опции -SimulateApplication на симуляторе, но не узнал должным образом, как это сделать (Xcode обновляет непонятные вещи).

Я также знаю, что есть куча голосов, говорящих, что запуск приложений iOS на MacBook просто невозможен, но я верю, что есть способ, каким-то образом ...

Может кто-нибудь помочь мне загрузить приложение на симулятор и заставить его работать без сбоев, прежде чем оно пройдет мимо LaunchScreen.storyboard?

1 ответ1

2

Они правы. Вы не можете *

Если .ipa был построен только для другой архитектуры процессора (например, armv7 на мобильных устройствах), он не будет работать на симуляторе. При создании приложения из исходного кода для симулятора xcode оно создается для архитектуры Mac.

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

Вы заявляете себе, что там, где много голосов говорят, что это невозможно. Они верны, если только вы не создадите свой собственный симулятор, который точно имитирует архитектуру armv7.

Как указано здесь, если приложение было создано для симулятора, но на другом компьютере, вы можете просто перетащить пакет приложения в симулятор, если он создан для того же iOS и симулятора устройства.

* Если вы не в отчаянии: обратный инжиниринг

Вышеупомянутое ограничение обойдется, если вы сможете перестроить приложение для архитектуры OSX. Для этого вам нужно что-то похожее на исходный код.

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

Что вы могли бы сделать вместо

Ваша цель - получить доступ к приложению с большим экраном и лучшей клавиатурой. Вам не нужно запускать приложение на MacBook, чтобы достичь этого. Вместо этого вы можете отразить отображение телефона /iPad на MacBook и использовать клавиатуру MacBook для ввода текста.

Зеркалирование экрана:

Вы можете использовать x-mirage, airserver или Reflector, которые являются платными приложениями с бесплатной пробной версией, для зеркалирования или использовать бесплатный метод в связанном ответе:

  1. Закройте QuickTime на вашем Mac, если он открыт.

  2. Подключите ваш iPhone, iPad или iPod touch к вашему Mac через кабель Lightning.

  3. Откройте QuickTime на вашем Mac и выберите « Файл» > « Новая запись видео».

  4. Окно записи появится. Нажмите стрелку рядом с кнопкой «Запись» и выберите свой iPhone в раскрывающемся меню.

  5. Нажмите кнопку «Запись» и займитесь своими делами на своем iPhone.

Совместное использование клавиатуры:

Опять же вам понадобится стороннее программное обеспечение. Airtype бесплатный. 1 клавиатура и type2phone платные.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .