美文网首页
CocoaPod FRAMEWORK_SEARCH_PATHS

CocoaPod FRAMEWORK_SEARCH_PATHS

作者: 狼性刀锋 | 来源:发表于2019-04-09 17:45 被阅读0次

    FRAMEWORK_SEARCH_PATHS 冲突

    相信用过CocoaPod都会碰到下面这个问题:

    [!] The `justTest [Debug]` target overrides the `FRAMEWORK_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-justTest/Pods-justTest.debug.xcconfig'. This can lead to problems with the CocoaPods installation
        - Use the `$(inherited)` flag, or
        - Remove the build settings from the target.
    
    

    FRAMEWORK_SEARCH_PATHS ,引发的冲突。

    解决方案:

    local.xcconfig 配置了 FRAMEWORK_SEARCH_PATHS

    1. local.xcconfig 需要在 FRAMEWORK_SEARCH_PATHS中添加 $(inherited)

    就像这样

    // 多个路径以空格分割
    FRAMEWORK_SEARCH_PATHS = $(inherited) "${SRCROOT}/path/subpath"
    
    1. include podproject.xcconfig
    // 这个路径就是上面`pod install` 运行后提示你的路径
    #include "Pods/Target Support Files/Pods-justTest/Pods-justTest.debug.xcconfig"
    

    local xcconfig 没有配置了 FRAMEWORK_SEARCH_PATHS

    这个时候上面的方法,同样适用。但还可以采取另外一种方法: project --> target -> build settings -> FRAMEWORK_SEARCH_PATHS
    添加$(inherited)

    总结

    两种方案,都必须增加 $(inherited) 选项 ,否则是不行的

    如何确定xcconfig include path 有效

    观察build log, 如果出现一下 **warning: unable to find included file "error path"**
    
    屏幕快照 2019-04-09 下午3.52.36.png

    则表明include path 不正确 ,仔细检查一下

    解决 [CP] Check Pods Manifest.lock error

    上述过程,有可能会出现下面的错误

    diff: /../Podfile.lock: No such file or directory
    diff: Manifest.lock: No such file or directory error: 
    The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
    
    

    常用解决方案

    rm -rf MyProject.xcworkspace
    pod install
    

    但这里并不适用,其实是因为找不到PODS_ROOT

    PODS_ROOT 被定义在Pods/Target Support Files/Pods-justTest/'pod'.xcconfig 中,如果你找不到这个'pod'.xcconfig,就会报错。

    'pod'. xcconfig

    FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AppDynamicsAgent/iOSAgent-50.1.1610"
    GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
    LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
    OTHER_LDFLAGS = $(inherited) -ObjC -l"sqlite3" -l"z" -framework "ADEUMInstrumentation" -framework "CoreTelephony" -framework "SystemConfiguration"
    PODS_BUILD_DIR = ${BUILD_DIR}
    PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
    PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
    
    // PODS_ROOT 在这里被定义,找不到这个文件,自然就找不到这个宏
    PODS_ROOT = ${SRCROOT}/Pods
    
    

    示例: Debug.xcconfig

    //
    //  Debug.xcconfig
    //  BSTApp
    //
    //  Created by 李腾芳 on 2018/6/1.
    // 该路径出错,会出现上述错误
    #include "Pods/Target Support Files/Pods-MyApp/Pods-MyApp.debug.xcconfig"
    
    
    屏幕快照 2019-04-09 下午5.38.33.png 屏幕快照 2019-04-09 下午5.41.04.png

    注意一下当前运行的是哪一个scheme, 以及当前scheme所配置的xcconfig,你有可能改错了xcconfig,或者运行了错误的configuration

    相关文章

      网友评论

          本文标题:CocoaPod FRAMEWORK_SEARCH_PATHS

          本文链接:https://www.haomeiwen.com/subject/prliiqtx.html