Вот справочная страница для bitcode_strip
, чтобы удалить или оставить сегмент битового кода в файле Mach-O
bitcode_strip input [ -r | -m | -l ] -o output
Что такое файл Mach-O ?
Mach-O - это формат файла для исполняемых файлов, объектного кода, общих библиотек, динамически загружаемого кода,и дампы ядра
Mach-O также находится там, где хранятся исполняемые файлы iOS и OS X, а также битовый код.
Вот справочная страница для xcrun
запускать или находить инструменты разработки
xcrun [-sdk SDK] -find <tool_name>
Насколько я понимаю после прочтения ссылок, которые вы прикрепили, битовый код является посредникомшаг в процессе компиляции.Если вы отправите свой исходный код в Apple самостоятельно, в конечном итоге Apple будет иметь разные версии объектного кода в каждом приложении, соответствующие количеству разных типов процессоров, на которых могут работать OS X и iOS (более 4 разных типов).Теперь Apple может скомпилировать ваш исходный код в большинстве случаев в минимальную форму, называемую bitcode, в которой нет багажа, связанного с тем, на каком процессоре он будет работать.
Большая часть пути: это делает лексер, парсер, семантический анализ и части генерации кода компилятора, специфичные для вашего исходного кода.
Остальная часть пути: специфичные для машины вещи, такие как оптимизация, сборка и компоновка, которые отличаются на iPhone по сравнению св macbook, например
Если вы отправите битовый код в магазин приложений, гораздо проще завершить его компиляцию в разные окончательные формы для разных типов ЦП.Похоже, ваша проблема заключалась в том, что битовый код в вашем проекте оказался довольно большим файлом (это произошло из-за того, что Twilio добавил поддержку битового кода).«Удаление» битового кода в основном удаляло битовый код из вашего проекта (удаляет сегмент битового кода из вашего файла Mach-O), позволяя ему соответствовать вашим ограничениям по размеру.Недостатком является то, что у яблока не будет битового кода, у него будет только двоичный файл (и он не сможет перекомпилировать).
Позволяет разбить код, который вы связали на github:
source 'https://github.com/twilio/cocoapod-specs'
target 'ObjCVideoQuickstart' do
pod 'TwilioVideo', '1.0.0-beta14'
end
post_install do |installer|
# Find bitcode_strip
bitcode_strip_path = `xcrun -sdk iphoneos --find bitcode_strip`.chop!
# Find path to TwilioVideo dependency
path = Dir.pwd
framework_path = "#{path}/Pods/TwilioVideo/TwilioVideo.framework/TwilioVideo"
# Strip Bitcode sections from the framework
strip_command = "#{bitcode_strip_path} #{framework_path} -m -o #{framework_path}"
puts "About to strip: #{strip_command}"
system(strip_command)
end
1.
bitcode_strip_path = `xcrun -sdk iphoneos --find bitcode_strip`.chop!
Находит инструмент bitcode_strip
в вашей установке XCode (см. Ссылку на xcrun на странице выше)
2.
framework_path = "#{path}/Pods/TwilioVideo/TwilioVideo.framework/TwilioVideo"
Находит каркас, из которого вы хотите удалить битовый код
3.
strip_command = "#{bitcode_strip_path} #{framework_path} -m -o #{framework_path}"
puts "About to strip: #{strip_command}"
system(strip_command)
Создает и выполняет команду для фактического удаления секции битового кода из исполняемого файла Mach-O.-m
указано для удаления (см. Связанную страницу man для bitcode_strip)
обратите внимание: при использовании решения, предоставленного этим сотрудником twilio (или других подобных решений), может не бытьдоказательство того, что битовый код может стать обязательным в магазине приложений
Для получения дополнительной информации обратитесь к разделу "Утончение приложений"