dlopen возвращает ноль на реальном устройстве - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь загрузить библиотеку динамически в приложении для iOS.

Я следил за этот ответ (за исключением установки каталога установки).На симуляторе это работает, но не на реальном устройстве (то же самое касается бинарного файла из .framework).

В приложении библиотека и все битовые коды зависимостей отключены, целевые версии iOS равны (и я перекомпилирую все зависимости для нужного целевого устройства).Файл .dylib загружен правильно (открывается с помощью fopen ()).Также я сделал кодовое обозначение:

codesign --sign "iPhone Developer: ... ()"  --force --verbose=4 <path to .dylib>

, но без эффекта.

(вызов dlopen:)

let fHandle = filePath.withUnsafeFileSystemRepresentation({dlopen($0, RTLD_LAZY)})

dlerror выдает: "... песочница файловой системы заблокированаmmap () ... "filePath - это каталог документов:

let documentsUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL!
let filePath = documentsUrl.appendingPathComponent(filename + ".dylib")
...