dsymutil и статические библиотеки - "Невозможно открыть объектный файл"
Я импортирую стороннюю статическую библиотеку в свое приложение для iOS (используя Xcode 5.1.1). При создании проекта я получаю сотни предупреждений следующего типа:
warning: (i386) /Users/USERNAME/Desktop/Development/SDKNAME/AWSS3.framework/AWSS3(S3ListObjectsResult.o) unable to open object file
Эти предупреждения вызваны dsymutil, когда он пытается сгенерировать файл DSYM. По какой-то причине dsymutil пытается найти объектные файлы для кода, содержащегося в платформе, по локальному пути разработчика, который создал платформу.
Какие параметры сборки в статической библиотеке могут вызвать такую проблему?
Я нашел несколько ответов о переполнении стека и других платформах: что означают эти предупреждения Dsymutil в XCode 4.5? но ни один из них действительно не объясняет основную проблему.
Я довольно плохо знаком с Mach-O/DSYM, поэтому дайте мне знать, если вам нужна другая информация, чтобы понять, в чем проблема.
2 ответа
Я также столкнулся с теми же предупреждениями Дсимутил. Я избавился от этих предупреждений, изменив "Формат отладочной информации" в настройке сборки
В вашем проекте xcode> Настройки сборки> Под опцией сборки> Измените формат информации отладки на 'DWARF'.
Я не уверен, что это на самом деле скрывает предупреждения или полностью избавиться.
Как говорится в одном из ответов в сообщении, на которое вы ссылались, это проблема вашей библиотеки, которую вы не можете контролировать. Ваш компоновщик видит объекты в библиотеке, которые не могут быть открыты. У меня та же проблема с другим фреймворком, и я жду от продавца, чтобы отправить мне обновленную версию, скомпилированную с более свежей сборкой llvm. Я предлагаю вам сделать то же самое и связаться с автором библиотеки.
РЕДАКТИРОВАТЬ 26/26: Только что получил подтверждение от автора библиотеки. Эти предупреждения появляются из-за неправильных настроек разметки символов для сборок релизов в проекте.