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问题总结!的更多相关文章

  1. Xcode8与iOS10那些事

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

  2. 关于Xcode8.1 / iOS10+ 真机测试系统打印或者宏定义打印不显示问题

    前言: 最近做项目时遇到了很多莫名其妙的问题,其中就有这个打印(NSLog).也不多废话了,我们先来回顾一下Xcode8发布以来,我们遇到的一些关于打印的问题,当然也有解决方法: 1.Xcode8打印 ...

  3. Xcode8 及iOS10适配问题汇总

    上点干货,目前得知的一些bug解决汇总:iOS10相册相机闪退bughttp://www.jianshu.com/p/5085430b029fiOS 10 因苹果健康导致闪退 crashhttp:// ...

  4. Xcode8+和iOS10+使用Masonry自动计算行高

    说起tableView的自动计算行高,真的是不想再提了,写了不知道几百遍了.可就是这麽一个小玩意儿,把我给难的不行不行的,眼看都要没头发了. 1.设置tableView的预估行高和行高为自动计算 // ...

  5. Xcode8开发iOS10推送通知过程

    iOS10发布后,简书优先开发增加了iOS10的新通知.本文分享整个feature的开发过程遇到的问题. 1.工程配置 Xcode8发生了很大的变化,直接打开原来的工程编译运行,这个时候是获取不到Pu ...

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

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

  7. Xcode8和iOS10的适配问题

    本文转自:http://www.jianshu.com/p/90d5323cf510 =================== 一.遇到的问题 1.权限以及相关设置 iOS10系统下调用系统相册.相机功 ...

  8. xCode8以及iOS10 的新特性

    其他:ios10中 适配问题(1.系统判断方法失效:2.隐私数据的访问问题:3.UIColor 问题4.真彩色的显示5.ATS问题6.UIStatusBar问题7.UITextField8.UserN ...

  9. 升级Xcode8、iOS10问题记录

    1.webView的代理方法: 升级前: - (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)e ...

随机推荐

  1. html/css基础篇——GET和POST的区别

    本文前面部分转自木-叶的博文,后面有本人自己的一些总结和体会. 如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题.我说GET是用于获取数据的,POST,一般 ...

  2. SQL Server安全(4/11):许可(Permissions)

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...

  3. Java魔法堂:类加载器入了个门

    一.前言 <Java魔法堂:类加载机制入了个门>中提及整个类加载流程中只有加载阶段作为码农的我们可以入手干预,其余均由JVM处理.本文将记录加载阶段的核心组件——类加载器的相关信息,以便日 ...

  4. IIS发布网站遇到的异常

    1.0 HTTP 错误 401.3 - Unauthorized由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面.详细错误信息模块 IIS Web Core通 ...

  5. javascript类型注意事项

    以下是javascript类型的注意事项: null:表示尚未存在的对象,注意,尽管尚未存在,也是个对象啊,所以用typeof检测一个null值变量的结果是Object:不过,为了便于写if语句,在j ...

  6. 【SQL】小心字符串拼接导致长度爆表

    请看代码: DECLARE @max VARCHAR(max) SET @max='aaa...' --这里有8000个a +'bb' --连接一个varchar常量或变量 SELECT LEN(@m ...

  7. jquery属性选择器(匹配具有指定属性的元素)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 清除svn账户账号密码

    1. 2. 3. 4. 5.再次访问时,会弹出要求输入用户名和密码:只是清除记住的用户名和密码.

  9. 纯灌水Linus主义

    卖桃君重新整理了Linus的相关故事,在此摘选对自己有触动的内容. 关于生命的意义,李纳斯的解释是,有三件事具有生命的意义.它们是你生活当中所有事情的动机.第一是生存,第二是社会秩序,第三是娱乐.生活 ...

  10. Oracle数据库,序列、索引、视图

    一.序列:生成自动增长(或减少)的整数值 Sequences中新建 调取: th_test.nextval 获取下一个值 th_test. currval获取当前值 二.视图:在物理表的基础上定义的虚 ...