【发布时间】: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)"的脚本模糊地解决了这个问题,它可以工作,但我不确定它是否真的正确。 -
我使用了相同的脚本。不确定它是否正确,但它有效。