Подтвердить что ты не робот

Код запускается в симуляторе, 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 в качестве бэкэнд, и он не будет обмениваться без него).

Как таковой, мне любопытно, если кто-либо еще смог решить эту проблему, используя метод, отличный от приведенного выше.

4b9b3361

Ответ 1

Я получил эту ошибку, когда я перемещал приложение, которое я сделал с одного компьютера на другой. Если вы использовали CMake или что-то подобное для генерации файлов проекта, у меня есть решение: в CMake вместо выбора XCode в качестве генератора я переключился на Unix Make файлы. Тогда все, что мне нужно было сделать, это перейти в терминал к папке, где были созданы файлы make, и введите:

$ make
$ sudo make install

Это создало приложение со всеми фреймами и динамическими библиотеками, правильно упакованными в папку /usr/local/bin.

Я знаю, что эта ошибка также может быть исправлена ​​в XCode, но я потратил много времени на фиджинг с настройкой, не выясняя ее. Это мое решение для упаковки приложения; однако, я все еще делаю все свое редактирование в XCode.