iOS14适配和Xcode12模拟器运行兼容

Xcode12适配

Xcode12模拟器跑不通,需要做以下修改

  1. Xcode12把valid Architecture去掉了

    需要在user-Defined的EXLUDED_ARCHS的dug下加上Any iOS Simulator SDK值是arm64
  2. 如果项目使用了cocoapods需要在项目的Podfile里面添加代码段,然后执行pod install
post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end

pod install之前记得先把Podfile.lock文件删掉。
也可以在项目的Podspec文件里面添加

s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }

由于我自己项目以前没有创建Podspec文件,就直接在Podfile里面修改了

iOS14适配

  1. PhotosUI Frameworks下增加了PHPicker
    iOS14使用PHPicker代替原来的UIImagePickerController选择图片,可以去看下官方文档PHPicker

    如果您的项目中就是简单的使用系统的图片选择器,没有去请求照片权限,可以先不用去管这次的iOS14的这部分功能更新。
    如果您使用了请求照片权限可以参考下淘宝技术团队写的这篇文章。
  2. 定位更新
    iOS14把定位分成了模糊定位,精准定位。
  3. UITabViewCell
    iOS14推荐使用[UITabViewCell.contentView addSubview:],不推荐使用[UITabViewCell addSubview:],网络搜索了下有人说是会让视图事件响应失效,但是自己试下没出现问题(Xcode12.0,iOS14,iPhone11),不过还是建议尽快改成[UITabViewCell.contentView addSubview:]的形式。
  4. IDFA变化

    iOS14之前IDFA系统会默认为用户开启允许追踪设置,我们可以简单的获取到用户的 IDFA 标识符,iOS14之后IDFA系统会默认关闭广告,需要我们自己去请求开启(最近更新的iOS14,iOS14.1系统IDFA开关都还是默认开启的,正式开关关闭应该是延后了,大家可以视情况而定进行这部分的兼容)

    上面列举了我自己项目中用到的更新,其他的更详细的内容可以去官方文档上仔细看下

你可能感兴趣的:(iOS14适配和Xcode12模拟器运行兼容)