Ich bringe das nochmal zur Sprache...
Xcode 12.3+ hat manuell verlinkte Fat Libs, die über Lipo erzeugt wurden, zugunsten von XCFrameworks veraltet. Grundsätzlich M1 Macs teilen jetzt die gleichen arm64 Bogen als iDevices und Xcode ist nicht in der Lage zu sagen, welche Bogen innerhalb der Fett Lib zu verwenden, so wird nicht die arm64 Scheibe zu verknüpfen, wenn in den Simulator ausgeführt. Wenn Sie nur auf dem Gerät über Xcode auf einem M1 Mac laufen, ist es hace funktionieren, aber es ist nicht gerade ideal, dass der Simulator nicht als Option zur Verfügung steht.
Wie in meinem Kommentar zur Antwort von @mikewoz erwähnt, habe ich das Fat-Lib-Skript aktualisiert und es viele Jahre lang verwendet. Ich habe versucht, diesen Ansatz zu verwenden und ein XCFramework über
xcodebuild -create-xcframework -library liblo-ios.a -library liblo-sim.a -output liblo.xcframework
...aber ich konnte das nicht zum Laufen bringen.
Letztendlich habe ich mich dafür entschieden, die liblo-Quellen selbst über ein manuell erstelltes liblo static lib Xcode-Projekt zu erstellen. Dies funktioniert gut und erfordert nur die Einstellung der erforderlichen Defines, entweder über config.h generiert über configure
oder setzen Sie sie manuell im Xcode-Projekt. Bislang habe ich mich für die Verwendung von configure
und setzen Sie die folgenden Definitionen: -DHAVE_CONFIG_H -DAC_APPLE_UNIVERSAL_BUILD -Qunused-arguments -fno-common -DPIC
. En AC_APPLE_UNIVERSAL_BUILD
define wird verwendet, um eine Endinaness-Prüfung zur Kompilierzeit in config.h zu aktivieren. Allerdings habe ich nur auf meinem M1 MacBook Pro 13 getestet, so dass ich Hoffnung dieser Ansatz funktioniert auf Intel-Maschinen.
Falls jemand das funktionierende liblo.xcodeproj benötigt, kann er es hier finden: https://github.com/danomatika/PdParty/tree/master/libs/liblo
Die Schritte zur Automatisierung des Herunterladens und Konfigurierens der liblo-Quellen befinden sich im Makefile der Hauptlibs: https://github.com/danomatika/PdParty/blob/master/libs/Makefile
1 Stimmen
Ich habe vielleicht eine Lösung gefunden. I angepasst das Skript von lambdajive und es erzeugte liblo.a, die ich manuell in mein xcode-Projektverzeichnis kopierte und dem Projekt hinzufügte. Scheint zu funktionieren! Ich würde gerne wissen, warum, oder wenn es eine bessere Lösung gibt!