Xcode8以及iOS10问题总结!
Xcode8的问题
注释功能问题解决
打开终端,命令运行: sudo /usr/libexec/xpccachectl 重启电脑
在xib和stroyboard出现大量警告,需要重新适配,字体所占用宽度变大
collectionView问题
屏蔽Xcode 8“烦人”的日志输出
更新到Xcode 8的同学应该都遇到了这个问题:用Xcode 8运行项目,日志会疯狂的刷,就像下面这种图一样:
于是,简单搜寻了下,“歪果仁”给出了如下解决方法:
Edit Scheme-> Run -> Arguments, 在Environment Variables里边添加 OS_ACTIVITY_MODE = disable
这样设置之后,就屏蔽掉那些烦人的日志了。
【1】、Xcode8代 码出现ubsystem: 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, privacy_setting: 2, enable_private_data: 0 2016-09-14 17:18:55.843428 MyApp[6880:340837]
解决办法:【product】-【scheme】-【Edit Scheme】-【Run】-【Argument】-【Environment Variable】添加keyValue【OS_ACTIVITY_MODE disable】可以停止输出打印此日志
遗留问题:还会出现Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x10a39a910) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x10a1c4210). One of the two will be used. Which one is undefined.
【2】MJRefresh出现崩溃现象

解决办法:类库增加判断
|
1
2
3
|
if (range.location != NSNotFound) { language = [language substringToIndex:range.location];} |
【3】iOS10字体隐藏问题
label的话写一个扩展类
第二步
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@implementation UILabel (Extend)- (void)lableAdaptIOS10{ CGFloat iOS10 = [[UIDevice currentDevice] systemVersion].floatValue >= 10; if (iOS10) {// self UIFont 的preferredFontForTextStyle: 意思是指定一个样式,并让字体大小符合用户设定的字体大小。 [self sizeToFit];// self.font =[UIFont preferredFontForTextStyle: UIFontTextStyleHeadline]; //是否更新字体的变化// self.adjustsFontForContentSizeCategory = YES; }} |
Xcode8总是打印一堆奇怪的东西。虽然不影响开发,但是看着很不爽。解决的方法就是在Scheme里面添加OS_ACTIVITY_MODE = disable
第一步
第二步
- Xcode8打包出现的问题
- 签名出错,Xcode8可以自动替开发者生成证书描述问题

- 参考网站https://translate.googleusercontent.com/translate_c?depth=1&hl=zh-CN&prev=search&rurl=translate.google.com.sg&sl=en&u=http://stackoverflow.com/questions/37806538/code-signing-is-required-for-product-type-application-in-sdk-ios-10-0-stic&usg=ALkJrhgcKvLVlgyIWGq9xcDjdoXGh2BpPg
- 需要FQ




现在做的Xcode - >产品 - >清洁。 关闭您的项目在Xcode并再次打开它。
在此之后到您的每一个目标的常规选项卡,勾选“自动管理签名”,并在团队下拉菜单中选择您的开发者账户

- 官方网站

3.Xcode8上传项目注意事项
在Xcode8里面上传项目的话,需要注意 xcode keychain sharing的设置
上传项目失败是因为之前版本都是默认开启,在Xcode8里面默认关闭。
ERROR ITMS-90682: Invalid Bundle - The asset catalog at 'Payload/XXXXX/Assets.car' can't contain 16-bit or P3 assets if the app supports iOS 9.3 or earlier.
刚升级Xcode 8, 幺蛾子又出现了。提交的时候出了这个问题。 BTW,感谢google。以下为解决方案:‘
在 Xcode 8 中,当你资源文件中[含有16位图]或者[图片显示模式γ值为'P3'] 且iOS targets设定为iOS 9.3以下就会出现这个问题. 如果你的app需要支持广色域显示的话,那你必须得把target设置成iOS 9.3+,相反,如果你的app不需要支持广色域且你想兼容 iOS 9.3 之前的项目,你就得把所有的16位的或者显示模式为'P3'图片全都替换成8位模式的SRGB颜色的图片。
你可以通过运行“assetutil”在iTunes Connect的错误信息中找到16-bit 或 P3 资源文件。离线的解决方案如下:
1.导出项目的 ipa 文件
2.定位到该ipa文件修改后缀名.ipa 为 .zip.
3. 解压该 .zip 文件. 解压后的目录里面会有一个包含着你的 app bundle 文件的 Payload 文件夹.
4. 打开终端病切换到你的app的Payload文件夹下的 .app bundle 文件夹内,形式如下:
cd path/to/Payload/your.app
5. 用 find 命令定位到 Assets.car 文件 .app bundle , 形式如下:
find . -name 'Assets.car'
6. 使用 assetutil 命令找到任何包含着 16-bit or P3 的资源文件, 对每个 Assets.car 之行以下命令 :
sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json
注:这里的/path/to/a/Assets.car 指的是Assets.car的路径,不要直接复制!!!使用上一步find命令的结果。
------------------2016-09-21更新----------------------------

-------------------end of the update--------------------------
7. 打开上一步生成的 /tmp/Assets.json 文件并查找包含有 “DisplayGamut": “P3” 或者相关的内容. 这段json的"Name"字段对应的值就是16位或显示的γ值为P3的资源文件名.

8. 找到这个资源文件修改为 8位的sRGB形式,重新编译上传你的app即可.
iOS10 配置须知
在iOS10中,如果你的App想要访问用户的相机、相册、麦克风、通讯录等等权限,都需要进行相关的配置,不然会直接crash。
需要在info.plist中添加App需要的一些设备权限。NSBluetoothPeripheralUsageDescription
访问蓝牙NSCalendarsUsageDescription
访问日历NSCameraUsageDescription
相机NSPhotoLibraryUsageDescription
相册NSContactsUsageDescription
通讯录NSLocationAlwaysUsageDescription
始终访问位置NSLocationUsageDescription
位置NSLocationWhenInUseUsageDescription
在使用期间访问位置NSMicrophoneUsageDescription
麦克风NSAppleMusicUsageDescription
访问媒体资料库NSHealthShareUsageDescription
访问健康分享NSHealthUpdateUsageDescription
访问健康更新NSMotionUsageDescription
访问运动与健身NSRemindersUsageDescription
访问提醒事项从2017年1月1日起,强制使用https,所有新提交的 app 默认不允许使用NSAllowsArbitraryLoads来绕过ATS的限制 安全传输不再支持SSLv3, 建议尽快停用SHA1和3DES算法
1.iOS10不能真机调试的解决方法
很多人从Xcode7升级到了Xcode8,发现一个棘手的问题,那就是真机不能进行调试。
我也遇到了,用DaisyDisk查目录的时候发现在Xcode文件夹下的的DeviceSupport里
面没有iOS10的SDK。
解决方案:用Find 或是 daisydisk打开Xcode的路径。路径如下
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
如果在该文件夹下有iOS10SDK那就直接放到对应文件夹下面
如果没有,就去下载iOS10SDK点击下载2.OpenUrl使用方法被废弃
在iOS10版本之前,直接使用[[UIApplication sharedApplication] openURL方法就跳转指定网页和链接
目前已经在iOS10已经被废弃
4.编译器Xcode8新建项目的工程配置
注意:在Xcode8工程配置的general选项卡中,使用更详细signing选项替换了原有的team选项。
使用Xcode8打开工程后,项目的provisonfile配置出了问题
进入工程之后选中你的项目文件依次点击:project
target
general
查看并进行手动配置。
6.判断系统版本
在iOS10中读取不到iOS10的系统版本
简单的操作就能判断是否是iOS10:
if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){.majorVersion = 9, .minorVersion = 1, .patchVersion = 0}]) { NSLog(@"Hello from > iOS 9.1");}
if ([NSProcessInfo.processInfo
isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){9,3,0}]) {
NSLog(@"Hello from > iOS 9.3");}if (NSFoundationVersionNumber >
NSFoundationVersionNumber_iOS_9_0) { // do stuff for iOS 9 and newer}
else { // do stuff for older versions than iOS 9}7.UILable的文字显示问题
在iOS10中字体发生了变化,这导致一些文字在原有的宽高约束下可能会出现显示不完整或者留白的情况
需要在工程中测试并逐一排查,比较费时,但是只能这么做。
8.安全传输协议
在iOS 10 中info.plist文件新加入了NSAllowsArbitraryLoadsInWebContent键,允许任意web页面加载,苹果
会用 ATS 来保护你的app,安全传输不支持SSLv3。
Xcode8以及iOS10问题总结!的更多相关文章
- Xcode8与iOS10那些事
一.证书管理 用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,可以帮助我们自动管理证书.建议大家勾选这个Automatically manage signing(Ps.但是在bea ...
- 关于Xcode8.1 / iOS10+ 真机测试系统打印或者宏定义打印不显示问题
前言: 最近做项目时遇到了很多莫名其妙的问题,其中就有这个打印(NSLog).也不多废话了,我们先来回顾一下Xcode8发布以来,我们遇到的一些关于打印的问题,当然也有解决方法: 1.Xcode8打印 ...
- Xcode8 及iOS10适配问题汇总
上点干货,目前得知的一些bug解决汇总:iOS10相册相机闪退bughttp://www.jianshu.com/p/5085430b029fiOS 10 因苹果健康导致闪退 crashhttp:// ...
- Xcode8+和iOS10+使用Masonry自动计算行高
说起tableView的自动计算行高,真的是不想再提了,写了不知道几百遍了.可就是这麽一个小玩意儿,把我给难的不行不行的,眼看都要没头发了. 1.设置tableView的预估行高和行高为自动计算 // ...
- Xcode8开发iOS10推送通知过程
iOS10发布后,简书优先开发增加了iOS10的新通知.本文分享整个feature的开发过程遇到的问题. 1.工程配置 Xcode8发生了很大的变化,直接打开原来的工程编译运行,这个时候是获取不到Pu ...
- Xcode8 适配iOS10时遇见的一些问题
1.证书管理 用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,可以帮助我们自动管理证书.建议大家勾选这个Automatically manage signing(Ps.但是在bea ...
- Xcode8和iOS10的适配问题
本文转自:http://www.jianshu.com/p/90d5323cf510 =================== 一.遇到的问题 1.权限以及相关设置 iOS10系统下调用系统相册.相机功 ...
- xCode8以及iOS10 的新特性
其他:ios10中 适配问题(1.系统判断方法失效:2.隐私数据的访问问题:3.UIColor 问题4.真彩色的显示5.ATS问题6.UIStatusBar问题7.UITextField8.UserN ...
- 升级Xcode8、iOS10问题记录
1.webView的代理方法: 升级前: - (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)e ...
随机推荐
- SQL分页查询,纯Top方式和row_number()解析函数的使用及区别
听同事分享几种数据库的分页查询,自己感觉,还是需要整理一下MS SqlSever的分页查询的. Sql Sever 2005之前版本: select top 页大小 * from 表名 where i ...
- 安装thrift
要求 thrift至少需要支持三种语言: Java PHP Go 预安装 基本教程: http://thrift.apache.org/docs/install/centos 使用最新的thrift, ...
- qml基础学习 基础概念
一.概括 学习qt已有2年多的时间,从qt4.7开始使用直到现在正在使用的qt5.6,基本都在windows机器上做开发.最近有意向看了下qt的qml部分,觉着还是挺不错的,毕竟可以做嵌入式移动端产品 ...
- PHP开发知识
基本职能 服务器端开发-PHP,主要使用语言是PHP,主要是服务端工程师. 具体要求 对PHP达到熟悉的程度:熟读PHP手册,掌握开发的小技巧. 学习和研究PHP内核. 设计模式,缓存,存储 深远价值 ...
- JavaScript基础插曲—获取标签,插入元素,操作样式
Js基础 1:document.write() 这个是动态创建元素内容,利用js.这个可以利用js来创建元素,文本,标签等,document.write()与document.writeln()的区别 ...
- [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [三] 配置式爬虫
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 上一篇介绍的基本的使用方式,虽然自由度很高,但是编写的代码相对还是挺多.于是框 ...
- html5画布的旋转效果
keleyi.htm的代码如下: <!DOCTYPE HTML> <html> <head> <title>html旋转画布-柯乐义</title ...
- CPU介绍
CPU内核主要分为两部分:运算器和控制器. (一) 运算器 cpu基本想到的是计算,因此有算数计算,还有逻辑计算单元以及移位简单的运算:fp运算单独拿出:要运算就需要输入数字,因此有寄存器组,即通用寄 ...
- Web前端:HTML~CSS~JS
网页主要由3部分组成:结构.表现.行为.目前网页的新标准是W3C,模式是HTML.CSS.JavaScript,这是前端开发最核心的3个技术.前2个技术的最新版本分别为HTML5.CSS3. “HT ...
- 【C#进阶系列】20 异常和状态管理
异常就是指成员没有完成它的名称所宣示的行动. public class Girl { public string Name { get; set; } } public class Troy{ Gir ...