升级了Xcode8,然后各种不爽,因为变动还是比较多的,我将列出Xcode8的一些新特新和开发过程中会遇到的一些问题:
1.快捷键 cmd+/注释不可用的问题:
因为苹果为了解决xcode ghost(一种手机病毒),把插件屏蔽了。
解决方法:
(1)打开终端,输入命令行: sudo /usr/libexec/xpccachectl ,接着重启Xcode或者电脑。
(2)开启Xcode8内置的注释功能,如图:
全面的快捷键设置请找到这里: Xcode -> Preferences -> Key Bindings
***********华丽的分割**********
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
】
***********华丽的分割**********
3.如果项目中包含证书
证书内包含的Id必须与 bundle Id保持一致才行,开发者team账号必须创建了该 bundle Id对应的证书,就是说不是所有的苹果账号都能真机测试了(这里说的是项目中有证书的前提下)
***********华丽的分割**********
4.使用Xcode8创建新项目
会让你选择开发者team为了自动生成对应的证书。在新老项目的General中也可以对签名进行设置,勾选自动管理证书(可选的),Xcode会自动替你生成调试证书和描述问题,证书与描述文件有效期为6天,避免了大量的垃圾冗余证书占用问题。
***********华丽的分割**********
使用Xcode8之后,有些代码可能就编译不过去了。
例如UIWebView的代理方法:
要删除NSError前面的 nullable,否则报错。
- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error
{
[self hideHud]; }
***********华丽的分割**********
6.之前两个汉字占用24宽度,现在占用27了,导致部分UI可能需要重新适配; 或者判断下当前系统版本,如果>=10.0,就让需要适配的控件调用 sizetofit 方法.
***********华丽的分割**********
麦克风权限: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左右... 点击查看解决方法
更新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 勾选上 ,如果还是打印无关日志,重新勾选。
***********华丽的分割**********