Ошибка компоновщика для эхопринта в iOS

Я использую API эхопринта для поиска песен за последние 3 месяца. Но вдруг он начал выдавать мне ошибки ниже. Я уже столкнулся со многими проблемами при добавлении этого API в свой проект, и теперь он начинает выдавать мне ошибку компоновщика. Раньше у меня это работало. Такая ошибка:

"Codegen::Codegen(float const*, unsigned int, int)", на который ссылается: _GetPCMFromFile в File.o

clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v, чтобы увидеть вызов)

ld: символ(ы) не найден(ы) для архитектуры i386

ld: предупреждение: не найден каталог для параметра '-LL/Users/prajaktakulkarni/Downloads/echoprint-codegen-4.12 2/src/echoprint-codegen-ios/build/Release-iphoneos' ld: предупреждение: игнорирование файла /Users/prajaktakulkarni /Documents/Instajam/libechoprint-codegen-ios.a, отсутствует необходимая архитектура i386 в файле /Users/prajaktakulkarni/Documents/Instajam/libechoprint-codegen-ios.a (2 фрагмента) Неопределенные символы для архитектуры i386: «Codegen::Codegen (float const*, unsigned int, int)", ссылка из: _GetPCMFromFile в File.old: символ(ы) не найден(ы) для архитектуры i386 clang: ошибка: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v, чтобы увидеть вызов)


person Hrishikesh Pol    schedule 25.03.2013    source источник
comment
Похоже, вы пытаетесь запустить его на симуляторе. Будет ли это работать, если вы запустите его на устройстве?   -  person James Zaghini    schedule 25.03.2013
comment
Ой!!!! Спасибо, Джеймс, что вспомнил об этом.... Теперь это работает для меня :)   -  person Hrishikesh Pol    schedule 25.03.2013


Ответы (2)


В сообщении об ошибке говорится, что статическая библиотека libechoprint-codegen-ios.a не была создана для архитектуры i386, которая используется симулятором.

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

lipo -info ~/Documents/Instajam/libechoprint-codegen-ios.a

Скорее всего, он скажет вам, что он создан для armv7 и armv7s. Это будет поддерживать все устройства iOS, кроме самых старых на момент написания.

Вы можете собрать libechoprint-codegen-ios.a для запуска на симуляторе. Вот хороший пост о stackoverflow, если вам это интересно: Создайте объемную статическую библиотеку (устройство + симулятор) с помощью Xcode и SDK 4+

Самый простой вариант — просто подключить телефон и не беспокоиться о создании толстой статической библиотеки. :D

person James Zaghini    schedule 25.03.2013
comment
После борьбы со статической библиотекой я заплатил Apple 99 долларов за запуск на своем iPod Touch, и теперь, когда я пытаюсь запустить его, я получаю The identity 'iPhone Developer: Brian Whitman (XXXXXXXXX)' doesn't match any valid, non-expired certificate/private key pair in your keychains. Этот парень, Брайан, является соучредителем ECHOnest или чего-то подобного... что я могу делать не так? - person Aviel Gross; 10.07.2013
comment
@AvielGross, вы должны выполнить следующие шаги: developer.apple.com/library/ios/#documentation/ToolsLanguages/ - person James Zaghini; 10.07.2013
comment
спасибо, это помогло, теперь я застрял с какой-то другой ошибкой при попытке построить: CodeSign error: The entitlements file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Entitlements.plist' is missing и после этого: Command /bin/sh failed with exit code 65. Любые идеи? - person Aviel Gross; 11.07.2013

Недавно проблема была устранена для меня с помощью libz.1.1.3.tbd вместо libz.tbd, и, конечно, эта ссылка полезна Отсутствует платформа Echoprint iOS

person magorik    schedule 11.04.2018