gpt4 book ai didi

ios - 使用外部库创建的 Xcode 存档文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:00 25 4
gpt4 key购买 nike

我正在开发 IOS 应用程序。我正在使用 Facebook AsyncDisplayKit 库。我的项目在 Debug模式下运行。但是当我尝试 Project Archive 然后 Xcode 给出错误信息。错误消息是“词法或预处理器问题”。我没有使用 pods 。我将我的项目拖到 AsyncDisplayKit.xcodeproj 文件

下面是 Facebook ASDK 的实现(ASDK 也可以用作常规静态库:手动将项目复制到您的代码库,将 AsyncDisplayKit.xcodeproj 添加到您的工作区。将 libAsyncDisplayKit.a、AssetsLibrary 和照片添加到“Link Binary With Libraries”构建阶段。包括 - lc++ -ObjC 在你的项目链接器标志中。)

enter image description here

My Project Direktory : /devel/workplace/app/MyApp
Library Direktory : /devel/workplace/app/ios-libraries/AsyncDisplayKit

最佳答案

关于解决这个问题,要知道的主要事情是归档将整个项目以及所有源代码和 header 复制到一个中间文件夹并从那里构建它。它尝试设置可行的标题路径,但有时它不理解某些项目设置。

你需要

  1. 添加一个新的用户 header 路径,该路径的位置正确
  2. 因为您在导入时使用 <>(并且 AsyncDisplayKit 在内部使用它),您需要确保“始终搜索用户路径”设置为 YES

要找到正确的 header 路径,第一步是找出 Xcode BUILD_ROOT 的位置。我制作了一个简单的工作区和项目来重现这一点。我的 xcodebuild 行是

xcodebuild -workspace TryADK.xcworkspace -scheme TryADK -showBuildSettings|grep BUILD_ROOT

在我的系统上显示:

BUILD_ROOT = /Users/lou/Library/Developer/Xcode/DerivedData/TryADK-bsnchnrjizifmqahbifklpdekupm/Build/Products

现在,您需要找到与之相关的 AsyncDisplayKit.h。它可能位于 BUILD_ROOT/.. 中的某处,因此复制您获得的 BUILD_ROOT 文件夹并键入(在构建根目录末尾没有/Products)

find /Users/lou/Library/Developer/Xcode/DerivedData/TryADK-bsnchnrjizifmqahbifklpdekupm/Build -name AsyncDisplayKit.h

我得到了几个文件夹。对存档构建有意义的是:

/Users/lou/Library/Developer/Xcode/DerivedData/TryADK-bsnchnrjizifmqahbifklpdekupm/Build/Intermediates/ArchiveIntermediates/TryADK/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/include/AsyncDisplayKit/AsyncDisplayKit.h

在存档下,BUILD_ROOT 设置自

BUILD_ROOT = /Users/lou/Library/Developer/Xcode/DerivedData/TryADK-bsnchnrjizifmqahbifklpdekupm/Build/Products

BUILD_ROOT = /Users/lou/Library/Developer/Xcode/DerivedData/TryADK-bsnchnrjizifmqahbifklpdekupm/Build/Intermediates/ArchiveIntermediates/TryADK/Products

因此,您的新 header 路径是(根据我的设置):

"$(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/iphoneos/include"
  1. 转到 Xcode
  2. 转到您的项目设置。
  3. User Header放在搜索栏中
  4. 确保始终搜索用户路径是YES
  5. 添加一个新的User Header Search Path,其中包含我们找到的标题路径。

如果这不起作用,我们可能没有把所有事情都做对。最好的调试方法是:

  1. 使用 xcodebuild 构建——类似于:

    xcodebuild -workspace TryADK.xcworkspace -scheme TryADK build archive
  2. 在输出中找到您的错误并查看所使用的确切编译器设置。查看所有 -I/Users/... 参数——其中之一是您的用户 header 路径,其中 BUILD_ROOT 展开为完整路径。

  3. 通过与上面的查找结果进行比较,确保它是正确的。

关于ios - 使用外部库创建的 Xcode 存档文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28848902/

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