Слабая связь фреймворка со статической библиотекой - PullRequest
0 голосов
/ 23 декабря 2018

Проблема

Мой проект устроен так:

  • Приложение
    • Framework
      • Статическая библиотека (общий код)

Статическая библиотека будет запускаться в зависимости от каркаса GoogleWebRTC.К сожалению, эта зависимость может быть построена только как платформа через WebRTC.org .Они убрали возможность создания статической библиотеки по причинам обслуживания.

Вопрос

Возможно ли, чтобы статическая библиотека слабо связывалась с каркасом GoogleWebRTC?

  • Приложение
    • Framework
      • Статическая библиотека ("CommonCode")
    • GoogleWebRTC

Вот некоторые решения, которые приходят на ум:

  • Включение заголовочных файлов WebRTC в статическую библиотеку и сборка с настраиваемой картой модулей, чтобы include "<WebRTC/WebRTC.h> работал.Затем встраивание и связывание библиотеки в целевом приложении
  • Каким-то образом преобразование GoogleWebRTC.framework в статическую библиотеку и встраивание заголовков и двоичного файла в статическую библиотеку "CommonCode" lib
  • I ... можетне помню другое решение, которое я имел в виду.Я обновлю это, когда вспомню.

1 Ответ

0 голосов
/ 23 декабря 2018

К сожалению, решение Google удалить статическую цель.

, если это поможет, вы можете использовать Mesibo Webrtc Framework, который представляет собой статическую структуру сборку с использованием модифицированных файлов ниндзя .Единственным недостатком является то, что он не так регулярно обновляется, как сборка Google (обычно отстает от месячной синхронизации).

https://github.com/mesibo/mesibowebrtcframework

Все, что вам нужно сделать, это скопировать WebRTC.framework/WebRTC из Mesibo версии , которая представляет собой не что иное, как статическую библиотеку, извлечь с помощью lipo -extract и перепаковатьэто с вашей собственной библиотекой, используя lipo -create.

Ниже приведена разница, которую вы увидите в Mesibo и Google Версия платформы WebRTC

Версия Mesibo

$ file WebRTC.framework/WebRTC
WebRTC.framework/WebRTC: Mach-O universal binary with 4 architectures: [i386:current ar 
archive random library] [arm64]
WebRTC.framework/WebRTC (for architecture i386):    current ar archive random library
WebRTC.framework/WebRTC (for architecture armv7):   current ar archive random library
WebRTC.framework/WebRTC (for architecture x86_64):  current ar archive random library
WebRTC.framework/WebRTC (for architecture arm64):   current ar archive random library

И GoogleВерсия

$ file WebRTC.framework/WebRTC
WebRTC.framework/WebRTC: Mach-O universal binary with 4 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64]
WebRTC.framework/WebRTC (for architecture x86_64):  Mach-O 64-bit dynamically linked shared library x86_64
WebRTC.framework/WebRTC (for architecture i386):    Mach-O dynamically linked shared library i386
WebRTC.framework/WebRTC (for architecture armv7):   Mach-O dynamically linked shared library arm_v7
WebRTC.framework/WebRTC (for architecture arm64):   Mach-O 64-bit dynamically linked shared library arm64

Дайте мне знать, если вам нужно больше информации!

...