Das Signieren des eingebetteten Frameworks funktioniert in Xcode 11.2.1 nicht


18

Ich habe eine kleine Proof-of-Concept-App, in der ich versuche, ein Framework (Alamofire) in mein Framework (AequumPOCFramework.framework) einzubetten (und zu signieren). Wenn ich jedoch versuche, es auf meinem Gerät bereitzustellen, wird es weiterhin angezeigt mir den fehler

.... nicht gültig für die Verwendung in Prozessen mit Bibliotheksüberprüfung: Zugeordnete Datei hat keinen CDHash, vollständig ohne Vorzeichen? Der Code muss mindestens ad-hoc signiert sein.

Wenn ich nur versuche, mein eigenes Framework bereitzustellen, ohne dass Alamofire darin eingebettet ist, funktioniert alles einwandfrei.

Der vollständige Fehler bei der Bereitstellung auf meinem iPhone lautet:

dyld: Bibliothek nicht geladen: @ rpath / Alamofire.framework / Alamofire Referenziert von: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework : kein passendes Bild gefunden. Gefunden: /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire: / Codesignatur in / /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire) ist nicht gültig für die Verwendung im Prozess unter Verwendung der Bibliotheksüberprüfung , völlig unsigniert? Der Code muss mindestens ad-hoc signiert sein.

Was mache ich falsch?

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


2
Das gleiche Problem hier haben. Derzeit beschäftigen wir uns mit diesem Problem. Halten Sie mich auf dem Laufenden, wenn Sie bereits eine Lösung gefunden haben!
Mattk90

2
Ich bin so froh zu sehen, dass ich nicht der einzige bin ... Wenn ich es herausfinde, werde ich es dich wissen lassen. Bitte lassen Sie mich auch wissen, wenn Sie Fortschritte machen.
Geekyaleks

Ich kann Ihnen bereits sagen, dass dies mit dem Signierprozess des Frameworks zu tun hat. Das Problem ist also, dass Xcode angibt, dass die Signatur des eingebetteten Frameworks falsch oder nicht mit der Ihres eigenen Frameworks identisch ist. Ich grabe gerade tiefer. In diesem Artikel finden Sie eine gute Einführung in das Thema: medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
Mattk90

2
Ja, mit diesem Signaturprozess stimmt etwas nicht ... Im Moment füge ich mein Alamofire-Framework meinem eigenen Framework hinzu, signiere und bettete es dort ein UND signiere und bettete es in die App selbst ein. Ich weiß, dass diese Art von Scheiße ist, aber dadurch kann ich zumindest weiter programmieren, und hoffentlich kommt bald eine echte Lösung heraus.
Geekyaleks

1
Vielen Dank für eine sehr umfassende Antwort ... Ich habe beschlossen, dass ich vorerst nur das "Embedded / Embedded" -Framework in der App selbst signieren werde, hoffentlich wird in naher Zukunft eine weitere Antwort
angezeigt

Antworten:


15

Verschachtelte Frameworks werden unter iOS nicht unterstützt (siehe Technotes ). Die einzig legitime Lösung besteht derzeit darin, "eingebettete" Frameworks direkt mit einer Hosting-App zu verknüpfen.

* XCFramework ist hauptsächlich eine Ansammlung plattformspezifischer Binärdateien und hat leider nichts mit dem Einbetten von Frameworks zu tun.


Gibt es Neuigkeiten zu diesem Thema? Ich habe das gleiche Problem: Mein Framework A verwendet mein Framework B und ich benötige die endgültige App, um nur Framework A
Silvia

@Silvia Wenn Sie B unbedingt verstecken müssen, können Sie es meiner Meinung nach in eine statische Bibliothek verwandeln.
Berec

0

Sie müssen Alamofire auch in Ihr Projekt einbetten.

Sie verwenden beispielsweise Karthago und die Cartfile Ihres Frameworks verfügt über eine Alamofire-Bibliothek. Sie müssen dasselbe Carfile auch für Ihre Haupt-App verwenden. Außerdem müssen Sie andere Aktionen in Karthago (Verknüpfung der Bibliothek, Hinzufügen eines Ausführungsskripts) für die Hauptanwendung ausführen.


Ja, das habe ich auch herausgefunden, aber es war nicht mein Ziel, alle meine Frameworks dem Endentwickler zugänglich zu machen. Ich hatte gehofft, alles schön in einem Framework (meinem Framework) gebündelt zu haben. Danke ..
Geekyaleks
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.