【问题标题】:xcodebuild command link librariesxcodebuild 命令链接库
【发布时间】:2015-02-19 14:04:34
【问题描述】:

在使用 xcodebuild 命令从命令行构建应用程序时,有没有办法指定要链接的 iOS 库? 我知道我们可以使用 OTHER_LDFLAGS="..path/to/framework" 指定第三方框架,但由于内置框架路径可能因机器/sdk 等而异,我假设可能有比这更好的方法。

谢谢

【问题讨论】:

    标签: xcode linker xcodebuild


    【解决方案1】:

    xcodebuild 构建项目文件,因此通常您配置项目中的所有内容,而不是传递许多配置参数。要链接内置框架,您只需使用 Link with Libraries 构建步骤并添加所需的框架。内置框架应自动存储为 SDK-relative。 (请注意,您基本上不应该使用它来链接包中的相对路径库;通常最好使用OTHER_LIBTOOLFLAGS。)

    如果需要,您想要的链接器标志是-framework <name>。但是在使用xcodebuild 时,您不应该经常需要它。多用于直接调用clangld时。

    【讨论】:

    • 非常感谢您的回复。我想这样做的原因是,我创建了一个自定义框架,并且我想将此框架与其他必需的内置框架集成到一个示例应用程序中(基本上自动化并检查我与框架一起提供的自述文件)。你能指出任何使用链接器标志选项“-framework”的例子吗?
    • 如果这是作为该项目的一部分构建的自定义框架(它自己的 xcodeproj 是工作区的成员,或者它是项目的目标),那么您实际上可以使用链接库步骤,这将正常工作(因为它知道依赖关系)。如果您要发布一个将由相对路径引用的二进制框架,则只需要-framework。然后您只需将其添加到OTHER_LIBTOOLFLAGS。我还没有在任何开源项目中看到这样做,所以我不知道任何在线示例。有关处理框架的真实示例,请参阅 Adium (adium.im)。
    • 我正在发布一个二进制框架。我将尝试 OTHER_LIBTOOLFLAGS 并检查 Adium 源。如果我能找到一个例子,我会回帖。非常感谢您的宝贵时间。
    • 这样的东西对我有用。 xcodebuild FRAMEWORK_SEARCH_PATHS="../MyFramework/" OTHER_LDFLAGS="/path/to/MyFramework.framework/Versions/A/MyFramework -lz -lc++ -framework CoreTelephony"
    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多