美文网首页
ios雷区总结

ios雷区总结

作者: 白如昼 | 来源:发表于2019-02-21 13:38 被阅读0次

    XCode10和iOS12使用过程中遇到的问题:

    1.libc++和libstdc++

    项目用到了c++,依赖了libstdc++.6.0.9.tbd,导致整个工程编译不通过,原因是苹果在XCode10和iOS12中移除了libstdc++这个库,由libc++这个库取而代之,苹果的解释是libstdc++已经标记为废弃有5年了,建议大家使用经过了llvm优化过并且全面支持C++11的libc++库。

    "libc++" C++ Standard Library

    libc++和libstdc++

    接下来更新这个库就好了,TARGETS—>Build Phases—>Link Binary With Libraries()

    stdc++.6.0.9

    直接删除,然后添加libc++解决。

    更多详情查看Xcode10和iOS12适配

    链接:https://www.jianshu.com/p/96cc59f42f92

    2.Xcode 10默认使用的构建系统是新的构建系统与Xcode9不同导致。

    第一种方法不修改构建系统分析

    构建错误日志,错误发生在Copy Pods Resources,而且与output有关,应该是使用了cocoapods导致的,尝试删除该项目target-Copy Pods Resources-Output Files,成功解决问题。

    第二种方法修改构建系统

    在Xcode菜单栏 - >文件 - >工作区设置,将构建系统修改为遗留构建系统,然后干后编译。

    链接:https://www.jianshu.com/p/8a8444acdca5

    追根到低,新构建系统与旧构建系统的区别?

         1.Xcode 10 的新构建系统对于包之间依赖以及名称冲突的检测更加严格了,避免循环依赖

       详细解释参考:https://www.sohu.com/a/258526559_487516

    3.libMobileGestalt MobileGestalt.c:550: MGIsDeviceOneOfType is not supported on this platform.

    解决方法编辑Scheme-> Run - > Arguments,在Environment Variables里边添加

    OS_ACTIVITY_MODE =禁用

    屏蔽这些打印。

    错误参考:https://www.jianshu.com/p/e01e2512c12b

    4.could not read data from '/Users/xxxx/xxxx/Info.plist': The file “Info.plist” couldn’t be opened

    对工程中的文件夹以及文件移动了位置。我把Info.plist文件放到其他路径下边了。所以导致Xcode找不到Info.plist文件。

    1. 把Info.plist文件放回原处,也就是工程根目录下边,这个解决办法比较简单,我就不再图文说明了。下边着重说第二种。

    2. 修改工程默认的Info.plist文件路径位置。首先第一步找到写Info.plist文件路径的位置,因为Info.plist属于工程文件,所以要去工程的Build Settiings下边寻找。

    很容易在第一页Packaging下边有一个Info.plist File选项,后边有一个路径,如图所示:

    $(SRCROOT)/+项目名+移动到的文件夹/Info.plist

    $(SRCROOT)/CellTest/Supporting Files(支持文件)/Info.plist

    详细参考:
    https://blog.csdn.net/crazyzhang1990/article/details/53141303

    参考:https://www.jianshu.com/p/b44f61c45817

    目录

    1. 真机测试

    2. 上传ipa错误

    3. AppStore被拒

    4. 其它

    相关文章

      网友评论

          本文标题:ios雷区总结

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