原生 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”文件的主要内容,如果未能解决你的问题,请参考以下文章