Код запускается в симуляторе, dyld символ не найден, ошибка, возникающая при запуске на устройстве (Xcode 6 beta)
Я пытаюсь скомпилировать некоторый код, который использует фреймворк CFNetwork, и он отлично работает в симуляторе (с целью развертывания iOS 7.1), однако, когда я пытаюсь запустить его на своем iPhone 5 с iOS 7.1, он выдает следующую ошибку:
dyld: Символ не найден: _NSURLAuthenticationMethodClientCertificate Ссылка на:/var/mobile/Applications/...... Ожидается в:/System/Library/Frameworks/CFNetwork.framework/CFNetwork in/var/mobile/Applications/...
Что касается информации о моем приложении, она написана в Swift, и я импортирую CFNetwork через Parse, который я импортирую в свой код Swift через заголовок моста objective-C.
Я могу разрешить эту ошибку, как предложили другие, сделав фреймворк CFNetwork факультативным, а не обязательным. Однако для работы моего приложения требуется фреймворк CFNetwork (я использую Parse в качестве бэкэнд, и он не будет обмениваться без него).
Как таковой, мне любопытно, если кто-либо еще смог решить эту проблему, используя метод, отличный от приведенного выше.
Ответы
Ответ 1
Я получил эту ошибку, когда я перемещал приложение, которое я сделал с одного компьютера на другой. Если вы использовали CMake или что-то подобное для генерации файлов проекта, у меня есть решение: в CMake вместо выбора XCode в качестве генератора я переключился на Unix Make файлы. Тогда все, что мне нужно было сделать, это перейти в терминал к папке, где были созданы файлы make, и введите:
$ make
$ sudo make install
Это создало приложение со всеми фреймами и динамическими библиотеками, правильно упакованными в папку /usr/local/bin.
Я знаю, что эта ошибка также может быть исправлена в XCode, но я потратил много времени на фиджинг с настройкой, не выясняя ее. Это мое решение для упаковки приложения; однако, я все еще делаю все свое редактирование в XCode.