35

我需要为我的要求制作 swift 静态库。我制作了使用 swift 和 Obj-c 代码的 swift 静态库。我已经通过桥文件包含了 Obj-c 文件。我能够毫无错误地编译 swift 静态库并获得 libMySwift.a 文件。我使用 Xcode9.3 和 Swift4 来编译库。

我在 obj-c 项目中包含了 libMySwift.a,还包含了 obj-c 兼容的头文件来访问我在项目中的 lib。当我尝试编译项目时,它会给出以下警告和 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

如果我遗漏任何步骤或需要添加任何内容,请告诉我。

4

6 回答 6

68

在我的 pod 中添加第一个 Swift 文件并编译为静态库时,我的演示项目中出现了同样的错误。对我来说,解决方案很简单——只需将空的 Swift 文件添加到我以前仅在 Objective-C 中的演示项目中。这解决了所有链接器错误。

于 2018-05-23T18:39:55.093 回答
68

亚历克斯回答的更新:

在我的例子中,它是添加 Swift Pods 库后的 React-Native 项目。也许只有第 2 步可以工作:

  1. 添加一个新的 Swift 文件和一个 Brigde 头文件:

1)File -> New -> File <code>文件 -> 新建 -> 文件</code>

2) 选择Swift File 选择 <code>Swift 文件</code>

3) 确认Create Bridging Header 在此处输入图像描述

  1. 转到Build Settings并设置Always Embed Swift Standard LibrariesYES 始终嵌入 Swift 标准库
于 2019-05-17T13:06:16.267 回答
0

如果创建空的“Swift File”错误

这个方法可能有用,可以试试:https ://blog.cpming.top/p/react-native-0-62-undefined-symbol

于 2020-10-21T07:35:57.367 回答
0
  1. 右键单击您的项目名称并选择新文件
  2. 创建一个名为 File.Swift 的空“Swift 文件”
  3. 它会提示创建一个桥头文件然后点击创建
于 2020-05-06T04:24:40.213 回答
0

这个答案对我有用:添加$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)到库搜索路径。

于 2019-07-07T05:59:40.130 回答
0

我只是按照 AlVelig 的步骤操作,但仍然无法构建应用程序,经过几个小时后它终于对我有用:在构建,设置 -> 仅构建活动架构 -> 也为发布选择是(它是否)

仅构建活动架构:

在此处输入图像描述

于 2021-02-15T17:36:22.240 回答