Xcode 10.0 GM - dyld: ленивая привязка символов не удалась: не удалось разрешить сбой символа ___cxa_guard_acquire. До этого все работало нормально - PullRequest
0 голосов
/ 14 сентября 2018

Я использовал какао-бобы для установки библиотеки TesseractOCR. Приложение отлично работает при запуске на устройствах, включая iOS12 устройства. Авария происходит только на iOS12 Simulator. Я также установил iOS 11.4 Simulator, и он отлично работает на этом. Я почесал голову за это некоторое время. Это крушение, которое я получаю.

dyld: lazy symbol binding failed: can't resolve symbol ___cxa_guard_acquire in /Users/IancuTudor/Library/Developer/CoreSimulator/Devices/ABE5EE31-47C8-4457-8F33-B4C265599147/data/Containers/Bundle/Application/40814EAD-8965-47F2-8036-3DE48A8143BF/Bookly.app/Frameworks/TesseractOCR.framework/TesseractOCR because dependent dylib #1 could not be loaded

dyld: can't resolve symbol ___cxa_guard_acquire in /Users/IancuTudor/Library/Developer/CoreSimulator/Devices/ABE5EE31-47C8-4457-8F33-B4C265599147/data/Containers/Bundle/Application/40814EAD-8965-47F2-8036-3DE48A8143BF/Bookly.app/Frameworks/TesseractOCR.framework/TesseractOCR because dependent dylib #1 could not be loaded
(lldb) 

Ответы [ 4 ]

0 голосов
/ 23 января 2019

Я использую этот метод, но мне выдается ошибка с файлом подфайла «pod 'TesseractOCRiOS',: git => 'git: //github.com/parallaxe/Tesseract-OCR-iOS.git',: branch => 'macos-support' ”

0 голосов
/ 16 октября 2018

Мне пришлось скопировать файлы dylib, а не файлы tdb, чтобы запустить симулятор.

Предварительные условия : у вас установлено Xcode 9.4 с точно таким именем,При необходимости измените FROM и даже TO ниже.

Это мои терминальные команды для копирования файлов dylib:

FROM="Xcode 9.4"
TO="Xcode"
set -x; for f in /Applications/"$FROM".app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libstdc++*; do : sudo cp -p "$f" "${f/$FROM/$TO}"; done; set +x

ВНИМАНИЕ!Вы должны быть очень осторожны, так как в этом участвует sudo.ВЫ ДОВЕРЯЕТЕ МНЕ?

Скрипт выполнит пробный прогон, если сразу скопировать мою команду.Удалите : перед sudo, чтобы фактически изменить вашу файловую систему.set -x включит ведение журнала всех выполненных команд.

Не относится к вопросу, но если вы используете CocoaPods, вам, вероятно, потребуется также применить следующий патч в какой-то момент: https://gist.github.com/gali8/7d090865a904a16caf5a7a3116c3c3ab

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

В качестве более чистого подхода вы теперь можете заменить в своем файле pod фреймворк следующим образом:

pod 'TesseractOCRiOS', :git => 'git://github.com/parallaxe/Tesseract-OCR-iOS.git', :branch => 'macos-support'

В эту ветку была добавлена ​​поддержка для iOS 12. Надеюсь, это поможет кому-то, как и мне:)

0 голосов
/ 24 сентября 2018
libstdc++ is removed in iOS 12 simulator but it remains in the iOS 12.0 (device) .

Таким образом, в качестве обходного пути вы можете скопировать библиотеку (libstdc ++. 6.0.9.tbd) из Xcode 9.4 в Xcode 10. Но это не долгосрочное решение. Вам следует связаться с поставщиком этих библиотек и запросить версии, созданные с использованием libc ++.

ИЛИ Вы можете добавить следующую команду в файл pod, если вы используете Cocoapods в качестве менеджера зависимостей:

post_install do |installer|
installer.pods_project.targets.each do |target|
    if target.name == 'TesseractOCRiOS' 
        target.build_configurations.each do |config|
            config.build_settings['ENABLE_BITCODE'] = 'NO'
        end
        header_phase = target.build_phases().select do |phase|
            phase.is_a? Xcodeproj::Project::PBXHeadersBuildPhase
        end.first

        duplicated_header_files = header_phase.files.select do |file|
            file.display_name == 'config_auto.h'
        end

        duplicated_header_files.each do |file|
            header_phase.remove_build_file file
        end
    end
end

конец

...