代码之家  ›  专栏  ›  技术社区  ›  Tim

避免swift中的自动框架链接

  •  8
  • Tim  · 技术社区  · 6 年前

    我有一个 example project 由一个主要目标组成( LinkerTests )和一个依赖的动态框架( Dynamic

    如果运行项目,将看到以下dyld二进制加载:

    dyld: loaded: {DerivedDataPath}/Build/Products/Debug-iphonesimulator/Dynamic.framework/Dynamic
    

    import Dynamic 在里面 AppDelegate.swift 尽管存在以下情况:

    1. Link Binary With Libraries 构建阶段为空
    2. CLANG_MODULES_AUTOLINK 设置为false

    我需要实现的是避免这种自动隐式链接。


    相关问题: Don't we need to link framework to XCode project anymore?

    1 回复  |  直到 6 年前
        1
  •  6
  •   malhal Benzy Neez    4 年前

    import Dynamic ).

    没有办法完全禁用此功能。但是有一个私有编译器标志,允许您禁用单个框架的自动链接: swiftc -disable-autolink-framework <framework>

    一些参考资料: https://gist.github.com/zrzka/c89705ff634ea01aebc1 https://github.com/niw/automatic_linking_tool/blob/master/README.md

    我很确定您可以附加 -v swiftc

    您应该将私有标志包装在两个内 -Xfrontend

    OTHER_SWIFT_FLAGS = "-Xfrontend -disable-autolink-framework -Xfrontend Dynamic"
    

    要使其生效,您仍必须设置 自动链接框架 苹果叮当语言模块下没有。