Перейти к содержанию
Fire Monkey от А до Я
  • 0

Деплой приложения на iOS (Delphi 10.3.3 в связке с macOS Catalina)


Losev Andrei

Вопрос

Приветствую!

Кто-нибудь пробовал сабж? Есть у меня рабочий проект под Android, который нужно перетащить под iOS. Сразу скажу, что раньше с Apple дело не имел, так что на первый взгляд показалось несколько запутанно, но спустя несколько дней уверен, что практически все сделано верно. А вот результат — ноль. Так что нужна помощь.

Итак, что есть из ПО/железа:

  • Delphi 10.3.3 на Windows 7 Pro;
  • macOS 10.15.1 на VMware workstation Player 15.5.1;
  • Xcode 11.2.1 (SDK iPhoneOS 13.2) / 10.3 (SDK iPhoneOS 12.4);
  • PAServer 20.0 (тот который не ругается на истекший срок сертификата);
  • iPhone 6s с iOS 12.4.1;

Что сделано на developer.apple.com:

  • Выпущен сертификат iOS Development, установлен в macOS;
  • Зарегистрирован App ID вида ru.domain.* для iOS;
  • iPhone зарегистрирован как device (он доступен в XCode);
  • Создан provisioning profile, тип — iOS development, установлен в Xcode и на телефон;

Что имеем в результате: в Xcode 10.3 (выбран командой xcode-select) могу создать тестовый проект, с тем же именем, что в Delphi, и запустить на телефоне, из чего следует, что подтянутый profile и сертификат в порядке;

В Delphi:

  • Build Configurations – Release (Debug тоже пробовал);
  • Target platform – iOS Device 64-bit – iPhoneOS 12.4 – MacOs 10.15 profile;
  • Target — мой iPhone 6s;

В Delphi проект успешно собирается, но не деплоится, получаю ошибку: «No provisioning profile found for the selected build configuration». Дополнительно вылезает окно справки «Troubleshooting: Cannot Connect to the MAC», похоже не имеющее отношение к делу.

Delphi в Options-Deploymet-Provisioning действительно не находит нужный профайл и ничего кроме <Use Environment Option (Auto) > не доступно. В Options-Version Info CFBundleIdentifier выставлен такой же, как в Xcode при успешной сборке проекта (то есть «ru.domain.имя проекта»).

На стороне Мака в терминале имеем выполнение Paserver-ом набора команд (Paserver запускаю посредством PaServerManager):

> command_line: "/usr/bin/xcrun" simctl list devices

> command_line: "/Applications/PAServer-20.0.app/Contents/MacOS/iosinstall" -q -v -t 5

> command_line: "/Applications/PAServer-20.0.app/Contents/MacOS/iosinstall" -q -v -t 5

> command_line: "/usr/bin/security" find-identity -v

> command_line: "/usr/bin/security" find-certificate -p -a -c "iPhone Developer: Andrei Losev (GJ...)"

> command_line: "/usr/bin/security" cms -D -i "/Users/macuser/Library/MobileDevice/Provisioning Profiles/590086d7-76d7-4f2b-951f-a2dc329823a6.mobileprovision"

То есть Paserver пытается «подцепить» правильный сертификат и нужный provisioning profile, но по какой-то причине эта попытка не приводит к ожидаемому результату. На самом телефоне (Xcode-Window-Devices-iPhone-View Device Logs) лог не создается. Результат с Xcode 11.2.1 аналогичный.

Что не так? У меня идеи закончились.

Изменено пользователем Losev Andrei
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Проблема была в правах доступа на МАКе. Выяснилось случайно, когда попробовал делоить тот же проект под МАК и IDE выдала явную ошибку о невозможности создать файл во вложенной в /Users/macuser/PAServer директории. Вылечилось раздачей прав Read & Wtite для ролей staff/everyone для папки PAServer и вложенных директорий (Apply to enclosed items).

На quality.embarcadero.com есть по крайней мере две заявки на эту тему, почему-то закрытые: RSP-25526 и RSP-26093

В первой автор откатился на Mojave, во второй стоит «Resolution: Cannot Reproduce». Так что описанная проблема спорадический возникает.

Всем успехов и поменьше граблей на пустом месте :)

Ссылка на комментарий
  • 0
В 12.12.2019 в 11:56, Losev Andrei сказал:

Всем успехов и поменьше граблей на пустом месте :)

Так вам удалось подружить Embarcadero  10.3.3 и Xcode 11.2.1? Под Каталину приложуха построится? А то в сети читаю гневные отзывы, что это только обещания, а в реале новый SDK не подтягивается 

Изменено пользователем giveaway
Ссылка на комментарий
  • 0

Ответ положительный, но без танцев с бубном, как я уже писал, не обошлось. Приложение писал для себя, теперь живет у меня на iPhone 6s с iOS 13.3.

Ссылка на комментарий
  • 0
1 час назад, Losev Andrei сказал:

Ответ положительный, но без танцев с бубном, как я уже писал, не обошлось.

И вдогонку вопрос - а Каталину только версия для Delphi поддерживает? А С++ нет? В описании к нему ни строчки о поддержке.

Ссылка на комментарий
  • 0

Добрый день! 
 

бьюсь над похожей проблемой - близок к отчаянию (
Поставил каталину на виртуалку под vbox. Обновился до послед версий Xcode и каталины. 
 

Настроил проброс usb для iphone. 
каталина телефон не видит (

если настраиваю проброс usb для внешнего usb-носителя - флешка прекрасно подключается и видится под маком. 
 

не налетал ли кто из уважаемой публики на эту проблему?

буду очень признателен, если кто-то поделится своим опытом подъема среды на виртуалке. 
 

спасибо! 

Ссылка на комментарий
  • 0

Под Virtualbox мне так и не удалось получить рабочую конфигурацию. Потратил, как и вы, кучу времени и сил. И в конце концов я перешел на VMware workstation Player, что и решило проблему, как я описал выше.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...