开发者社区 问答 正文

未定义的符号:将Unity+Vuforia嵌入Native SWIFT项目时的_$_PHImageM

我目前正在尝试将一个Unitu+Vuforia输出项目嵌入到当前的本地快速iOS项目中。我跟着这个文章很好,但是在最后的构建部分,这些错误会弹出:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_PHImageManager", referenced from:
      objc-class-ref in NativeGallery.o
  "_OBJC_CLASS_$_PHImageRequestOptions", referenced from:
      objc-class-ref in NativeGallery.o
  "_OBJC_CLASS_$_PHAssetCollection", referenced from:
      objc-class-ref in NativeGallery.o
  "_OBJC_CLASS_$_PHFetchOptions", referenced from:
      objc-class-ref in NativeGallery.o
  "_OBJC_CLASS_$_PHAssetCollectionChangeRequest", referenced from:
      objc-class-ref in NativeGallery.o
  "_kUTTypeMovie", referenced from:
      +[UNativeGallery pickMedia:savePath:] in NativeGallery.o
  "_OBJC_CLASS_$_PHAssetChangeRequest", referenced from:
      objc-class-ref in NativeGallery.o
  "_OBJC_CLASS_$_PHPhotoLibrary", referenced from:
      objc-class-ref in NativeGallery.o
  "_OBJC_CLASS_$_PHAsset", referenced from:
      objc-class-ref in NativeGallery.o
  "_kUTTypeImage", referenced from:
      +[UNativeGallery pickMedia:savePath:] in NativeGallery.o
      +[UNativeGallery imagePickerController:didFinishPickingMediaWithInfo:] in NativeGallery.o
  "_kUTTypeVideo", referenced from:
      +[UNativeGallery pickMedia:savePath:] in NativeGallery.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经检查了所提供的链接,并试图自己修复它(尝试过清理、放弃Xcode、重新链接编译源以及读取/构建统一并不有效)。没有结果。有人知道怎么修吗?统一版本:2018.4.12f1与统一中心。Xcode版本:11.3(11C29)。

P.S:如果有人有一个很好的教程/示例,说明如何使用Vuforia SDK进行本地IOS Xcode会很好,因为我不介意将项目更改为完全本机。

展开
收起
游客5akardh5cojhg 2019-12-24 12:48:56 1733 分享 版权
阿里云 AI 助理回答

遇到这些错误通常意味着你的Xcode项目中缺少了对相关框架的引用,特别是与Photos框架相关的类。在您的情况下,错误信息显示多个PH...类(如PHImageManagerPHAsset等)未定义,这表明您需要添加对Photos框架的引用。

要解决这个问题,请按照以下步骤操作:

  1. 打开Xcode项目:确保您使用的是正确的Unity生成的Xcode项目。

  2. 添加框架

    • 在Xcode中,选择您的项目(Project Navigator中的顶级条目)。
    • 转到“Build Phases”标签。
    • 展开“Link Binary With Libraries”部分。
    • 点击“+”按钮添加新的框架。
    • 搜索并添加Photos.frameworkMobileCoreServices.framework。这两个框架包含了处理图片和视频所需的类和类型定义,比如kUTTypeMoviekUTTypeImage
  3. 检查"Other Linker Flags":

    • 仍在项目的“Build Settings”中,搜索“Other Linker Flags”或OTHER_LDFLAGS
    • 确保此设置包含-ObjC-lc++(如果尚未自动添加)。这些标志有助于链接Objective-C代码和C++库。
  4. 清理并重新构建

    • 清理项目(Product > Clean Build Folder 或按下Shift+Command+K)。
    • 重新构建项目(Product > Build 或按下Command+B)。

完成上述步骤后,那些未定义符号的错误应该会消失,因为现在Xcode能够找到并链接到所需的Photos框架和相关类型定义。

对于完全原生iOS开发结合Vuforia SDK,您可以直接参考Vuforia的官方文档,特别是针对iOS平台的集成指南。Vuforia提供详细的步骤说明如何将SDK集成到Xcode项目中,包括必要的框架添加、依赖管理以及配置步骤。确保遵循最新版本的Vuforia SDK文档进行操作。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答