如何在Xcode中为iOS与iPad设计的Mac应用设置不同OTHER_LDFLAGS
区分iOS与iPadOS设计的Mac应用设置不同OTHER_LDFLAGS的方法
方法1:利用Xcode构建设置的平台条件精准匹配
Xcode支持基于PLATFORM_NAME的条件化构建设置,你可以直接在构建设置中添加以下规则:
- 针对iPhone/iPad(iOS平台):配置
OTHER_LDFLAGS[platform=iphoneos*]和OTHER_LDFLAGS[platform=iphonesimulator*],给这两个条件设置完全相同的链接标志。 - 针对iPadOS设计的Mac应用(Mac Catalyst):如果通用的
OTHER_LDFLAGS[sdk=macosx*]不生效,可尝试更细分的架构条件,比如OTHER_LDFLAGS[sdk=macosx*][arch=arm64]或OTHER_LDFLAGS[sdk=macosx*][arch=x86_64],分别适配不同架构的Mac Catalyst目标。
如果平台条件仍无法满足需求,最直接的方式是为不同Target单独配置:
- 在Xcode项目导航栏选中对应Target(iOS Target和Mac Catalyst Target)
- 进入「Build Settings」标签,搜索
OTHER_LDFLAGS,为每个Target单独设置所需的链接参数。
方法2:自定义构建设置+预编译脚本动态判断
- 在项目构建设置中添加自定义设置
CUSTOM_PLATFORM_TYPE,默认留空。 - 添加「Run Script」构建阶段(放在「Compile Sources」之前),脚本内容如下:
if [[ "$PLATFORM_NAME" == "macosx" && "$TARGET_OS_MACCATALYST" == "1" ]]; then # 适配iPadOS设计的Mac应用 echo "OTHER_LDFLAGS = 你的Mac端链接标志" > "${BUILT_PRODUCTS_DIR}/ldflags.xcconfig" else # 适配iPhone/iPad echo "OTHER_LDFLAGS = 你的iOS端链接标志" > "${BUILT_PRODUCTS_DIR}/ldflags.xcconfig" fi
- 在项目构建设置中,导入动态生成的配置文件:在「Configuration File」中添加
${BUILT_PRODUCTS_DIR}/ldflags.xcconfig引用。
方法3:分平台使用xcconfig配置文件
创建两个独立的xcconfig文件:
iOS_LDFlags.xcconfig:
OTHER_LDFLAGS = -lYouriOSLib1 -lYouriOSLib2
MacCatalyst_LDFlags.xcconfig:
OTHER_LDFLAGS = -lYourMacLib1 -lYourMacLib2
然后在项目「Info」标签中,为不同Target的Debug/Release配置分配对应的xcconfig文件:
- iOS Target的所有配置选择
iOS_LDFlags.xcconfig - Mac Catalyst Target的所有配置选择
MacCatalyst_LDFlags.xcconfig
内容的提问来源于stack exchange,提问作者Yevgenii Pasko
相关产品推荐
相关产品推荐

