在构建需要此捆绑包的 xcode 项目时,如何 Link macOS 捆绑包所需的框架
How to Link a framework required by a macOS bundle when building an xcode project requiring this bundle
我有一个 macOSX 捆绑项目 B,它需要 GameKit 框架。我可以将它编译成一个包,创建 B.bundle.
我把这个 B.bundle 放在需要这个包才能工作的项目 A 中。当我尝试构建项目 A 时,出现链接错误:
"__OBJC_CLASS_$_GKAccessPoint", referenced from:
obj-class-ref in ....
"__OBJC_CLASS_$_GKLocalPlayer", referenced from:
obj-class-ref in ....
ld: symbol(s) not found for architecture arm64
GKAccessPoint 和 GKLocalPlayer 是我的捆绑项目使用的两个 类。看起来它根本找不到 类(我试过为其他架构构建它也失败了,但架构名称发生了变化)。
我真的不知道如何使链接起作用。这是我的项目 B 中的设置:
这里是我的项目 A 中的设置:
谢谢!
好吧,折腾了一天,终于找到问题所在了
我是用unity生成主工程,原生的GameKitNativebundle.bundle,还有GameKitNativebundle.mm文件都在工程里面,在资产文件夹。
问题是我勾选了要包含在独立版本中的 .mm 文件。所以 xcode 试图直接编译这个 .mm 文件并试图 link 它,但失败了。
取消勾选 .mm 文件中的独立复选框并从 unity 重建 xcode 项目使项目再次 link。
我有一个 macOSX 捆绑项目 B,它需要 GameKit 框架。我可以将它编译成一个包,创建 B.bundle.
我把这个 B.bundle 放在需要这个包才能工作的项目 A 中。当我尝试构建项目 A 时,出现链接错误:
"__OBJC_CLASS_$_GKAccessPoint", referenced from:
obj-class-ref in ....
"__OBJC_CLASS_$_GKLocalPlayer", referenced from:
obj-class-ref in ....
ld: symbol(s) not found for architecture arm64
GKAccessPoint 和 GKLocalPlayer 是我的捆绑项目使用的两个 类。看起来它根本找不到 类(我试过为其他架构构建它也失败了,但架构名称发生了变化)。
我真的不知道如何使链接起作用。这是我的项目 B 中的设置:
这里是我的项目 A 中的设置:
谢谢!
好吧,折腾了一天,终于找到问题所在了
我是用unity生成主工程,原生的GameKitNativebundle.bundle,还有GameKitNativebundle.mm文件都在工程里面,在资产文件夹。
问题是我勾选了要包含在独立版本中的 .mm 文件。所以 xcode 试图直接编译这个 .mm 文件并试图 link 它,但失败了。
取消勾选 .mm 文件中的独立复选框并从 unity 重建 xcode 项目使项目再次 link。