gpt4 book ai didi

xcode - 如何在同一工作区中使用不同的配置名称编译具有应用程序和库的项目?

转载 作者:行者123 更新时间:2023-12-02 13:35:29 28 4
gpt4 key购买 nike

我正在开发一个应用程序,并且正在使用开源组件。

我有一个包含 MyApp.xcodeprojComponent.xcodeproj 的工作区。我的应用程序具有三种配置:调试App Store内部,但组件只有两种:调试发布

调试配置中,一切正常,但我无法在App StoreIn House配置中编译我的应用程序,因为配置名称不匹配。尝试 #import <Component/Component.h> 时出现文件未找到错误

我需要App Store内部配置,并且我真的希望避免修改组件的配置,以便于组件的 future 更新。

我知道我可以使用 CocoaPods 来解决这个问题,但我想知道 Xcode 中是否有一个简单的解决方案

最佳答案

您可以通过对应用的设置进行一些调整来编译您的项目。

我建议您修改项目级别的所有设置,以便您的所有目标都可以继承这些设置。

  1. 添加新的DEFAULT_CONFIGURATION用户定义设置并定义您的配置映射。它应该是这样的:

    Default Configuration Screenshot

  2. 将所有配置的 FRAMEWORK_SEARCH_PATHS 设置为 $(BUILD_DIR)/$(DEFAULT_CONFIGURATION)-$(PLATFORM_NAME),添加任何 OS X SDK 变体并将值设置为 $(BUILD_DIR)/$(DEFAULT_CONFIGURATION)。将 HEADER_SEARCH_PATHS 设置为 $(FRAMEWORK_SEARCH_PATHS)/include,将 LIBRARY_SEARCH_PATHS 设置为 $(FRAMEWORK_SEARCH_PATHS)。它应该是这样的:

    Search Paths Screenshot

    这一步相当繁琐,可以使用 xcproj 来自动化。工具并在项目目录中运行此脚本。根据需要编辑您的配置映射。

    #!/bin/bash

    CONFIGURATIONS=( "App Store:Release" "In House:Release" "Debug:Debug" )

    for CONFIGURATION in "${CONFIGURATIONS[@]}"; do
    xcproj --configuration "${CONFIGURATION%%:*}" write-build-setting DEFAULT_CONFIGURATION "${CONFIGURATION#*:}"
    done

    xcproj write-build-setting 'FRAMEWORK_SEARCH_PATHS' '$(BUILD_DIR)/$(DEFAULT_CONFIGURATION)-$(PLATFORM_NAME)'
    xcproj write-build-setting 'FRAMEWORK_SEARCH_PATHS[sdk=macosx*]' '$(BUILD_DIR)/$(DEFAULT_CONFIGURATION)'

    xcproj write-build-setting 'HEADER_SEARCH_PATHS' '$(FRAMEWORK_SEARCH_PATHS)/include'
    xcproj write-build-setting 'LIBRARY_SEARCH_PATHS' '$(FRAMEWORK_SEARCH_PATHS)'
  3. 如果组件作为静态库分发,那么您就完成了。如果该组件作为框架提供,则必须通过在文本编辑器中编辑 project.pbxproj 文件来更新其路径引用。在 PBXFileReference 部分(在 /* Begin PBXFileReference 部分 */ 下)找到 Component.framework 并更新其 path,如下所示:

    name = Component.framework; path = "../$(DEFAULT_CONFIGURATION)/Component.framework"; sourceTree = BUILT_PRODUCTS_DIR; };

    还要确保 sourceTree 设置为 BUILT_PRODUCTS_DIR,即相对于构建的产品。编辑项目文件后,它应该如下所示:

    Location Screenshot

您的项目现在应该按预期构建。

关于xcode - 如何在同一工作区中使用不同的配置名称编译具有应用程序和库的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30884778/

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