Zbar SDK не работает в iOS6
Я использовал ZBar для сканирования в iOS5, и он работал хорошо.
Теперь, после обновления до iOS6, он не работает. Он показывает следующую ошибку.
ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/mac4/Desktop/my desktop/My app/MyApp name 20:09:12 /MyApp name/ZBarSDK/libzbar.a for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Что не так в моей стороне?
Ответы
Ответ 1
Недавно я столкнулся с той же проблемой. Проблема заключается в том, что ZBar SDK не готов для архитектуры armv7s.
Я решил проблему таким образом:
- Перейдите на домашнюю страницу ZBar и перейдите к ртутному репозиторию (прямая ссылка)
- Загрузите zbar-репозиторий как zip.
- Разархивируйте файл и перейдите к подпапке под названием "iphone".
- Откройте проект XCode.
- Удалите папку "Примеры" (папка вызвала ошибку сборки на моей машине).
- Нажмите "CMD + B" и создайте источник.
- Найдите новый файл libzbar.a. (Пользователь/Library/Developer/Xcode/DerivedData/Zbar...)
- Замените старый файл libzbar.a в вашем проекте на новый.
- Хит "CMD + R", и вам хорошо идти.
Ответ 2
В Xcode перейдите к настройкам вашей цели,
изменить 'Valid Architectures
'
от
armv7,armv7s
to
armv7
Это изменение означает, что ваше приложение не будет использовать возможности оптимизации нового процессора iPhone5, но вам не придется ждать, пока сторонние библиотеки обновятся или будут работать с шестнадцатеричным редактором.
Ответ 3
Учебник по загрузке/повторной сборке источников hg отлично, но вам не нужно все это делать.
Просто перейдите к http://sourceforge.net/projects/zbar/files/iPhoneSDK/beta/ и загрузите ZBarSDK-1.3.1.dmg, и все будет работать из коробки для последних архитектуры (в моем случае armv7, armv7s).
Update:
Некоторые из вас сообщили о проблемах с ZBarSDK на XCode 5, iOS 7 или архитектуре arm64... ну, я вернулся к этому проекту сегодня и испытал подобные проблемы и обнаружил, что есть библиотека ZBarSDK, которая скомпилирована для работы с iOS 7 at: http://www.nerdvision.net/app-development/ios/zbar-sdk. Я просто заменил старые файлы новыми и скомпилировал мой проект. Обратите внимание: Архитектуры в моих настройках сборки проекта установлены на amrv7, arm64 ($ ARCHS_STANDARD), Base SDK установлен на iOS 8.0, и у меня установлен флаг Build Active Architectures Only. Да.
В SO есть вопрос: zbar SDK не работает для armv7s (iPad 4 iOS 7)
Благодаря @cdescours для подсказки!
Ответ 4
Я нашел это подробное решение, и это сработало для меня.
Ответ 5
У меня такая же проблема, но я просто добавил armv6
и armv7
, тогда она работает для iOS6. Просто вставьте armv6
.
Ответ 6
ваша двоичная библиотека не имеет кода для armv7s. Поэтому вы должны перекомпилировать его для текущих архитекторов.
Ответ 7
Перекомпилируйте исходный код, загрузите исходный код zbar и скомпилируйте его в новый проект. Это просто.
Ответ 8
Клонировать хранилище Mercurial и строить с помощью Xcode. Это очень легко. Здесь ссылка на репозиторий:
http://zbar.hg.sourceforge.net/hgweb/zbar/iphone/summary
Ответ 9
Пришел сюда с той же проблемой после загрузки кода Rutorial, предоставленного в его блоге. Очень полезный пост, но самый полезный ответ здесь был опубликован RacZo 3/29. Я только что загрузил исходное изображение ZBarSDK-1.3.1.dmg, удалил ZBarSDK из моего проекта и заменил его оригиналом. Готово.
Ответ 10
Я изучаю разработку IOS. После нескольких дней рытья,
Ниже приведена tutorial для установки ZBar SDK.
1, принятый ответ правильный, но с некоторыми ограничениями. (пробовал, работает!)
2, альтернативное решение здесь. (пробовал, работает!)
3. Лучше всего построить все разные архитектуры, а затем связать их с помощью lipo: Отличное решение (попробовали, блестящие!)
Некоторые показания для понимания этих архитектур:
http://wanderingcoder.net/2010/07/19/ought-arm/
http://wanderingcoder.net/2011/09/25/compiling-armv7/
Ответ 11
Добавить скомпилированную сборку для armv7s для zbar SDK --libzbar.a файл
подготовлен по этой ссылке:
http://www.federicocappelli.net/2012/10/05/zbar-library-for-iphone-5-armv7s/
Действительные архитектуры:
ARMv7
armv7s