dyld: Library not loaded: nur auf Device

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • dyld: Library not loaded: nur auf Device

    Hallo Experten,

    ich brauche mal wieder einen Rat. Ich habe zu einem iOS Projekt die Tapku Library hinzugefügt. Auf dem Simulator läuft alles ohne Probleme, nur wenn ich die Software auf meinem iPhone 5S laufen lassen will kommt folgende Fehlermeldung:

    Quellcode

    1. dyld: Library not loaded: @rpath/tapku.framework/tapku
    2. Referenced from: /var/mobile/Containers/Bundle/Application/1D71AC05-9DC9-4310-B0CD-F6C2FA85F2AC/MagicRemoteControl.app/MagicRemoteControl
    3. Reason: image not found
    Das Framework wird aber erzeugt und liegt im gleichen Verzeichnis des Buildordners wie die eigentliche App. Genau wie beim Simulator. Laut Googlesuche kann es zu diesem Fehler kommen, wenn die Zertifikate nicht stimmen. Daher habe ich diese neu erzeugt und importiert. Ich habe auch schon den Buildordner gelöscht ein clean durchgeführt, usw. und weiß jetzt nicht mehr weiter.
    Eigentlich deutet ja alles auf einen falschen Pfad hin, aber welchen muss ich wo anpassen? Das Framework ist natürlich unter Build Phases - Link Binary with Libraries - eingebunden.

    Ich hoffe hier hat noch jemand die zündende Idee und kann mir den richtigen Tipp geben.

    Gruß Berthold
  • Der einfachste Weg ist, ein statisches Framework zu erzeugen und einzubinden. Dazu archivierst du die .o-Files mit ar(1), lässt ggf. ranlib(1) drüberlaufen und legst dieses Archiv unter dem Namen tapku in das Framework-Bundle. Dann kannst du dieses Framework einbinden, indem du es auf dein Projekt ziehst.

    Dynamische Frameworks müssen eine Code-Signatur haben und sollten im Ordner Frameworks im App-Bundle liegen. Die kann man ggf. über codesign(1) selber erzeugen. Das ist aber ein bisschen fummelig, und damit ist noch lange nicht sicher, ob Apple das dann so akzeptiert. Da ist es einfacher, ein dynamisches Framework anzulegen und da die Tapku-Sourcen reinzulegen.

    Außerdem gibt es da ja noch die Möglichkeit, die Lib über CocoaPods einzubinden.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    gritsch schrieb:

    macmoonshine schrieb:

    Da ist es einfacher, ein dynamisches Framework anzulegen und da die Tapku-Sourcen reinzulegen.
    du meinst statische ;)
    Nein, ich meine dynamische. Den Fall für statische Frameworks habe ich ja in dem Absatz darüber beschrieben. ;)
    ja, warum dann eine dynamische erstellen wenn es doch keine vorteile gegenüber einer statischen gibt? (mir wäre zumindest keiner bekannt).
  • gritsch schrieb:

    macmoonshine schrieb:

    gritsch schrieb:

    macmoonshine schrieb:

    Da ist es einfacher, ein dynamisches Framework anzulegen und da die Tapku-Sourcen reinzulegen.
    du meinst statische ;)
    Nein, ich meine dynamische. Den Fall für statische Frameworks habe ich ja in dem Absatz darüber beschrieben. ;)
    ja, warum dann eine dynamische erstellen wenn es doch keine vorteile gegenüber einer statischen gibt? (mir wäre zumindest keiner bekannt).
    Wenn er mehrere Binaries (App + Extensions) in seinem Bundle hat, hat ein dynamisches Framework schon Vorteile.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    gritsch schrieb:

    macmoonshine schrieb:

    gritsch schrieb:

    macmoonshine schrieb:

    Da ist es einfacher, ein dynamisches Framework anzulegen und da die Tapku-Sourcen reinzulegen.
    du meinst statische ;)
    Nein, ich meine dynamische. Den Fall für statische Frameworks habe ich ja in dem Absatz darüber beschrieben. ;)
    ja, warum dann eine dynamische erstellen wenn es doch keine vorteile gegenüber einer statischen gibt? (mir wäre zumindest keiner bekannt).
    Wenn er mehrere Binaries (App + Extensions) in seinem Bundle hat, hat ein dynamisches Framework schon Vorteile.
    aja, daran habe ich jetzt nicht gedacht (ist ja noch nicht sehr lange möglich diese konstellation).
    obwohl ein solches framework (wie hier) wohl selten von der app und der extension genutzt werden wird (bei einer statischen würde dann ja auch nur der verwendete code gelinkt und wäre vielleicht insgesamt sogar kleiner).
  • Erst mal vielen Dank für die schnellen Antworten. Auch ich denke das es an einer falschen Pfadeinstellung liegt.
    Aber was soll hier falsch sein?

    Capture 2.png

    Gibt es in den Buildeinstellungen einen Parameter der sich auf den Suchpfad auswirkt und warum gibt es einen Unterschied zwischen Simulator und Device?
    Notfalls werde ich die vorgeschlagene andere Form der Frameworkeinbindung in Betracht ziehen.

    Gruß Berthold