Подписание встроенного фреймворка не работает в Xcode 11.2.1

18

У меня есть небольшое приложение для проверки концепции, в котором я пытаюсь встроить (и подписать) фреймворк (Alamofire) в фреймворк (AequumPOCFramework.framework), однако, когда я пытаюсь выполнить развертывание на моем устройстве, оно продолжает давать мне ошибка

.... недопустимо для использования в процессе с проверкой библиотеки: в отображаемом файле нет cdhash, полностью без знака? Код должен быть подписан как минимум.

Если я просто попытаюсь развернуть свой собственный фреймворк без встроенного в него Alamofire, все будет хорошо.

Полная ошибка при развертывании на моем iphone:

dyld: библиотека не загружена: @ rpath / Alamofire.framework / Alamofire Ссылка на: : подходящее изображение не найдено. Удалось найти: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire (частный код /Alamofire: /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire) недопустим для использования в процессе с использованием библиотеки Valid: no hasd nod с использованием библиотеки Valid совершенно без знака? Код должен быть подписан как минимум.

Что я делаю неправильно?

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

geekyaleks
источник
2
Имея ту же проблему здесь. В данный момент копаюсь в этой проблеме. Держите меня в курсе, если вы уже нашли решение!
Mattk90
2
Так рад видеть, что я не единственный ... Если я узнаю, я дам вам знать. Также, пожалуйста, дайте мне знать, если вы добьетесь успеха.
geekyaleks
Я уже могу сказать вам, что это связано с процессом подписания рамок. Таким образом, проблема в том, что Xcode говорит, что подпись встроенного фреймворка неверна или не совпадает с подписью вашего фреймворка. Я сейчас копаю глубже. Проверьте эту статью для хорошего интро к теме: medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
Mattk90
2
Да, что-то не так с этим процессом подписания ... На данный момент я включаю мою платформу Alamofire в свою собственную инфраструктуру, подписываю и встраиваю ее туда, И подписываю и встраиваю ее в само приложение. Я знаю, что это отстой, но это позволит мне, по крайней мере, продолжать писать код, и, надеюсь, скоро появится реальное исправление.
geekyaleks
1
Спасибо за исчерпывающий ответ ... Я решил, что сейчас я просто подпишу встроенную / встроенную среду в самом приложении, надеюсь, в ближайшее время появится другой ответ ...
geekyaleks

Ответы:

15

Вложенные фреймворки не поддерживаются в iOS (см. Технические замечания ). Единственное законное решение на данный момент - связать «встроенные» фреймворки напрямую с приложением хостинга.

* XCFramework - это, в основном, совокупность двоичных файлов, специфичных для платформы, и, к сожалению, не имеет никакого отношения к встраиванию фреймворков.

Berec
источник
Есть новости о проблеме? Я сталкиваюсь с той же проблемой: мой фреймворк A использует мой фреймворк B, и мне нужно, чтобы окончательное приложение включало только фреймворк A, а не было доступа к фреймворку B
Silvia
@ Silvia Если вам абсолютно необходимо спрятать B, то я считаю, что вы можете превратить его в статическую библиотеку.
Berec
0

Тебе тоже нужно встраивать Alamofire в свой проект.

Например, вы используете Carthage, а Cartfile вашей платформы имеет библиотеку Alamofire. Вы должны использовать тот же Carfile и для своего основного приложения. Кроме того, вы должны выполнить другие действия Carthage (связать библиотеку, добавить скрипт запуска) для основного приложения.

Юсуф Демирчи
источник
Да, я тоже это выяснил, но моей целью не было показать все мои фреймворки конечному разработчику. Я надеялся, что все будет хорошо объединено в одной структуре (моей структуре). Спасибо ..
geekyaleks