http://blog.csdn.net/jnbbwyth/article/details/52576169

http://www.cocoachina.com/ios/20161227/18451.html

升级Xcode8已是必然,升级iOS 10的用户不能说大有人在,应该也不会少,楼主听说,如果不升级Xcode8,上架最新的包,那么可能应用在iOS 10 上是不支持的.so,这些Xcode8的新特性,你应该了解!!!

1.快捷键  command + /   注释失效;

解决方法1: Xcode -> preferences -> key bindings 中的comment selection 是否设置上快捷键了

解决方法2: 第四个问题详解

2.Xcode8支持iOS 8以下真机测试方法:

  • 应用程序-Xcode 显示包内容-Contents-Developer-Platforms-iPhoneOS.platform-DeviceSupport 把里边 6.0 6.1 7.0 7.1 的文件夹粘贴到xcode8 对应的文件夹内

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

3.如果项目中包含证书

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

4.使用Xcode 8创建新项目

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

5.- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error;  变成了- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

6.版本target 从8.0 起步了

但是老代码的7.1 用Xcode8 打开还是显示7.1,可以手写输入7.1,仍然管用.

7.之前两个汉字占用24宽度,现在占用27了

导致部分UI可能需要重新适配; 或者判断下当前系统版本,如果>=10.0,就让需要适配的控件调用  sizetofit  方法.

8.权限

* 麦克风权限: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 我们需要通过您的地理位置信息获取您周边的相关数据

9.MJRefresh iOS10的系统上每次下拉刷新后没办法完全恢复Normal 状态  Y轴距离上总是相差20左右...(楼主个人也使用的MJ,表示暂时没有发现这个问题)
解决方案

10.Itunes Connect上传遇到问题,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."

解决方法一  解决方法二

11.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.'

12.新增了CAAnimationDelegate,之前使用CAAnimation的文件需要强制添加代理

13.上架苹果商店,如果上传了ipa,但是在提交的时候构建版本的地方没有?,那么请确定你应用中的权限是否已经添加,添加的权限描述是否填写,推送是否已经开启(视情况而定);

14.教你如何科学的在Xcode8上使用插件

转自:AME_时雨 链接

好文推荐一

Xcode8的一些变动

内含:

证书管理/xib注意事项/代码及Api注意/代码注释不能用的解决办法/权限以及相关设置 6.字体变大,原有frame需要适配 7.推送 8.屏蔽杂乱无章的bug

好文推荐二

更新Xcode8的小伙伴是不是崩的不要不要的

iOS 10相册相机闪退bug
iOS 10 因苹果健康导致闪退 crash
麦克风、多媒体、地图、通讯录
iOS 10相机等崩溃
iOS 10 配置须知
iOS开发 适配iOS 10以及Xcode8

好文推荐三

iOS 10 推送须知

好文推荐四

Xcode8新特性和坑

好文推荐五

iOS 10 不log

一、证书管理

用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,可以帮助我们自动管理证书。建议大家勾选这个Automatically manage signing(Ps.但是在beat2版本我用的时候,完全不可以,GM版本竟然神奇的又好了。)

QQ20160913-8.png-96.9kB

下面我来说说可能会出现的问题:

1.Xcode未设置开发者账号情况下的截图

QQ20160913-0.png-38.5kB

解决办法是:大家在Xcode的偏好设置中,添加苹果账号,即可。

2.设备机器未添加进开发者的Device情况下的截图

QQ20160913-2.png-33.7kB

解决办法是:大家在官网将设备添加进开发机后,陪下描述文件重新下个描述文件即可。

3.正常情况:Xcode配置登录开发者账号后的图片,耐心等待即可。

QQ20160913-1.png-25.1kB

等待完成之后的图

QQ20160913-3.png-27kB

二、Xib文件的注意事项

使用Xcode8打开xib文件后,会出现下图的提示。

QQ20160913-9.png-41.7kB

大家选择Choose Device即可。
之后大家会发现布局啊,frame乱了,只需要更新一下frame即可。如下图

QQ20160913-11.png-113.2kB
  • 注意:如果按上面的步骤操作后,在用Xcode7打开Xib会报一下错误,

QQ20160913-12.png-32.3kB
  • 解决办法:需要删除Xib里面

    <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>

    这句话,以及把< document >中的toolsVersion和< plugIn >中的version改成你正常的xib文件中的值
    ,不过不建议这么做,在Xcode8出来后,希望大家都快速上手,全员更新。这就跟Xcode5到Xcode6一样,有变动,但是还是要尽早学习,尽快适应哟!

三、代码及Api注意

使用Xcode8之后,有些代码可能就编译不过去了,具体我就说说我碰到的问题。
1.UIWebView的代理方法:
**注意要删除NSError前面的 nullable,否则报错。

- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error
{
[self hideHud];
}

四、代码注释不能用的解决办法

这个是因为苹果解决xcode ghost,把插件屏蔽了。
解决方法
打开终端,命令运行: sudo /usr/libexec/xpccachectl
然后必须重启电脑后生效

注意:Xcode8内置了开启注释的功能,位置在这里

QQ20160914-3.png

快捷键的设置在这里

QQ20160914-2.png

貌似Xcode8取消了三方插件的功能,具体可以查阅下Xcode8 Source Editor

五、权限以及相关设置

注意,添加的时候,末尾不要有空格
我们需要打开info.plist文件添加相应权限的说明,否则程序在iOS10上会出现崩溃。
具体如下图:

QQ20160914-0.png

麦克风权限: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 我们需要通过您的地理位置信息获取您周边的相关数据
定位的需要这么写,防止上架被拒。

六、字体变大,原有frame需要适配

经有的朋友提醒,发现程序内原来2个字的宽度是24,现在2个字需要27的宽度来显示了。。
希望有解决办法的朋友,评论告我一下耶,谢谢啦

七、推送

如下图的部分,不要忘记打开。所有的推送平台,不管是极光还是什么的,要想收到推送,这个是必须打开的哟✌️

QQ20160914-4.png

之后就应该可以收到推送了。另外,极光推送也推出新版本了,大家也可以更新下。

PS.苹果这次对推送做了很大的变化,希望大家多查阅查阅,处理推送的代理方法也变化了。

// 推送的代理
[<UNUserNotificationCenterDelegate>]

iOS10收到通知不再是在
[application: didReceiveRemoteNotification:]方法去处理, iOS10推出新的代理方法,接收和处理各类通知(本地或者远程)

- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler { //应用在前台收到通知 NSLog(@"========%@", notification);}- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler { //点击通知进入应用 NSLog(@"response:%@", response);}

稍后我会更新文章,对推送做一个详细的讲解。

8.屏蔽杂乱无章的bug

更新Xcode8之后,新建立工程,都会打印一堆莫名其妙看不懂的Log.
如这些

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 = Disable

如果写了之后还是打印log,请重新勾选对勾,就可以解决了

 
6

Xcode8遇到的问题及解决方案!!!的更多相关文章

  1. CocoaChina(总结)升级到xcode8遇到的问题及解决方案

    此总结由CocoaChina论坛版主wo709128079及广大坛友共同汇总.>>查看原帖 升级Xcode8已是必然,升级iOS 10的用户不能说大有人在,应该也不会少,楼主听说,如果不升 ...

  2. Xcode8 注释快捷键无效, 解决方案

    这个是因为苹果解决xcode ghost.把插件屏蔽了.解决方法命令运行: sudo /usr/libexec/xpccachectl 然后必须重启电脑后生效    

  3. Xcode8 NSLog打印json不完整的解决方案

    解决方案:自定义宏,通过fprintf函数打印log,完美解决! #ifdef DEBUG #define NSLog(FORMAT, ...) fprintf(stderr, "%s:%z ...

  4. xcode8.0升级之后公司项目遇到的问题

    xcode8升级之后项目遇到了问题,由于这个项目是我中途接手的,遇到的第三方也是自己没有用过的, AQGridViewCell,这个第三方的类主要是用于处理图片的问题,xcode开发工具升级过后,报这 ...

  5. 让你的 Xcode8 继续使用插件

    发表于 2016-09-10   |   分类于 Tips   |   21条评论   |   阅读次数 8383 随着 iOS10 的正式版即将发布,Xcode8 GM 也在发布会后放出,本文不会涉 ...

  6. Xcode8 适配iOS10时遇见的一些问题

    1.证书管理 用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,可以帮助我们自动管理证书.建议大家勾选这个Automatically manage signing(Ps.但是在bea ...

  7. 关于升级xcode8

    升级xcode8已是必然,升级ios10的用户不能说大有人在,应该也不会少,如果不升级xcode8,上架最新的包,那么可能应用在ios10 上是不支持的.so,这些xcode8的新特性,你应该了解!! ...

  8. Xcode8更新CocoaPods报错解决办法

    Apple发布了iPhone7同时也发布了xcode8,第一时间升级,并且用Xcode8集成cocoapods但是打开工程,会报一大堆错误解决这个问题
由于OSX的安全解决方案,所以默认路径不能安装, ...

  9. Xcode8以及iOS10问题总结!

    Xcode8的问题 注释功能问题解决 打开终端,命令运行: sudo /usr/libexec/xpccachectl 重启电脑 在xib和stroyboard出现大量警告,需要重新适配,字体所占用宽 ...

随机推荐

  1. vagrant网站中box下载方法

    假设需要下载Laravel/homestead这个包. 首先定位到地址:https://app.vagrantup.com/laravel/boxes/homestead/versions/8.0.0 ...

  2. npm 安装vue 报错Failed at the chromedriver@2.34.0 install script 'node install.js'

    提示版本不够,后来百度到,在你的vue项目包下执行: npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/ ...

  3. OpenCASCADE 7.4.0 Released

    Open Cascade is pleased to announce a new public release of Open CASCADE Technology (version 7.4.0). ...

  4. Cesium官方教程7--三维模型

    原文地址:https://cesiumjs.org/tutorials/3D-Models-Tutorial/ 三维模型 (3D Models) 这篇教程给大家介绍,如何在Cesium中通过Primi ...

  5. Flask ——路由系统

    Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...

  6. java基础之Integer包装类

    Integer类概述: Integer 类在对象中包装了一个基本类型 int 的值 该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他 ...

  7. <每日一题>题目16:简单的python练习题(1-10)

    #1.python程序中__name__的作用是什么? __name__这个系统变量用来表示程序的运行方式. 如果程序在当前膜快运行,__name__的名称就是__main__, 如果不在(被调用), ...

  8. 使用Geomagic处理点云一般步骤

    Geomagic处理几百万级数量点云一般处理步骤:     这只是一般的步骤, 对于处理结果要求不高的操作过程:高手请自行略过: 也许Geomagic的版本不同,但操作一般都是一样的顺序:  操作步骤 ...

  9. 长按触发(PC端和移动端)

    $.fn.longPress = function(fn) { var timeout = undefined; var $this = this; for(var i = 0;i<$this. ...

  10. Java的跨平台特性

    语言跨平台是编译后的文件跨平台,而不是源程序跨平台.Java源代码首先经过编译器生成字节码,即class文件,该class文件与平台无关,而class文件经过解释执行之后翻译成最终的机器码,这是平台相 ...