不同 Debug 和 Release 框架的环境配置 - Xcode

Posted

技术标签:

【中文标题】不同 Debug 和 Release 框架的环境配置 - Xcode【英文标题】:Environment configuration for different Debug and Release framework - Xcode 【发布时间】:2020-02-27 08:57:29 【问题描述】:

我有两个来自支付提供商的框架,它们提供DebugRelease 框架,用于不同的环境。

我试图在网上配置/查找一种方法,我可以在一个方案中配置它们的导入,并且根据Build Configuration,它将在DebugRelease 框架之间切换.

我使用Framework Search path 例如Debug 来获得框架的调试url,同样Release 链接到发布框架的url 到文件。

我正在寻找更有用和更容易的东西,例如运行脚本,或者避免手动导入每个构建配置。

注意:框架同名,框架是用objective-c构建的,没有单头导入。

【问题讨论】:

【参考方案1】:

您可以尝试以下方法,

在.xcodeproj所在的项目目录下新建文件夹“Frameworks”。

将发布框架放在 /Frameworks/Release/arm64/

将调试框架放在 /Frameworks/Debug/x86_64/

在构建阶段粘贴下面的脚本 -> 运行脚本:

cp -r "$PROJECT_DIR/Frameworks/$CONFIGURATION/$ARCHS" "$PROJECT_DIR/"
rm -dfR <Name of the framework> && \
cp -pRP "$ARCHS" <Name of the frameowrk> && \
rm -rf "$ARCHS"

【讨论】:

我需要将它们作为嵌入式框架导入,还是只需添加此代码? @nataMio 是的。您需要在嵌入式框架中添加框架。以上脚本将根据编译时选择的配置替换框架。 它不是理想的解决方案。 您可以在***.com/questions/40400086/… 中尝试解决方案并使用 $CONFIGURATION 嵌入调试和发布框架【参考方案2】:

不确定它是否适合您的需求,但您可以尝试

#if DEBUG
 import debugFramework
#else
 import releaseFramework
#endif

【讨论】:

以上是关于不同 Debug 和 Release 框架的环境配置 - Xcode的主要内容,如果未能解决你的问题,请参考以下文章

vs中debug和release版本的区别

极光推送 debug模式能收到远程推送 release模式下收不到消息

VS系列软件中debug和release编译环境有什么区别

CMAKE设置VS工程中Debug和Release不同的输出名称

在C#中Debug和Release两种调试方法出来结果不同,求问为啥?

Swift 框架不适用于名为“Debug”或“Release”以外的构建配置:没有这样的模块