ios - 无法将嵌入式二进制文件(其他项目)添加到 XCode 中的项目依赖项

标签 ios xcode project project-management linker-errors

我有一个使用 XCode 6.0.1 创建的 XCode 工作区。它包含 2 个 (Swift) 库和一个依赖于这 2 个库的 iOS 应用程序 (Swift)。我有稳定的设置,允许我在 iPhone 和模拟器上运行 iOS 应用程序:这 2 个库项目被添加为应用程序的嵌入式二进制文件(参见图片)。

现在,我有了 XCode 6.1。最近,我在 XCode 运行时删除了 ~/Library/Developer/Xcode 文件夹中的 DerivedData 文件夹。之后,我的工作区无法正常工作 - iOS 应用程序将无法编译,并且出现链接器错误,提示它找不到库项目。

我试图通过从应用程序项目的嵌入式二进制文件 中删除我的 2 个库来解决它 - 但我无法将它们添加回去。单击项目设置中 Embedded Binaries 下的 + 按钮可以正确显示工作区项目,但选择并添加我的库项目不会将它们添加到 Embedded Binaries 列表中。我通过创建新工作区解决了链接器错误。该应用程序编译但它如何链接库对我来说是个谜:它们不在列出的嵌入式二进制文件中或链接的框架和库不在框架搜索路径中。应用程序和它需要的库之间似乎没有链接(并且在编译时显然有),除了库项目位于同一工作区中。

为什么我不能将库项目添加到嵌入式二进制文件?在 XCode 6.1 中,依赖项项目只是编译并嵌入到应用程序中而不在任何地方列出或链接是正常的吗?

enter image description here

最佳答案

这是我对Xcode won't add “Embedded binary” after delete “DerivedData”, see the original question and answer for more context and information 这个问题的回答总结:

  1. 从工作区中删除所有框架项目
  2. 执行“干净构建”和/或删除“DerivedData”
  3. 将项目添加回工作区
  4. 构建项目(可能是可选的)
  5. 在应用目标的“常规”选项卡中,点击“链接的框架和库” 下的 +,选择框架。
  6. 在模拟器中构建并运行(构建或运行应该没有问题)
  7. 为设备构建并运行(这可能会由于框架未正确链接而导致崩溃,请忽略此崩溃)
  8. 单击“嵌入式二进制文件” 下的+,选择框架。这应该将它添加到项目中(在“链接的框架和库”下可能重复)
  9. 对所有必需的框架重复
  10. 确认构建和运行(在设备上)后,您可以在项目导航器或目标常规选项卡中删除任何重复的(和/或红色的)框架

关于ios - 无法将嵌入式二进制文件(其他项目)添加到 XCode 中的项目依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26983628/

相关文章:

ios - iOS 应用程序中的 gmail 集成

ios - NSPredicate 用于常规搜索

ios - 在 Info.plist CFBundleSupportedPlatforms 或 modplug 的 Mach-O LC_VERSION_MIN 中找不到平台系列

xcode - 安装 GLEW 并将其与 Xcode 一起使用

PHP 和 MySQL 项目支付

c# - 如何在 Visual Studio Code 中添加程序集引用?

ios - 核心数据扩展 : insert NSManagedObject in NSManagedObjectContext

ios - Spritekit 使用关卡

c# - 在 C# 项目中查找所有嵌套类的巧妙方法是什么?

ios - SCNNode 方向而不是 eulerAngles