xcode - 如何使用不同的构建配置设置 Xcode 项目依赖项?

标签 xcode xcode7 buildconfiguration cocoa-touch

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

11 个月前关闭。




Improve this question




我有一个包含三个项目的 Xcode 7.3 工作区,App、FrameworkA 和 FrameworkB。每个项目都有一个目标。这是 iOS,所以框架目标是 Cocoa Touch 框架,这意味着框架包含动态链接的共享库。

应用程序依赖于依赖于框架 B 的框架 A。这些依赖项是有效的,只要 A 正确链接到 B 的构建产品,并且应用程序正确链接并嵌入框架 A 和 B(因为您不能让一个框架嵌入另一个框架) ,似乎应用程序包需要链接和嵌入直接和传递依赖项。)

但这是我的问题。框架 A 和 B 具有通常的构建配置、调试和发布。应用程序有一个额外的构建配置 LocalRelease,它由运行构建操作触发,用于构建优化的构建(如发布),但代码使用开发人员身份(如调试)签名。

当我尝试使用此 LocalRelease 构建配置构建 App 时,这会破坏构建,因为它破坏了对框架 A 和 B 的依赖。我相信这是因为这些框架没有 LocalRelease 构建配置,因此 Xcode 从不将它们的构建产品放入LocalRelease-iphoneos 文件夹,与 App 一样。

所以我的狭隘问题是,如何配置build设置,以便具有非标准构建配置名称(如 LocalRelease)的项目可以依赖于仅使用标准构建配置名称的其他项目?我希望有一种简单的方法可以做到这一点,不需要添加脚本或 xcconfig 文件,但如果有必要,我很想知道为什么。

我更广泛的问题是,引入额外的构建配置通常是一个坏主意,因为它们不允许共享工作区中项目之间的依赖项的平滑交互?我被引导定义这第三个配置,因为我想要一个优化的本地构建,我不想定义一个新的方案,我希望构建类型的选择通过各种构建操作(运行、配置文件、发布)来表达单一方案。

但也许这是错误的做法。只要是构建配置名称驱动构建产品目录路径的情况,并且依赖项目需要在共享目录中查找彼此的构建产品,似乎将非标准构建配置名称引入项目会破坏与依赖于其他项目。

最佳答案

我就此向 Apple 提出了开发人员技术支持票,并与 WWDC 的 Xcode 工程师进行了交谈。

回答我自己的问题

how do I configure build settings so that a project with a nonstandard build configuration name (like LocalRelease) can depend on other projects that use only the standard build configuration names?



答:做不到。

is it in general a bad idea to introduce additional build configurations because they do not allow smooth interaction of dependencies between projects in a shared workspace?



回答:是的,这是一个坏主意。

因此,创建一个新的命名构建配置并不是做我想做的事情的聪明方法。不幸的是,似乎“最简单”的解决方案是包含 xcconfig 文件并为此类事情手动更改配置文件。

关于xcode - 如何使用不同的构建配置设置 Xcode 项目依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37090965/

相关文章:

android - 构建配置和 Android NDK

xcode - IBDesignable 无法设置按钮背景

swift - 如何运行 AsyncTask 从服务器返回响应,然后继续到下一个 View Controller

ios - StackView 对齐问题

ios - 在 iOS 9 中禁用网络时,HTTP GET 请求出现 fatal error

visual-studio-2015 - 错误 "The OutputPath property is not set for project"VS 2015

visual-studio - 将默认构建配置添加到 Visual Studio

objective-c - 如何使用 Xcode 在 Mac OS X 上的 Obj-C 中仅用几行在窗口 Canvas 上绘制/绘制/渲染点或为像素着色?

ios - 删除记录时出错,由于未捕获的异常而终止应用程序 'NSInternalInconsistencyException'

ios - 使用 xCode 7.3 在 swift 2 中从 URL 播放视频文件(mp4 文件)?