iOS10适配(必看)

一.工程改动

1. 工程配置

直接使用Xcode8Beta打开工程后,你会发现你的provisonfile配置出了问题,这是由于在Xcode8中对工程配置有了一些小的改动。

在Xcode8工程配置的general选项卡中,使用更详细signing选项替换了原有的team选项。

选中:project -> target -> general

Xcode8之前team选项

Xcode8之前provisionfile选项

Xcode8之后变更为signing选项

2. swift版本

假如你Xcode7的工程中使用了swift,那么你使用Xcode8一打开工程就会出现下面的选项,选择convert:

选convert后,会让你选择swift的版本。

如果你选择了3.0版本的swift选项,那等待convert结束后,一般依然有一部分需要你做手动适配。

假如你暂时不想花费时间做swift版本的适配,你可以选择swift2.3版本,convert并不会转换任何内容,你的项目也可以像以往在Xcode7中那样正常运行。

此时我们选择swift2.3:

选择swift版本后,选择你的工程target:

稍等片刻:

选择update,结束收工:

二、应用适配

1. 权限配置

随着人们对隐私保护的注重,似乎苹果的每一代产品都有相应的体现——更为严格的设备和数据访问权限控制。
在iOS10中,如果你的App想要访问用户的相机、相册、麦克风、通讯录等等权限,都需要进行相关的配置,不然会直接crash。

你需要在info.plist中添加你App需要的一些设备权限。

首先找到info,可以直接在这里添加键值对:

也可以找到info.plist文件,然后使用SourceCode方式打开:

一些常用的权限配置选项:

```
// 相机
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
// 相册
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相机</string>
// 麦克风:
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能访问麦克风</string>
// 通信录
<key>NSContactsUsageDescription</key>
<string>App需要您的同意,才能访问通信录</string>
```
其它权限配置选项:
```
// 位置
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能访问位置</string>
// 在使用期间访问位置
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期间访问位置</string>
// 始终访问位置
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始终访问位置</string>
// 日历
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能访问日历</string>
// 提醒事项
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能访问提醒事项</string>
// 运动与健身
<key>NSMotionUsageDescription</key>
<string>App需要您的同意,才能访问运动与健身</string>
// 健康更新
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能访问健康更新 </string>
// 健康分享
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能访问健康分享</string>
// 蓝牙
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能访问蓝牙</string>
// 媒体资料库
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意,才能访问媒体资料库</string>
```

2. 字体改变

iOS10的字体发生了变化,这导致一些文字在原有的宽高约束下可能会出现显示不完整或者留白的情况,需要逐一检查。

3. 推送通知

iOS10以后,想要正常收到推送通知,需要进行额外的配置:

以上所述是小编给大家介绍的iOS10适配(必看),字体适配和编译不过的问题及解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • iOS10 App适配权限 Push Notifications 字体Frame 遇到的问题

    添加配置权限 <!-- 相册 --> <key>NSPhotoLibraryUsageDescription</key> <string>"xx"想使用您的相册,需要您的允许</string> <!-- 相机 --> <key>NSCameraUsageDescription</key> <string>"xx"想使用您的相机,需要您的允许</strin

  • iOS10适配问题收集整理

    1.TencentOpenAPI的坑 表现:启动就crash 原因:由于很久没有更新该sdk了,用的版本是2.3.1.后来想着去官网下个最新的吧,不过最新的是3.0的版本,替换原来的sdk后,有些接口和头文件定义的问题,直接编译不过.为了少踩点坑,还是选择了其他项目已经在用的2.8版本.该版本可以直接替换,在iOS10上顺利解决. 2.私有权限申请的坑 表现:Xcode8编译的版本,首次打开相机.相册.获取通讯录.录视频...统统crash 原因:由于iOS10对Security and Pri

  • 兼容iOS 10 升级xcode8出现的问题及一些适配问题的解决方案

    1推送 xcode 升级到8之后很多人的推送接收不到了.获取不到token了 一朋友搞了一小时没找到原因. 只因看下图吧....我发觉xcode 我不打开他也能收到通知. 但是到了8(必须打开了才能收到推送) . 貌似不行了 大家对号入座吧. 下面普及下ios10跟之前的推送的区别 •iOS 9 以前的通知 1.在调用方法时,有些方法让人很难区分,容易写错方法,这让开发者有时候很苦恼. 2.应用在运行时和非运行时捕获通知的路径还不一致. 3.应用在前台时,是无法直接显示远程通知,还需要进一步处理

  • Xcode8以及iOS10适配等常见问题汇总(整理篇)

    随着iOS 10的更新以及Xcdoe 8的更新出现了很多问题,今天小编抽时间把我遇到的坑和大家分享下,一起看看吧. 1.访问权权限问题 iOS 10 开始对访问用户隐私权限更加严格,如果你不设置就会直接崩溃,解决办法都是在info.plist文件添加对应的Key-Value就可以了. PS:对应的value可以自定义填写 2.Xcode 8 运行打印一堆Log的解决办法 只要在Run->Arguments->Environment Variables 添加如下key-value值即可 OS_A

  • iOS开发之适配iOS10以及Xcode8

    iOS开发:适配iOS10以及Xcode8 现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本,童鞋们有木有下载过来试试呢?就我的使用来说,总体觉得苹果还是坑不断,但是也在一直进步的啦.下面我就来说说,iOS10的适配以及Xcode8使用上的一些注意点. 一.证书管理 用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,可以帮助我们自

  • Xcode8下iOS10常见报错闪退,字体适配和编译不过的问题及解决方案

    9月14日凌晨1点,苹果推送了iOS10,于是一上班就迅速升级了iOS10,然后坑就这样开始了... 问题1 首先是xcode的问题,发现xcode升级到8才能真机运行,于是先了解了下iOS10的适配. 有这个iOS10适配总结,还有这个iOS10适配问题收集整理,还有这个iOS10适配,还有很多其他的. 这个好办,取消nullabl关键字就好. 然后另一个蛋疼的问题来了 问题二,编译不过的问题 蛋疼的clang报错le.. 这个是详细的信息,一堆莫名其妙的东西出来了. 隐隐约约感觉是WGS84

  • iOS10适配问题点总结

    说在前面 iOS10和xcode8的GM版都放出了下载,我怀着忐忑的心更新了下(怕有适配问题啊!!!),先更新的xcode8,跑了下公司的项目,除了nullable字段有问题其他都还比较顺利,不过项目跑起来,还是有一点小问题,好在不像iOS9更新时变化那么多,然后我又给手机升级了iOS10,跑了个真机,结果一不小心测试到后半夜2点...浪费了一上午玩游戏的好时光.本篇就我碰到的问题一一整理,希望有类似问题的猴们,可以有点参考. 问题点 问题一(nullable) Q:以前是可以nullable的

  • iOS10适配之权限Crash问题的完美解决方案

    升级 iOS 10 之后目测坑还是挺多的,记录一下吧,看看到时候会不会成为一个系列. 直入正题吧 今天在写 Swift 3 相关的一个项目小小练下手,发现调用相机,崩了.试试看调用相册,又特么崩了.然后看到控制台输出了以下信息: This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must cont

  • iOS10 适配远程推送功能实现代码

    iOS10正式版发布之后,网上各种适配XCode8以及iOS10的文章满天飞.但对于iOS10适配远程推送的文章却不多.iOS10对于推送的修改还是非常大的,新增了UserNotifications Framework,今天就结合自己的项目,说一说实际适配的情况. 一.Capabilities中打开Push Notifications 开关 在XCode7中这里的开关不打卡,推送也是可以正常使用的,但是在XCode8中,这里的开关必须要打开,不然会报错: Error Domain=NSCocoa

  • iOS10适配(必看)

    一.工程改动 1. 工程配置 直接使用Xcode8Beta打开工程后,你会发现你的provisonfile配置出了问题,这是由于在Xcode8中对工程配置有了一些小的改动. 在Xcode8工程配置的general选项卡中,使用更详细signing选项替换了原有的team选项. 选中:project -> target -> general Xcode8之前team选项 Xcode8之前provisionfile选项 Xcode8之后变更为signing选项 2. swift版本 假如你Xcod

  • iOS 10 推送高阶篇(必看)

    推荐阅读: iOS10推送之基础知识(必看篇) 这篇文章开始,我会跟大家好好讲讲,苹果新发布的iOS10的所有通知类. 一.创建本地通知事例详解: 注意啊,小伙伴们,本地通知也必须在appdelegate中注册中心,通知的开关打不打开无所谓的,毕竟是本地通知,但是通知的接收的代理,以及通知点击的代理,苹果给合二为一了.所以大家还是需要在appdelegate中写上这2个方法,还有不要忘记在- (BOOL)application:(UIApplication *)application didFi

  • 老生常谈Eclipse中的BuildPath(必看篇)

    什么是Build Path? Build Path是指定Java工程所包含的资源属性集合. 在一个成熟的Java工程中,不仅仅有自己编写的源代码,还需要引用系统运行库(JRE).第三方的功能扩展库.工作空间中的其他工程,甚至外部的类文件,所有这些资源都是被这个工程所依赖的,并且只有被引用后,才能够将该工程编译成功,而Build Path就是用来配置和管理对这些资源的引用的. Build Path一般包括: JRE运行库 第三方的功能扩展库(*.jar格式文件) 其他的工程 其他的源代码或Clas

  • 关于正则表达式基本语法的应用详解(必看篇)

    1.正则表达式基本语法 两个特殊的符号'^'和'$'.他们的作用是分别指出一个字符串的开始和结束.例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等): "of despair$":表示所以以"of despair"结尾的字符串: "^abc$":表示开始和结尾都是"abc"的字符串--呵呵,只有&qu

  • AngularJS中的指令全面解析(必看)

    说到AngularJS,我们首先想到的大概也就是双向数据绑定和指令系统了,这两者也是AngularJS中最为吸引人的地方.双向数据绑定呢,感觉没什么好说的,那么今天我们就来简单的讨论下AngularJS这个框架的指令系统,本人也是初学,查阅了一些资料,要是有一些说的不好的地方,万望指出. 指令作为AngularJS中最为重要的部分,所以这个框架本身也是自带了比较多的的指令,但是在开发中,这些指令通常不能满足我们的需要,所以我们也是需要自定义一些指令的.那么一个AngularJS指令在HTML代码

  • 使用ionic播放轮询广告的实现方法(必看)

    使用ionic中的ion-slide-box实现,下面是完整的代码示例: <!DOCTYPE html> <html ng-app="app"> <head> <meta charset="utf-8"> <title>ionic-demo</title> <link href="../lib/ionic/css/ionic.css" rel="externa

  • AngularJS 路由和模板实例及路由地址简化方法(必看)

    最近一同事在学习AngularJS,在路由与模板的学习过程中遇到了一些问题,于是今天给她写了个例子,顺便分享出来给那些正在学习AngularJS的小伙伴们. 话说这AngularJs 开发项目非常的爽,其中爽就爽在它的开发模式,使得代码更加的清晰.更加具有可读性.更简洁.更具有维护性.但是在使用AngularJS开发的过程中也有让我头疼的地方,那就是目前前端框架更多的还是以Jquery为主,很多插件都是依赖于Jquery的,AngulaJS的插件少之又少(除了AngularUI其他的Angula

  • 老生常谈Java字符串进阶(必看篇)

    前言 最常用的对字符串操作的类有三个,分别是String,StringBuilder,StringBuffer,下面将会详细的说说这三个类...... String String类代表字符串,这个是最基本的对字符串的类,这个也是使用比较多的类,这里就不再详细介绍了 构造 new String(String str) new String(StringBuilder str) new String(StringBuffer str) new String(byte[] bys,String cha

  • JavaScript自学笔记(必看篇)

    0-判断变量.参数是否初始化 if(x){} //变量被初始化了或者变量不为空或者变量不为零 1-声明函数不需要声明返回值.参数类型,句尾甚至都不需要';' function sum(i1,i2){return i1+i2} 2-直接声明匿名函数立即使用 var f=function(i1,i2){return i1+i2;}; alert(f(1,2));//普通匿名函数 alert(function(i1,i2){return i1+i2;}(3,4));//直接声明,立即使用 3-js中没

随机推荐