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 ...
随机推荐
- RegularHelper
private const string m_NumberPattm = @"^[-+]?(0{1}|(([1-9]){1}[0-9]{0,6}))?$"; private con ...
- 开源的即时通讯框架 (endv.cn) (一)
先实现几个常用基本功能, 1.富文本编辑器.文字的发送与接收 2.表情选择.插入.发送.读取 3.截图的插入.发送.接收 4.视频的获取.发送.接收 5.内存垃圾回收 客户端模拟服务端发送与接收 源码 ...
- Winform开发框架中实现信息阅读状态的显示和存储
在很多项目中,可能会有要求对一些数据的阅读状态进行记录,用户阅读过或者未阅读过,都做不同的标识,方便了解数据的状态.如在我的客户关系管理系统中,对于客户的状态进行跟踪,如果最近联系时间超过配置天数的, ...
- 十条jQuery代码片段助力Web开发效率提升
JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Oper ...
- unity3d引擎的学习
1.在project里面建立一个Editor文件夹,并在其下面放置配置某个游戏物体X的脚本,就可以在游戏物体那一栏里面新建该游戏物体X. 2.将一个游戏物体B放到某个游戏物体F下,点击Reset po ...
- exception throw in progress runner thread_VS2015中SVN源代码无说明提交异常
1-问题描述:通过SVN将代码变更提交服务器时,你可能会遇到以下异常: exception throw in progress runner thread 2-解决办法: SVN代码源代码管理和TF ...
- javascript定时器,取消定时器,及js定时器优化方法
通常用的方法: 启动定时器: window.setInterval(Method,Time) Method是定时调用的js方法 Time是间隔时间,单位是毫秒 取消定时器: clearInterval ...
- MVC之前的那点事儿系列
MVC之前的那点事儿系列,是笔者在2012年初阅读MVC3源码的时候整理的,主要讲述的是从HTTP请求道进入MVCHandler之前的内容,包括了原创,翻译,转载,整理等各类型文章,当然也参考了博客园 ...
- Access数据导入SQLServer2008R2
环境:office Access 2010+SQLServer2008R2+Windows Server 2008R2 方式:Transact-SQL 方法: 1. 在SQL SERVER里查询acc ...
- 导出Excel文件(针对Dev)
文件类: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System. ...