gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 05:39:24 27 4
gpt4 key购买 nike

我有一个用 Swift 编写的模块/框架,打算在 iOS 上使用。当我尝试将框架包含在我的应用程序中时,我首先注意到构建阶段有一些红色的“未找到”提示:

enter image description here

但是,项目构建 很好 - 找到了目标依赖项,因此没有编译问题。这只是生成的构建框架 - 果然,在启动时,我有一个链接器错误,它找不到图像。查看构建日志,它在此处查找:

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

这是有道理的 - 这就是我的框架的build设置中定义的内容:

enter image description here

但复制失败,因为源框架不存在:

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 已经有一段时间成为任何构建产品的默认位置。

当我查看expected 构建文件夹时,没有太多,很多都是旧的,而且与调试配置无关:

enter image description here

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

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

最佳答案

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

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

在产品目标的 General 设置中,在 Embedded Binaries 下,将该文件拖入其中。现在应该将其放置在 Project Navigator 中。您还应该在 Embedded Binaries 下的 Linked Frameworks and Libraries 中看到它。

转到 Project Navigator 并选择文件并在 File Inspector 下查看它。在那里,将 Location 更改为 Relative to Build Products

在目标的 Build Settings 中,对于 Framework Search Paths,添加 $(BUILT_PRODUCTS_DIR) 并使其递归。删除添加框架时自动添加的条目。这将是一个显式路径,其中包含 DerivedData 路径。

进行深度清理并删除 DerivedData 目录以备不时之需。

构建。

您现在应该看到框架变黑并且它应该可以正常工作。

关于ios - Swift iOS 模块未部署到预期的调试目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26058980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com