如今在苹果的官网上,咱们已经能够下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本,童鞋们有木有下载过来试试呢?就个人使用来讲,整体以为苹果仍是坑不断,可是也在一直进步的啦。下面我就来讲说,iOS10的适配以及Xcode8使用上的一些注意点。
web
用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,能够帮助咱们自动管理证书。建议你们勾选这个Automatically manage signing(Ps.可是在beat2版本我用的时候,彻底不能够,GM版本居然神奇的又好了。)xcode
QQ20160913-8.png-96.9kBapp
下面我来讲说可能会出现的问题:ide
1.Xcode未设置开发者帐号状况下的截图布局
QQ20160913-0.png-38.5kB学习
解决办法是:你们在Xcode的偏好设置中,添加苹果帐号,便可。字体
2.设备机器未添加进开发者的Device状况下的截图spa
QQ20160913-2.png-33.7kB插件
解决办法是:你们在官网将设备添加进开发机后,陪下描述文件从新下个描述文件便可。debug
3.正常状况:Xcode配置登陆开发者帐号后的图片,耐心等待便可。
QQ20160913-1.png-25.1kB
等待完成以后的图
QQ20160913-3.png-27kB
使用Xcode8打开xib文件后,会出现下图的提示。
QQ20160913-9.png-41.7kB
你们选择Choose Device便可。
以后你们会发现布局啊,frame乱了,只须要更新一下frame便可。以下图
QQ20160913-11.png-113.2kB
QQ20160913-12.png-32.3kB
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>这句话,以及把< document >中的toolsVersion和< plugIn >中的version改为你正常的xib文件中的值
使用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 咱们须要经过您的地理位置信息获取您周边的相关数据
定位的须要这么写,防止上架被拒。
经有的朋友提醒,发现程序内原来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);}
稍后我会更新文章,对推送作一个详细的讲解。
更新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, 在Environment Variables里边添加
OS_ACTIVITY_MODE = Disable
QQ20160914-8.png
若是写了以后仍是打印log,请从新勾选对勾,就能够解决了
Ps.考虑到添加上述内容在Xcode8后,真机调试可能出现异常,你们能够自定义一个宏定义,来作日志输出。
#ifdef DEBUG #define DDLOG(...) printf(" %s\n",[[NSString stringWithFormat:__VA_ARGS__]UTF8String]); #define DDLOG_CURRENT_METHOD NSLog(@"%@-%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) #else #define DDLOG(...) ; #define DDLOG_CURRENT_METHOD ; #endif
文/徐不一样(简书做者) 原文连接:http://www.jianshu.com/p/9756992a35ca 著做权归做者全部,转载请联系做者得到受权,并标注“简书做者”。