美文网首页
Pods中引用 YYText 出现警告 MobileCoreSe

Pods中引用 YYText 出现警告 MobileCoreSe

作者: Onego | 来源:发表于2020-09-24 13:29 被阅读0次

    问题是这样的:

    问题分析:

    这个警告提示已经非常明确的指出了问题所在,只要把Pods中的第三方框架(这里是YYText)所依赖的 MobileCoreService 换成 CoreService 就可以。


    或者 修改 Validate Workspace - Ignored Frameworks 也可以消除警告

    问题难点:

    以上两种方法可以暂时性的解决警告,但是一旦执行了 pod install 或者类似的指令对库镜进行了更新那么所设置的配置信息就会被重置;需要再次重复设置才可以,每次来这么一下可不是个好的体验。

    尝试解决:

    从问题源头已经很清晰了,现在需要解决的是pod更新后能够保持状态就可以,也就是需要在 Podfile 中写点脚本

    post_install do |installer|
        installer.pods_project.frameworks_group["iOS"]["MobileCoreServices.framework"].remove_from_project
    end
    

    然后更新pod pod update ,Build一下哎呦嘿似乎解决了警告消除了,看一下引用Frameworks的情况


    这是个什么鬼?似乎解决得不完美啊, project.pbxproj 中的并没有被移除
    对脚本进行升级
    post_install do |installer|
      framework = installer.pods_project.frameworks_group["iOS"]["MobileCoreServices.framework"]
      framework.referrers.each do |ref|
          if ref.isa == "PBXBuildFile"
              ref.remove_from_project
          end
      end
      framework.remove_from_project
    end
    

    pod update,Build 好了完美。

    扩展:

    1.PBXBuildFile

    PBXBuildFile 代表文件元素,被PBXBuildPhase等作为文件包含或被引用的资源,其实里面fileRef指向最终的文件PBXFileReference。

    2.AssetsLibrary 也可以通过类似的方法解决
    post_install do |installer|
      framework = installer.pods_project.frameworks_group["iOS"]["AssetsLibrary.framework"]
      framework.referrers.each do |ref|
          if ref.isa == "PBXBuildFile"
              ref.remove_from_project
          end
      end
      framework.remove_from_project
    end
    

    参考:
    How to silence Xcode 11.4 warnings about MobileCoreServices and AssetsLibrary?
    Xcode工程文件pbxproj
    Xcode工程文件project.pbxproj小结

    相关文章

      网友评论

          本文标题:Pods中引用 YYText 出现警告 MobileCoreSe

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