我在Swift中有一个静态库,我想从另一个Swift项目访问此库类。库中的类无法正确引用。
我的静态库StaticLib
包含层次结构,
静态库项目-层次结构
StaticLib (project)
StaticLib
StaticLib.swift
Products
libStaticLib.a
静态库项目-StaticLib.swift
public class StaticLib {
public class func test(string: String) {
Printer().printMe(string: string)
}
}
class Printer {
func printMe(string: String){
print("This is test tring: \(string)")
}
}
主机应用-AppDelegate.swift
import StaticLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
StaticLib.test("How do you do?") // error
return true
}
}
我完成的步骤-
StaticLib
(在Swift中)>完成 public class StaticLib {
public class func test(string: String) {
Printer().printMe(string: string)
}
}
class Printer {
func printMe(string: String){
print("This is test tring: \(string)")
}
}
StaticLib
模式,构建> OK libStaticLib.a
复制到名为HostApp/Libs/
的新文件夹libStaticLib.a
已由Xcode Intelligence添加import StaticLib
StaticLib.test("How do you do?")
编译错误:
使用未解析的标识符“StaticLib”
如何解决此问题?我需要在库中创建任何头文件吗?
注意:我已经成功嵌入了
libStaticLib.a
,它存在于Host apps的General -> Frameworks, Libraries and Embedded contents
选项卡中。 最佳答案
我已经通过了您的步骤,所有工作都已完成,至少在Xcode 11.3.1 / iOS 13.3中有效。唯一的事情...似乎...请参阅评论
import StaticLib // << looks like you've forgot this one !!!
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
StaticLib.test("How do you do?") // error
return true
}
}
更新:这是我的步骤-
StaticLib
(在Swift中)>完成 public class StaticLib {
public class func printme() {
print("I'm swfit static lib!")
}
}
StaticLib
模式,构建> OK libStaticLib.a
>添加import StaticLib
StaticLib.printme()
Update2:外部Lib项目的
+1需要将
StaticLib.swiftmodule
(与libStaticLib.a在同一位置创建)复制到目标项目文件夹(我将其放置在.xcodeproj
文件的级别)+2在主应用程序目标
Build Settings
中设置SWIFT_INCLUDE_PATHS = ${SRCROOT}
+3清洁>构建
注意:模块已加载的指示符是自动完成导入-它应该显示StaticLib
关于ios - 如何从纯Swift项目访问纯Swift静态库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59875615/