在 iOS 10.0 之后, App 要调用手机相机与相簿应注意的事项
iOS 的 SDK 每一年至少都会有一次大改版,从 2009 到 2016 年,版号已经到了第 10 版了,很轻易的就追上了 Mac OSX. 每一次的大改版都会有不少新的功能或新的规范,在 iOS 7的改版算的上是幅度最大的,把 iOS 1.0 到 iOS 6.0 以实物视觉与立体视觉的基础来了个发夹弯,转向去跟 Android, Windows 一起走平面化极简风。(不知道乔布斯天上有灵会怎么反应......)
• iOS 8的改版中,要求使用地理资讯的App需要在 info.plist 当中自己写出提示的文字
• iOS 10 的改版中,更进一步要求使用相机、相簿的App也要自己提示。
如果没有在 info.plist 里面定义提示文字,App执行到该功能的时候,会直接发生闪退,这对于使用者来说很不方便,所以App开发的人员也只好为了使用者对 App 进行改版。
如果是使用 Xcode 来开发,就需要编辑 info.plist, 加入以下图片中两个灰色背景的设定,一个是使用相机,另一个是使用相簿。

这跟是否使用第三方的 Framework 无关喔,即使您使用了 Cocos2D, 或是 CocoaPad, 这些宣告也是跑不掉的。
如果使用的是 Delphi,则需要从专案设定选项 (Project Option)来设定,设定视窗如下图所示:

叫出这个视窗的方法有两个,一个是从Delphi的视窗中点选 Project 选项,选择里面的 Option。另一个则是用滑鼠右键点选视窗右边的专案名称,选择 Menu 里面的 Option 选项,都可以显示出这个视窗。
设定好这两个选项之后,在 Delphi 里面呼叫 TTakePhotoFromCameraAction 或
TTakePhotoFromLibraryAction的时候,就不会闪退了.
要留意一点,透过 Delphi 取用相机或相簿的时候,OnDidFinishTaking 所取得的照片是 TBitMap 元件,我们可以先对图片做一些简单的处理,例如可以把图片的 解析度弄小一点,或者改变图片的大小,甚至是储存成不同格式 (PNG或JPG)。
对 iOS 模拟器处理时,由于模拟器通常没有相机,所以不用特别设定模拟器的相机使用描述。Delphi 的设定会依照不同的装置平台做个别的设定,而且还分成 Debug/Release,所以我自己通常会直接编辑 All Configuration。
从 iOS 5S 之后,也已经没有 32 bit 的新装置了,所以如果您的 App 不打算提供给 32 bit 装置使用的话,iOS Device - 32 bit platform 也可以不用理他了。
在 iOS 10.0 之后, App 要调用手机相机与相簿应注意的事项的更多相关文章
- iOS 10.0 更新点(开发者视角)
html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; padding: 0 ...
- iOS 10.0之前和之后的Local Notification有神马不同
在iOS 10.0之前apple还没有将通知功能单独拿出来自成一系.而从10.0开始原来的本地通知仍然可用,只是被标记为过时.于是乎我们可以使用10.0全新的通知功能.别急-让我们慢慢来,先从iOS ...
- iOS 10.0前的Notification推送
前言 推送为远程推送,一般由苹果APNS服务器发送给苹果设备(iPhone,iPad) 推送分在前台和后台.在前台时 用户可以在application 的代理回调接口中做相应处理:在后台时 系统会全权 ...
- iOS 10 创建iMessage App
原文作者 澳大利亚19岁少年--Davis Allie ----原文地址 时值中秋佳节, 送给出门在外的程序猿们 ! 骚年们, 自己写个表情包斗图可否 ! 斗-seal.svg.png 第一. 介绍 ...
- iOS 10.0适配之旅
1.升级Xcode体验 升级到Xcode之后,调试程序好多东西都不是太适应 控制台莫名给你打印一堆不是太好理解的东西 之前使用 Alcatraz 下载的插件都不能用(如何使用Alcatraz) 打开麦 ...
- 关于iOS10 Xcode8真机测试项目出现的问题 "code signing is required for product type 'xxxxx' in SDK 'iOS 10.0"..
昨天用真机测试项目出现这样的错误,在网上搜集了一些信息,所以将自己的经验分享出来帮助更多的人. 第一步: 检查你的1和2是否填写正确,如果你是运行别人的项目,BundleIdentifier要和你的X ...
- 使用DbVisualizer 10.0.20 查询ES中的索引时需要注意的事项
查询前5条数据 光标停在某一个查询结果框中,左下角会显示该字段的类型 查询类型是text的字段使用单引号,使用双引号查询会报错
- iOS 10跳转到其他app
- (BOOL)jumpsToThirdAPP:(NSString *)urlStr{ if ([urlStr hasPrefix:@"mqq"] || [urlStr hasPr ...
- [转载]iOS 10 UserNotifications 框架解析
活久见的重构 - iOS 10 UserNotifications 框架解析 TL;DR iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifica ...
随机推荐
- Bootstrap基础学习(二)—表单
一.表单 1.基本格式 <!-- 基本格式 --> <form> <div class="form-group"> <label>姓 ...
- Activity的Task详解
1.Task Task是一个具有栈结构(后进先出)的容器,可以放置多个Activity实例.启动一个应用,系统就会为之创建一个Task,来放置根Activity.默认情况下,一个Activity启动另 ...
- GPIO寄存器
GPIO寄存器描述 <STM32参考手册中文-p75> 1.端口配置低寄存器(GPIOx_CRL)(x = A...E)2.端口配置高寄存器(GPIOx_CRH)(x = A...E) 3 ...
- jquery 中 eq()遍历方法 和:eq()选择器的区别
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 谱聚类(Spectral clustering)(2):NCut
作者:桂. 时间:2017-04-13 21:19:41 链接:http://www.cnblogs.com/xingshansi/p/6706400.html 声明:欢迎被转载,不过记得注明出处哦 ...
- Linux 初设root 密码
设置root用户的密码,输入命令:sudo passwd root 然后输入root密码,最后确认,OK,设置完成. 输入:su 提示输入密码,就能够以root身份登录啦.
- cookie,session,token的定义及区别
参考了很多文章总结的. 1.cookie(储存在用户本地终端上的数据) 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. 2.session(会话) a.代表服务器与浏览器的一次 ...
- js继承与闭包(笔记)
1.一切引用类型都是对象,对象时属性的集合:typeof null === 'object'(例外): 2.对象都是通过函数创建来的,比如var obj = new Object();typeof O ...
- 微软的STRIDE模型
微软的STRIDE模型: https://msdn.microsoft.com/en-us/library/ee823878(v=cs.20).aspx Spoofing identity. An e ...
- [内存管理]linux X86_64处理器的内存布局图
linux X86 64位内存布局图