Podpisywanie szkieletu osadzonego nie działa w Xcode 11.2.1

18

Mam małą aplikację sprawdzającą koncepcję, w której próbuję osadzić (i podpisać) platformę (Alamofire) wewnątrz mojej platformy (AequumPOCFramework.framework), jednak gdy próbuję wdrożyć na moim urządzeniu, nadal daje mi błąd

.... nie można używać w procesie przy użyciu sprawdzania poprawności biblioteki: zmapowany plik nie ma cdhash, całkowicie niepodpisany? Kod musi być co najmniej podpisany ad-hoc.

Jeśli po prostu spróbuję wdrożyć własny framework, bez osadzonego w nim Alamofire, wszystko działa dobrze.

Całkowity błąd podczas wdrażania na moim iPhonie to:

dyld: Biblioteka nie załadowana: @ rpath / Alamofire.framework / Alamofire Odwołanie: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.fr : nie znaleziono odpowiedniego obrazu. Znaleziono: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire: podpis kodu w / private /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire) niepoprawne do użytku w procesie przy użyciu biblioteki Walidacja pliku cd: mapowana , całkowicie niepodpisany? Kod musi być co najmniej podpisany ad-hoc.

Co ja robię źle?

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

geekyaleks
źródło
2
Mając ten sam problem tutaj. Aktualnie zagłębiam się w ten problem. Informuj mnie, jeśli już znalazłeś rozwiązanie!
Mattk90
2
Cieszę się, że nie jestem jedyny ... Jeśli się dowiem, dam ci znać. Daj mi również znać, jeśli zrobisz jakieś postępy.
geekyaleks
Mogę już powiedzieć, że ma to związek z procesem podpisywania frameworka. Problem polega na tym, że Xcode twierdzi, że podpisywanie wbudowanego frameworka jest nieprawidłowe lub inne niż w przypadku własnych frameworków. Obecnie kopie głębiej. Zapoznaj się z tym artykułem, aby uzyskać dobre wprowadzenie do tematu: medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
Mattk90
2
Tak, coś jest nie tak z tym procesem podpisywania ... Na razie dołączam moją ramę Alamofire do mojej własnej ramy, podpisuję ją i osadzam, ORAZ podpisuję i osadzam w samej aplikacji. Wiem, że to do bani, ale pozwoli mi to przynajmniej dalej kodować i mam nadzieję, że wkrótce pojawi się prawdziwa poprawka.
geekyaleks
1
Dziękuję za bardzo wyczerpującą odpowiedź ... Zdecydowałem, że na razie podpiszę platformę „embedded / embedded” w samej aplikacji, mam nadzieję, że w najbliższej przyszłości pojawi się kolejna odpowiedź ...
geekyaleks,

Odpowiedzi:

15

Zagnieżdżone struktury nie są obsługiwane w systemie iOS (patrz uwagi techniczne ). Jedynym obecnie uzasadnionym rozwiązaniem jest połączenie „osadzonych” ram bezpośrednio z aplikacją hostingową.

* XCFramework jest głównie agregacją plików binarnych specyficznych dla platformy i nie ma niestety nic wspólnego z osadzaniem frameworków.

berec
źródło
Jakieś wiadomości na temat problemu? Mam do czynienia z tym samym problemem: mój framework A korzysta z mojego framework B i potrzebuję, aby końcowa aplikacja zawierała tylko framework A i nie mogła uzyskać dostępu do framework B
Silvia
@Silvia Jeśli absolutnie potrzebujesz ukryć B, to wierzę, że możesz go przekształcić w bibliotekę statyczną.
berec
0

Musisz także osadzić Alamofire w swoim projekcie.

Na przykład używasz Carthage, a plik Cartfile twojej biblioteki ma bibliotekę Alamofire. Musisz również użyć tego samego pliku Carfile do swojej głównej aplikacji. Musisz także wykonać inne działania Kartaginy (łączenie biblioteki, dodawanie skryptu uruchamiania) dla głównej aplikacji.

Yusuf Demirci
źródło
Tak, dowiedziałem się o tym również, jednak moim celem nie było narażenie wszystkich moich frameworków na programistę końcowego. Miałem nadzieję, że wszystko ładnie zgromadzi się w jednym frameworku (moim frameworku). Dzięki ..
geekyaleks