美文网首页iOS知识收录iOS开发记录iOS Developer
[2016.1更新]Xcode7使用第三方库报错⚠️"

[2016.1更新]Xcode7使用第三方库报错⚠️"

作者: NikoXu | 来源:发表于2015-11-26 12:13 被阅读2049次

    升级到Xcode7后,编译项目出现大片警示⚠️,多数是使用了第三方的库,问题特征如下:

    warning:
    /Users/.../Library/Developer/Xcode/DerivedData/ModuleCache/HJUIXHI06SFW/CoreGraphics-1YQ59ILDR3NYI.pcm: No such file or directory while processing
    /Users/.../Library/Developer/Xcode/DerivedData/.../Build/Products/Release-iphoneos/libcocos2d.a(someClass.o):
    warning:
    /Users/.../Library/Developer/Xcode/DerivedData/ModuleCache/HJUIXHI06SFW/CoreGraphics-1YQ59ILDR3NYI.pcm: No object file for requested architecture while processing
    /Users/.../Library/Developer/Xcode/DerivedData/.../Build/Products/Release-iphoneos/libcocos2d.a(someClass.o):warning: Could not resolve external type c:@S@CGPoint
    

    2016.1更新#

    Lots of warnings when building with Xcode 7 with 3rd party libraries

    Build Settings

    • Precompile Prefix (GCC_PRECOMPILE_PREFIX_HEADER) = NO
    • Debug Information Format (DEBUG_INFORMATION_FORMAT) = DWARF with dSYM
    • Enabled Modules (C and Objective-C) (CLANG_ENABLE_MODULES) = NO

    苹果员工在下方评论给出了方案

    Build Settings
    Enabled Modules (C and Objective-C) (CLANG_ENABLE_MODULES) = NO

    我按apple staff的方案并没解决,反而报了很多clang的错误。
    我自己的配置方法是通过如下解决:

    Build Settings
    Enabled Clang Module Debugging = NO

    但是这个问题自己体验是clear后消失, 但在编译几次后又可能会出现。

    Screen Shot 2016-01-19 at 21.44.13.png

    旧#

    我尽可能的测试了所有测试方法,solution1和2是可以解决的,但是还是根据自己的需求来吧。

    Solution 1##

    Under the Project Target > Build Settings
    change the “Debug Information Format” from “DWARF with dSYM File” to “DWARF”.

    主要是忽略了用于debug的dSYM文件。
    不推荐给使用了依赖dSYM文件进行错误追踪的开发者,比如集成了友盟sdk之类的。

    Solution 2##

    Deployment Postprocessing = Yes
    (DEPLOYMENT_POSTPROCESSING=YES)
    Generate Debug Symbols = No 
    (GCC_GENERATE_DEBUGGING_SYMBOLS=NO)
    Symbols Hidden by Default = Yes
    (GCC_SYMBOLS_PRIVATE_EXTERN=YES)
    

    这种解决方法是直接不生成debug的警示⚠️

    Solution 3##

    To delete the derived data, Alt-Click on "Go" in the Finder top bar. Then select "Library", navigate to Developer/Xcode/DerivedData and delete the entire folder.
    或者直接使用以下命令清除

    sudo rm -rf ~/Library/Developer/Xcode/DerivedData/
    

    清理缓存,不一定凑效

    Solution 4##

    来自stack over flow的网友Elise van Looij的解决方法

    I don't have a good answer to this question: I've considered removing the question, but it is a real problem and there are only one or two other mentions of it on the internet, with no solutions either. So, if you're struggling with this: I feel your pain but unfortunately the only way I've found to deal with it is to start a new project and import all classes and other resources. But please feel free to contribute and if you come up with something better than starting over, I'll be happy to award you the green V and upvote and all that.

    以上三种办法不能满足你的需求可以尝试...

    如果你有好的解决方案,在下面👇回复分享给大家吧!

    相关文章

      网友评论

      • 偌上:Generate Debug Symbols = no
      • 6cfccf97eac3:你好,请问引起这个警告的根本原因是什么?
        NikoXu:@6cfccf97eac3 第三方库编译时没有在Build Settings 中设置Enabled Clang Module Debugging = NO。
        Enabled Clang Module Debugging 在Xcode7中默认为Yes. 此功能允许Clang module使用共享的debug信息,由此获得更小的中间产物、更快的编译速度、更完整的debug信息。而这个特性不允许发生在同时分配debug信息和构建静态库。
        关于这个问题的进一步探讨可以去苹果的技术社区搜索。
      • c50765594d45:你好,我也在集成第三方 sdk 库时遇到这个问题,不过我有这个库的源码,我想问一下,这些配置是针对 sdk 设置还是针对 APP ?
        NikoXu:@西方失败 2016更新的方案,是我现在遇到最好的。上面一条是苹果开发社区的员工的回复,下面一条是我自己的方案。
        我的情况是,用我自己的方案才有效。
        如果你有源码,可以直接用源码的,而不需要拖静态库。
        c50765594d45:我对 app 的project 的配置修改之后,按照 Solution 2 方法可以忽视警告,但是这会导致程序不能调试(设置断点不起作用);我在网上找了一段时间还是没找到好的解决方案,大神,你还有没有好的解决方案?
        NikoXu:@西方失败 对app的project 做配置修改. SDK相当于已经生成的product.

      本文标题:[2016.1更新]Xcode7使用第三方库报错⚠️"

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