使用Xcode8遇到的问题以及解决方案

升级了Xcode8,然后各种不爽,因为变动还是比较多的,我将列出Xcode8的一些新特新和开发过程中会遇到的一些问题:

1.快捷键 cmd+/注释不可用的问题:

因为苹果为了解决xcode ghost(一种手机病毒),把插件屏蔽了。

解决方法:

(1)打开终端,输入命令行: sudo /usr/libexec/xpccachectl ,接着重启Xcode或者电脑。

(2)开启Xcode8内置的注释功能,如图:

使用Xcode8遇到的问题以及解决方案_第1张图片

全面的快捷键设置请找到这里: Xcode -> Preferences -> Key Bindings 

使用Xcode8遇到的问题以及解决方案_第2张图片


***********华丽的分割**********

2.如果需要在Xcode8上支持iOS8以下真机测试方法:

(1).应用程序-xcode显示包内容-Contents-Developer-Platforms-iPhoneOS.platform-DeviceSupport把里边6.06.17.07.1的文件夹粘贴到xcode8对应的文件夹内

(2).应用程序-xcode显示包内容-Contents-Developer-Platforms-iPhoneOS.platform-Developer-SDKs-iPhoneOS.sdk-SDKSettings.plist文件下DefaultProperties - DEPLOYMENT_TARGET_SUGGESTE...该数组中添加6.06.17.07.1对应的测试版本,(注意:如果你的文件是只读模式的,那么是不能修改的,你需要把Contents-Developer-Platforms-iPhoneOS.platform-Developer-SDKs-iPhoneOS.sdk-SDKSettings.plist这些文件的只读模式都改成读写模式)这个版本排序一定要是从小到大,直接把小的添加到下面是不管用的,必须把小的拖到最上边.这个时候退出你的Xcode,然后重新启动,你就会发现ios8.0以下的真机也可以正常测试了。(感谢网友分享此方法)

【PS:还是有很多开发者使用的xcode7,然而xcode7...最多支持iOS9.3,无法给升级到10.0以上的iPhone手机用户进行真机测试。解决办法就是下载一个配置包,配置后重启电脑即可。点此下载配置包文件。配置方法:第一步,解压下载的zip文件配置包。第二步:将解压后的配置包拷贝进目录:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

使用Xcode8遇到的问题以及解决方案_第3张图片


***********华丽的分割**********

3.如果项目中包含证书

证书内包含的Id必须与 bundle Id保持一致才行,开发者team账号必须创建了 bundle Id对应的证书,就是说不是所有的苹果账号都能真机测试了(这里说的是项目中有证书的前提下)


***********华丽的分割**********


4.使用Xcode8创建新项目

会让你选择开发者team为了自动生成对应的证书。在新老项目的General中也可以对签名进行设置,勾选自动管理证书(可选的)Xcode会自动替你生成调试证书和描述问题,证书与描述文件有效期为6天,避免了大量的垃圾冗余证书占用问题。


***********华丽的分割**********


5.代码及Api注意

使用Xcode8之后,有些代码可能就编译不过去了。
例如UIWebView的代理方法:
要删除NSError前面的 nullable,否则报错。

- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error

{
    [self hideHud]; }
 
***********华丽的分割********** 
 
6.之前两个汉字占用24宽度,现在占用27了,导致部分UI可能需要重新适配; 或者判断下当前系统版本,如果>=10.0,就让需要适配的控件调用  sizetofit  方法.
 
***********华丽的分割********** 
 
 
  
7.权限:

麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风?

相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?

相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库?

通讯录权限: Privacy - Contacts Usage Description 是否允许此App访问你的通讯录?

蓝牙权限:Privacy - Bluetooth Peripheral Usage Description 是否许允此App使用蓝牙?

语音转文字权限:Privacy - Speech Recognition Usage Description 是否允许此App使用语音识别?

日历权限:Privacy - Calendars Usage Description 是否允许此App使用日历?

定位权限:Privacy - Location When In Use Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据

定位权限: Privacy - Location Always Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据

***********华丽的分割**********

8.MJRefresh iOS10的系统上每次下拉刷新后没办法完全恢复Normal 状态  Y轴距离上总是相差20左右... 点击查看解决方法
***********华丽的分割**********
9.ItunesConnect上传遇到问题,ERROR ITMS-90682: "Invalid Bundle. The asset catalog at 'Payload/ElitePlus.app/Assets.car' can't contain 16-bit or P3 assets if the app is targeting iOS releases earlier than iOS 9.3."   点此查看解决方法
***********华丽的分割**********
10.iOS 10 因苹果健康导致闪退 crash   点此查看原文链接
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'NSHealthUpdateUsageDescription must be set in the app's Info.plist in order to request write authorization.'
***********华丽的分割**********
11.新增了CAAnimationDelegate  ,之前使用CAAnimation的文件需要强制添加代理
***********华丽的分割**********
12.屏蔽杂乱无章的bug

更新Xcode8之后,跑项目的时候,都会打印一堆莫名其妙看不懂的日志.
subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1,

屏蔽的方法:

Xcode8里边 Edit Scheme-> Run -> Arguments, 或者用快捷键打开:ctrl+shift+<,在Environment Variables里边添加

OS_ACTIVITY_MODE value值:Disable 勾选上 ,如果还是打印无关日志,重新勾选。

***********华丽的分割**********

13.如果是Xcode8创建的项目,xib在Xcode7中打不开,解决方法就是:在Xcode8中打开xib,按图中的操作之后保存关闭,再在Xcode7中打开就可以了。
使用Xcode8遇到的问题以及解决方案_第4张图片
14.文章推荐:转自 点此查看

你可能感兴趣的:(iOS)