#xcode #bitcode
Вопрос:
У меня есть модуль в моем проекте под названием GoogleWebRTC
, и, по-видимому, он не Bitcode
включен для сборки.
Хотя я отключаю Bitcode
его в своем Podfile
, который можно увидеть ниже, он не позволяет мне архивировать проект. Единственное, что работает, — это отключить Bitcode
в моем основном проекте и цели.
#bitcode enable
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# set valid architecture
config.build_settings['VALID_ARCHS'] = 'arm64 armv7 armv7s i386 x86_64'
# build active architecture only (Debug build all)
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
if target.name == "GoogleWebRTC"
config.build_settings['ENABLE_BITCODE'] = 'NO'
else
config.build_settings['ENABLE_BITCODE'] = 'YES'
if config.name == 'Release' || config.name == 'Release (Preprod)'
config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode'
else # Debug
config.build_settings['BITCODE_GENERATION_MODE'] = 'marker'
end
cflags = config.build_settings['OTHER_CFLAGS'] || ['$(inherited)']
if config.name == 'Release' || config.name == 'Release (Preprod)'
cflags << '-fembed-bitcode'
else # Debug
cflags << '-fembed-bitcode-marker'
end
config.build_settings['OTHER_CFLAGS'] = cflags
end
end
end
end
Проблема не возникает, когда я запускаю или создаю ее в отладке, но в выпуске она не работает и выбрасывает
'/Users/**/Projects/**/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file '/Users/**/Projects/**/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC' for architecture arm64
Я не знаю, насколько полезно Bitcode
включить для проекта, но, насколько я понимаю, изначально для проекта это включено. Я попробовал несколько вариантов настроек сборки как проекта, так и модуля, но единственное, что работает, — это отключение Bitcode
для основного проекта и цели.
Я нашел некоторые ответы на другие темы, в которых говорится о создании библиотеки вручную с включенным битовым кодом, но все ссылки, на которые ссылаются, не работают. Возможно, уже существует альтернативный модуль, в котором уже включен встроенный биткод. Я открыт для любого рода предложений, кроме удаления GoogleWebRTC
.
Комментарии:
1. «Единственное, что работает, — это отключить битовый код», так в чем же проблема? Просто сделай это.
2. Что ж, я это сделал. Но я не знаю, на что на самом деле влияет включение битового кода, и я немного обеспокоен тем, что его отключение будет иметь какие-то последствия в будущем.
3. Что ж, тогда выясните, что такое битовый код, чтобы вы могли принять обоснованное решение. Лично я никогда не включаю битовый код и думаю, что это хуже, чем глупо, но это всего лишь мнение.