除了标准的“Release”和“Debug”配置之外,我开发的应用还有一个“Adhoc”配置,用于进行Ad-hoc测试构建。与此同时,在工作区中构建的框架没有这个配置,因为它们的行为没有针对Ad-hoc构建进行定制。因此,当工作区为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和仅包含名称的相对路径添加到应用程序项目中的。
这个问题与这个问题类似,但它仅适用于不需要此步骤的静态库 - 我正在使用框架。
如果有更好的方法处理这个问题,请告诉我 - 但我不想将自定义配置向上推入框架中,因为其中一些可能最终会成为开源的,我们内部流程的细节在这种情况下是无关紧要的。
- $BUILT_PRODUCTS_DIR(具有“Adhoc”前缀) - $BUILT_PRODUCTS_DIR/../Release-iphoneos或$BUILT_PRODUCTS_DIR/../Release-iphonesimulator,具体取决于我们当前正在构建哪个。
通过将$(BUILT_PRODUCTS_DIR)/../Release-$(PLATFORM_NAME)添加到这些设置中,使用库和框架搜索路径很容易使其正常工作。此时,我的应用程序可以正确地构建,但在“嵌入框架”步骤中失败。
我的框架是使用位置BUILT_PRODUCTS_DIR和仅包含名称的相对路径添加到应用程序项目中的。
这个问题与这个问题类似,但它仅适用于不需要此步骤的静态库 - 我正在使用框架。
如果有更好的方法处理这个问题,请告诉我 - 但我不想将自定义配置向上推入框架中,因为其中一些可能最终会成为开源的,我们内部流程的细节在这种情况下是无关紧要的。
#if
代码,仅限开发人员使用的功能等。 - user4691305cp -R "$(BUILT_PRODUCTS_DIR)/../Release-$(PLATFORM_NAME)"/*.framework "$(BUILT_PRODUCTS_DIR)"
的脚本来模糊地解决了这个问题,它可以工作,但我不确定它是否真正“正确”。 - user4691305