加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift iOS模块未部署到预期的调试目录

发布时间:2020-12-14 05:49:35 所属栏目:百科 来源:网络整理
导读:我有一个用Swift编写的模块/框架,打算在iOS上使用.当我尝试在我的应用程序中包含框架时,我首先注意到构建阶段中的一些红色“未找到”提示: 但是,项目构建正常 – 找到了目标依赖项,因此没有编译问题.它只是由此产生的构建框架 – 当然,在启动时,我有一个链
我有一个用Swift编写的模块/框架,打算在iOS上使用.当我尝试在我的应用程序中包含框架时,我首先注意到构建阶段中的一些红色“未找到”提示:

但是,项目构建正常 – 找到了目标依赖项,因此没有编译问题.它只是由此产生的构建框架 – 当然,在启动时,我有一个链接器错误,它无法找到图像.查看构建日志,它在这里看:

/Users/Craig/Projects/Fluffy/build/Debug-iphoneos/

这是有道理的 – 这是我的框架的构建设置中定义的内容:

但是副本失败了,因为源框架不存在:

PBXCp /Users/Craig/projects/Fluffy/build/Debug-iphoneos/Fluffy_iOS.framework /Users/Craig/Library/Developer/Xcode/DerivedData/MyApp-dcjfhcnyzkwzxiejuuxqlsgajreb/Build/Products/Debug-iphoneos/MyApp/Frameworks/Fluffy_iOS.framework
...
error: /Users/Craig/projects/Fluffy/build/Debug-iphoneos/Fluffy_iOS.framework: No such file or directory

但是,查看我的框架的构建日志,我发现它实际上是在这里结束:

/Users/Craig/Library/Developer/Xcode/DerivedData/Fluffy-fuuewsvogdkycegheyrsabkiicxc/Build/Products/Debug-iphonesimulator/Fluffy_iOS.framework

我认为这是有道理的 – DerivedData有一段时间以来一直是任何内置产品的默认位置.

当我看一下预期的构建文件夹时,它并不多,很多都是旧的,并且它们都与Debug配置无关:

所以我的问题是:为什么我的框架被放置在DerivedData文件夹中,当它似乎要求在Build Settings中放置在相对于项目的build文件夹中?是否咨询过这些参数(按配置构建产品路径等)?

而且,我该如何协调这一点呢?我的应用程序如何知道在框架中查找正确的DerivedData文件夹,以可扩展的方式查找正确的配置(调试与发布),并且无需手动指定它的绝对路径即可工作?

好的,所以我想出了如何解决这个问题.这假设您有工作区,并且您已将框架作为项目包含在工作空间中,并且您正尝试从包含框架的工作空间中的另一个项目构建产品.

您需要做的是找出框架的构建位置.它通常是DeriveData目录下的一些疯狂目录.转到Finder,找到您刚刚尝试构建的配置.

在产品目标的常规设置中,在嵌入式二进制文件下,??将该文件拖入其中.现在应该将它放在Project Navigator中.您还应该在嵌入式二进制文件下面的链接框架和库中看到它.

转到Project Navigator并选择文件并在File Inspector下查看它.在那里,将位置更改为相对于构建产品.

在目标的构建设置中,对于框架搜索路径,添加$(BUILT_PRODUCTS_DIR)并使其递归.删除添加框架时自动添加的条目.它将是一个显式路径,其中包含DerivedData路径.

进行深度清理并删除DerivedData目录以获得良好的衡量标准.

建立.

您现在应该看到框架变黑,它应该正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读