【问题标题】:Xcode "Embed Frameworks" built under different configuration在不同配置下构建的 Xcode "Embed Frameworks"
【发布时间】:2016-02-29 21:25:16
【问题描述】:

除了标准的“发布”和“调试”配置外,我开发的一个应用程序还有一个“临时”配置,用于临时测试构建。在工作区中与它一起构建的框架没有此配置,因为它们的行为不是针对临时构建定制的。因此,在为 ad-hoc 构建工作空间时,产品分为:

  • $BUILT_PRODUCTS_DIR(有 Adhoc 前缀)
  • $BUILT_PRODUCTS_DIR/../Release-iphoneos$BUILT_PRODUCTS_DIR/../Release-iphonesimulator,具体取决于我们当前的构建目标。

通过将$(BUILT_PRODUCTS_DIR)/../Release-$(PLATFORM_NAME) 添加到这些设置,可以很容易地使用库和框架搜索路径。此时,我的应用程序构建正确,但在“嵌入框架”步骤中失败。

我的框架被添加到应用程序项目中,位置为 BUILT_PRODUCTS_DIR 和一个仅包含它们名称的相对路径。

This question 类似,但它仅适用于不需要此步骤的静态库 - 我正在使用框架。

如果有更好的方法来处理这个问题,请告诉我 - 但我不想将自定义配置向上推送到框架中,因为其中一些最终可能是开源的,而我们的详细信息在这种情况下,内部流程无关紧要。

【问题讨论】:

  • 为什么 Ad-Hoc 设置需要与 Release 不同?唯一可能改变的是您可能会使用不同的签名配置文件?
  • 包括 HockeyApp 框架、#if 设置代码、仅限开发者的功能等。
  • this 有帮助吗?
  • 否 - 这是针对静态库的。我通过添加一个检查配置并执行cp -R "$(BUILT_PRODUCTS_DIR)/../Release-$(PLATFORM_NAME)"/*.framework "$(BUILT_PRODUCTS_DIR)" 的脚本模糊地解决了这个问题,它可以工作,但我不确定它是否真的正确
  • 我使用了相同的脚本。不确定它是否正确,但它有效。

标签: ios xcode


【解决方案1】:

我在我的一个应用中遇到了类似的问题。在 Xcode 12.4 中,我可以通过将我的 Ad Hoc 配置的 System Framework Search Paths 设置为 $(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME) 来解决它。

通过选择您的目标,然后选择构建设置选项卡,可以在您的项目中找到此设置。我建议搜索“系统框架”来找到它。添加路径后,Xcode 会将其转换为系统上的实际路径,如我的屏幕截图所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 2018-04-23
    • 2010-12-05
    • 2014-02-05
    相关资源
    最近更新 更多