Он дает ошибки при использовании библиотеки Swift Static с проектом Objective-C
Мне нужно сделать быструю статическую библиотеку для моего требования. Я создал быструю статическую библиотеку, которая использует быстрый и Obj-c-код. Я включил файлы Obj-c через файл моста. Я могу скомпилировать быструю статическую библиотеку без ошибок и получить файл libMySwift.a. Я использую Xcode9.3 с Swift4 для компиляции библиотеки.
Я включил libMySwift.a в проект obj-c, а также включил obj-c совместимый заголовок для доступа к моей библиотеке в проекте. Когда я пытаюсь скомпилировать проект, он дает предупреждение ниже и более 200 ошибок.
Auto-Linking library not found for -lswiftSwiftOnoneSupport
Auto-Linking library not found for -lswiftCore
Auto-Linking library not found for -lswiftQuartzCore
Auto-Linking library not found for -lswiftCoreImage
Auto-Linking library not found for -lswiftCoreGraphics
Auto-Linking library not found for -lswiftObjectiveC
Auto-Linking library not found for -lswiftDispatch
Auto-Linking library not found for -lswiftMetal
Auto-Linking library not found for -lswiftFoundation
Auto-Linking library not found for -lswiftUIKit
Auto-Linking library not found for -lswiftDarwin
Auto-Linking library not found for -lswiftCoreFoundation
Пожалуйста, дайте мне знать, если мне не хватает каких-либо шагов или вам нужно что-то добавить.
Ответы
Ответ 1
У меня такая же ошибка в моем демо-проекте, когда добавлен первый файл Swift в мой блок, составленный как статическая библиотека. Для меня решение было простым - просто добавили пустой файл Swift в мой демонстрационный проект, который ранее был в Objective-C. Это позволило решить все ошибки компоновщика.
Ответ 2
Обновление ответа Алекса:
В моем случае это был проект React-Native после добавления библиотеки Swift Pods. Может быть, только шаг 2 может работать:
- Добавление нового файла Swift и заголовка Brigde:
1) File -> New -> File
![<code>File -> New -> File</code>]()
2) Выберите Swift File
![Select <code>Swift File</code>]()
3) Подтвердите Create Bridging Header
![enter image description here]()
- Перейдите к
Build Settings
и установите Always Embed Swift Standard Libraries
на YES
![Always Embed Swift Standard Libraries]()
Ответ 3
Этот ответ сработал для меня: добавьте $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)
к путям поиска в библиотеке.