#ios #webrtc #bitcode #webrtc-ios
Вопрос:
Я пытаюсь перестроить платформу iOS WebRTC с включенным битовым кодом, но это не работает, это приводит к ошибкам. И сообщения об ошибках являются
clang : ошибка: неизвестный аргумент: ‘-файл-компиляция-dir=.’
clang : ошибка: -gdwarf-aranges не поддерживается с-fembed-битовым кодом
Если я создам его без битового кода, включите true только тогда, когда он работает. Может ли кто-нибудь иметь представление, почему у меня возникла эта проблема? Моя версия Xcode 12.5.1
Комментарии:
1. Та же проблема. не повезло мне
2. @У Джихана возникла та же проблема, вы нашли для нее решение?
Ответ №1:
Ошибка возникает из-за старой версии clang в Xcode. Я выполнил скрипт с заданными аргументами:
build_ios_libs.py --extra-gn-args 'use_xcode_clang=false enable_dsyms=true' --bitcode --arch device:arm64 simulator:x64
Внутри WebRTC dist есть новая версия пакета LLVM (clang), которая создаст правильную структуру!
Комментарии:
1. симулятор arm64 выходит из строя. Это необходимо для MacBook на M1. Эта ошибка не была устранена
2. Используя эти аргументы, фреймворк успешно создается для симулятора и устройств, но когда я пытаюсь добавить в демонстрационный проект, в котором включен бит-код, возникает ошибка для бит-кода.
3. @MrugeshTank, если вы используете crashlitics firebase. Вы можете отключить битовый код и загружать файлы dSYMs вручную. Это работает на меня firebase.google.com/docs/crashlytics/…
4. Платформа WebRTC использует llvm14, но xcode использует только llvm12. Они несовместимы друг с другом, по этой причине фреймворк не построен. Даже новая версия xCode 13 beta 5 не поддерживает создание платформы WebRTC, поскольку использует llvm 13 🙁
5. Итак, нет возможности создать платформу с поддержкой битового кода?
Ответ №2:
Я использовал llvm12 для создания webrtc на arm64 linux и сначала столкнулся с той же ошибкой clang : error: unknown argument: '-ffile-compilation-dir=.'
.
В src/build/config/compiler/BUILD.gn
, есть некоторые настройки, как показано ниже:
if (is_nacl) {
# TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
cflags = [
"-Xclang",
"-ffile-compilation-dir",
"-Xclang",
".",
]
} else {
# -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
# and -fcoverage-compilation-dir=.
cflags = [ "-ffile-compilation-dir=." ]
}
Я заменяю все -ffile-compilation-dir
, что в fdebug-compilation-dir
то время работало нормально!
Комментарии:
1. Это сработало для меня. Интересно, собирается ли команда WebRTC это исправить
Ответ №3:
Похоже, что это было рассмотрено в хроме верхнего дерева. Согласно этому запросу на вытягивание, use_xcode_clang
удаляется, потому что лязг верхнего дерева поддерживает -fembed-bitcode
: https://github.com/chromium/chromium/commit/6edcf847d80f13740e1a26a86d3b95a0bb9fbcad