原生 iOS Unity 集成 - AppStore 配置文件导致找不到“UnityFramework/UnityFramework.h”文件

Posted

技术标签:

【中文标题】原生 iOS Unity 集成 - AppStore 配置文件导致找不到“UnityFramework/UnityFramework.h”文件【英文标题】:Native iOS Unity Integration - AppStore Provisioning Profile causes 'UnityFramework/UnityFramework.h' file not found 【发布时间】:2021-08-27 00:04:13 【问题描述】:

我有一个本机 ios 应用程序 (Swift),按照本指南将 Unity 集成为一个库: https://forum.unity.com/threads/integration-unity-as-a-library-in-native-ios-app.685219/

XCode 12.5.1、Unity 2019.4.12f、CocoaPods 1.10.2

在过去 3 天里,当我尝试使用 AppStore 配置文件存档时收到此错误:

/Users/../Bridging-Header.h:9:9: 'UnityFramework/UnityFramework.h' 找不到文件

未能发出预编译的标头 '/Users/../Build/Intermediates.noindex/ArchiveIntermediates/appname-testflight-qa/PrecompiledHeaders/Bridging-Header-swift_OMITED-clang_OMITED.pch' 用于桥接头 '/Users/../Bridging-Header.h'

当我使用任何配置文件 (PP) 进行常规构建时,它会成功构建并且我可以在设备上运行。当我使用 Ad-Hoc PP 存档时,它也成功了。 它仅在使用手动指定的 AppStore PP 归档期间发生,我需要它来进行命令行构建以进行自动化部署。我已经确认它发生在命令行和 XCode 编辑器中。我需要 Bridging Header 以便我可以允许原生 iOS 与 Unity 交互以传递一些信息。

这是桥接头:

#ifndef BRIDGING_HEADER
#define BRIDGING_HEADER

#import <UIKit/UIKit.h>
#import <UnityFramework/UnityFramework.h>
#import <UnityFramework/NativeCallProxy.h>

#endif /* BRIDGING_HEADER */

我已经在所有其他 UnityFramework.h 未找到问题上尝试了以下建议无济于事:

    关闭并行化构建 首先在构建过程中添加 UnityFramework.framework 和/或 Unity-iPhone 项目作为目标 清理项目,删除 DerivedData,删除/重新安装 Pod 切换到将存档 Ad-Hoc PP 的另一个方案,并更改为使用 AppStore PP 重新整合 Unity 项目 通过所有这些测试将构建目标设置为设备(不是模拟器) 我尝试切换到:桥接头内的“../UnityFramework/UnityFramework.h” 在 Build Phases - Link Binary With Libraries 中使 Framework 成为可选(并尝试添加 Copy File Build Phase - 这会导致错误提示此复制步骤被复制) 经过验证的运行路径已包含 @executable_path/Frameworks 尝试将 Pods 和 Project 更改为 iOS 12.1 min 版本并将 Pods 的 Build Active Architecture Only 设置为 YES

任何帮助或建议将不胜感激。我完全没有想法。

【问题讨论】:

【参考方案1】:

问题在于主项目和 Unity-iPhone 子项目之间的配置命名。由于 Unity 项目没有匹配的配置,它选择了其他可用配置之一,在我的例子中是 Debug (QA)。当存档去寻找 UnityFramework 时,它位于错误的文件夹中。

基本上,如果您有自定义配置,请确保您的主项目中的所有配置也在 Unity-iPhone 项目中且名称完全相同。

【讨论】:

以上是关于原生 iOS Unity 集成 - AppStore 配置文件导致找不到“UnityFramework/UnityFramework.h”文件的主要内容,如果未能解决你的问题,请参考以下文章

集成Unity3D到iOS应用程序中

在 iOS 原生应用中使用 FBX 文件和 3D 模型

开发 Unity 增强现实 vuforia 应用并与原生 android 应用集成

安卓和Unity线程共享context

安卓和Unity线程共享context

ios原生嵌入unity