`
shappy1978
  • 浏览: 700580 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iOS开发--适配iOS 10以及Xcode 8

 
阅读更多

http://www.cocoachina.com/ios/20161014/17574.html

 

就我的使用来说,总体觉得苹果还是坑不断,但是也在一直进步的啦。下面我就来说说,iOS10的适配以及Xcode8使用上的一些注意点。

一、证书管理

用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,可以帮助我们自动管理证书。建议大家勾选这个Automatically manage signing(Ps.但是在beat2版本我用的时候,完全不可以,GM版本竟然神奇的又好了。)

01.png

下面我来说说可能会出现的问题:

1.Xcode未设置开发者账号情况下的截图

02.png

解决办法是:大家在Xcode的偏好设置中,添加苹果账号,即可。

2.设备机器未添加进开发者的Device情况下的截图

03.png

解决办法是:大家在官网将设备添加进开发机后,陪下描述文件重新下个描述文件即可。

3.正常情况:Xcode配置登录开发者账号后的图片,耐心等待即可。

04.png

等待完成之后的图

05.png

二、Xib文件的注意事项

使用Xcode8打开xib文件后,会出现下图的提示。

06.png

大家选择Choose Device即可。
之后大家会发现布局啊,frame乱了,只需要更新一下frame即可。如下图

07.png

注意:如果按上面的步骤操作后,在用Xcode7打开Xib会报一下错误,

08.png

解决办法:需要删除Xib里面

4.png

这句话,以及把5.png中的toolsVersion和6.png中的version改成你正常的xib文件中的值
,不过不建议这么做,在Xcode8出来后,希望大家都快速上手,全员更新。这就跟Xcode5到Xcode6一样,有变动,但是还是要尽早学习,尽快适应哟!

三、代码及API注意

使用Xcode8之后,有些代码可能就编译不过去了,具体我就说说我碰到的问题。
1.UIWebView的代理方法:
**注意要删除NSError前面的 nullable,否则报错。

1
2
3
4
- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error
{
    [self hideHud];
}

四、代码注释不能用的解决办法

这个是因为苹果解决xcode ghost,把插件屏蔽了。
解决方法
打开终端,命令运行:  sudo /usr/libexec/xpccachectl
然后必须重启电脑后生效

注意:Xcode8内置了开启注释的功能,位置在这里

707724-9ace6550ccedaa6c.png

快捷键的设置在这里

707724-ed9730ab858c08a7.png

貌似Xcode8取消了三方插件的功能,具体可以查阅下Xcode8 Source Editor

五、权限以及相关设置

注意,添加的时候,末尾不要有空格
我们需要打开info.plist文件添加相应权限的说明,否则程序在iOS10上会出现崩溃。
具体如下图:

707724-d118ca12029c78ab.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 我们需要通过您的地理位置信息获取您周边的相关数据
定位的需要这么写,防止上架被拒。

六、字体变大,原有frame需要适配

经有的朋友提醒,发现程序内原来2个字的宽度是24,现在2个字需要27的宽度来显示了。。
希望有解决办法的朋友,评论告我一下耶,谢谢啦

七、推送

如下图的部分,不要忘记打开。所有的推送平台,不管是极光还是什么的,要想收到推送,这个是必须打开的哟??

11.png

之后就应该可以收到推送了。另外,极光推送也推出新版本了,大家也可以更新下。

PS.苹果这次对推送做了很大的变化,希望大家多查阅查阅,处理推送的代理方法也变化了。

4.png

iOS10收到通知不再是在
[application: didReceiveRemoteNotification:]方法去处理, iOS10推出新的代理方法,接收和处理各类通知(本地或者远程)

1
- (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);}

稍后我会更新文章,对推送做一个详细的讲解。

8.屏蔽杂乱无章的bug

更新Xcode8之后,新建立工程,都会打印一堆莫名其妙看不懂的Log.
如这些

1
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

36.png

如果写了之后还是打印log,请重新勾选对勾,就可以解决了。

Ps.考虑到添加上述内容在Xcode8后,真机调试可能出现异常,大家可以自定义一个宏定义,来做日志输出。

1
2
3
4
5
6
7
8
9
10
11
#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

大家有任何问题,可以评论给我~
如果写的不错,希望大家可以关注我。感谢。

分享到:
评论

相关推荐

    iOS开发之适配iOS10以及Xcode8

    本文主要针对“iOS开发之适配iOS10以及Xcode8”这一主题进行深入探讨,旨在帮助开发者顺利过渡到新环境。 首先,Xcode8引入了一项新特性,即自动证书管理。当使用Xcode8打开工程时,开发者可以选择“Automatically ...

    Xcode iOS 16真机调试包 开发调试

    在iOS应用开发中,Xcode是苹果官方提供的集成开发环境(IDE),用于构建、测试和发布iOS、iPadOS以及macOS等平台的应用程序。随着iOS系统版本的不断更新,开发者需要确保他们的应用能够兼容并良好运行在最新的操作...

    xcode11 和xcode10 下 ios13.7真机开发包

    本文将详细讨论Xcode 10和Xcode 11在支持iOS 13.7真机开发包方面的差异与相似之处,以及如何进行真机测试。 首先,Xcode 10是苹果在2018年发布的一个版本,它支持iOS 12到iOS 13.1的开发和测试。Xcode 11则是在2019...

    Xcode配置iOS16.0开发包DeviceSupport

    将Xcode适配可以调试、编译、运行、打包系统版本号为iOS 16.0 版本的设备,解决"Could not find Developer Disk Image"问题

    精通IOS开发-第6版(中文精简版)

    在第6版中,预计还会涵盖最新版本的iOS系统特性,如SwiftUI、 Combine框架,以及Apple的新硬件如Apple Watch和iPad Pro的适配技巧。SwiftUI是Apple推出的全新声明式UI框架,可以更直观地构建用户界面,而Combine框架...

    12.1的ios的xcode包

    5. **开发工具**: Xcode包含了许多辅助开发工具,如Auto Layout(自动布局)帮助开发者适配不同屏幕尺寸,Core Data(核心数据)用于存储应用程序的数据,以及Swift Playgrounds(Swift游乐场)供学习和试验Swift...

    Xcode iOS11.0 配置包

    Xcode是Apple官方推出的开发工具,用于构建、测试和发布iOS、iPadOS、macOS、watchOS以及tvOS的应用程序。在这个特定的场景中,我们讨论的是针对iOS 11.0版本的Xcode配置包。这个配置包是为了满足开发者在不升级...

    xcode支持iOS15.2和iOS15.4

    Xcode是Apple官方推出的集成开发环境(IDE),主要用于开发iOS、iPadOS、macOS、watchOS和tvOS等平台的应用程序。在这个特定的情境中,我们关注的是Xcode对iOS 15.2和iOS 15.4版本的支持。 首先,iOS 15.2是苹果...

    图片插件KSImageNamed-Xcode-master

    总的来说,KSImageNamed-Xcode-master 插件通过提供强大的图片资源管理功能,帮助开发者提升工作效率,减少出错概率,是iOS开发中不可或缺的工具之一。对于处理大量图片资源的大型项目,或者追求高效编码体验的...

    [总结帖]关于升级xcode8,谈谈你的新发现!!! | iOS开发 - CocoaChina CocoaChina_让移动开发

    从标签“ios”我们可以推断,这个讨论主要与iOS开发相关,包括但不限于Xcode的更新、兼容性问题、代码修改以及用户权限的变更。 部分内容提到了多个与升级Xcode 8相关的知识点: 1. 快捷键更改:`command + /`现在...

    低版本Xcode真机调试ios12-12.1;11-11.4

    通过升级Xcode、适配新API和框架以及进行充分的多版本测试,开发者可以有效地解决这些问题,确保应用能在各种iOS设备上顺畅运行。在进行这些操作时,可以参考苹果官方的开发者文档和社区论坛,获取更详细的指导和...

    FFmpeg-iOS-build-script-master.zip

    你需要Xcode命令行工具,可以通过运行`xcode-select --install`来安装。 2. **解压并进入项目目录**:将"FFmpeg-iOS-build-script-master.zip"解压后,进入解压得到的目录。 3. **阅读README**:打开README文件,...

    Xcode开发 iOS13.1包

    Xcode是Apple官方提供的集成开发环境(IDE),用于开发iOS、macOS、watchOS以及tvOS等平台的应用程序。随着苹果系统的更新迭代,开发者需要及时掌握最新的开发工具和技术,以确保应用能够适应新版本的操作系统。在本...

    IOS开发-开发心得-技术栈-初学者-学习路线-开发原则

    Xcode是苹果为iOS开发者提供的集成开发环境(IDE),集成了代码编辑、编译、调试、性能分析等多种功能于一体。熟练掌握Xcode的各项工具和特性对于提高开发效率至关重要。例如,Xcode内置的调试工具可以帮助开发者快速...

    ios开发 Xcode ios12.1 (16B5084a)支持包

    在iOS开发领域,Xcode是苹果官方推荐的集成开发环境(IDE),用于构建iOS、iPadOS、macOS、watchOS以及tvOS的应用程序。本文将深入探讨“Xcode iOS12.1 (16B5084a)支持包”所涉及的关键知识点。 首先,Xcode不仅仅...

    IOS APP开发 微博 Xcode

    在iOS应用开发中,微博应用的构建是一个典型的案例,它涉及到多个关键技术点,包括使用Xcode作为集成开发环境(IDE),Objective-C或Swift编程语言,以及Apple的UIKit框架。下面我们将详细探讨这些知识点。 首先,...

    ios-iPad项目-QQ空间屏幕适配.zip

    8. **模拟器与真机测试**:在开发过程中,不仅要依赖Xcode的模拟器进行不同屏幕尺寸和方向的测试,还要在真实设备上进行验证,确保适配效果无误。 9. **性能优化**:屏幕适配可能导致额外的计算和内存占用,因此要...

    xcode配置iOS 12.0 开发包

    将Xcode适配可以调试、编译、运行、打包系统版本号为iOS 12.0 版本的设备,解决"Could not find Developer Disk Image"问题 使用详情 请前往https://blog.csdn.net/u010731949/article/details/52576792

    Xcode配置iOS15.5开发包DeviceSupport

    在iOS应用开发中,Xcode是苹果官方提供的集成开发环境(IDE),用于编写、测试和部署iOS和macOS应用程序。当开发者需要支持新的iOS版本,如iOS 15.5时,他们必须确保Xcode拥有相应的`DeviceSupport`文件,这样才能在...

    iOS Xcode 15.4真机测试包

    在iOS开发过程中,Xcode是不可或缺的集成开发环境(IDE),它是Apple官方为开发者提供的用于构建、调试和发布iOS及macOS应用的工具。本文将深入探讨“iOS Xcode 15.4真机测试包”相关的知识点,帮助开发者更好地理解...

Global site tag (gtag.js) - Google Analytics