ios雷区总结

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()

ios雷区总结_第1张图片

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.

ios雷区总结_第2张图片

解决方法编辑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

ios雷区总结_第3张图片

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


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

目录

1. 真机测试

2. 上传ipa错误

3. AppStore被拒

4. 其它

你可能感兴趣的:(ios雷区总结)