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 要调用手机相机与相簿应注意的事项的更多相关文章

  1. iOS 10.0 更新点(开发者视角)

    html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; padding: 0 ...

  2. iOS 10.0之前和之后的Local Notification有神马不同

    在iOS 10.0之前apple还没有将通知功能单独拿出来自成一系.而从10.0开始原来的本地通知仍然可用,只是被标记为过时.于是乎我们可以使用10.0全新的通知功能.别急-让我们慢慢来,先从iOS ...

  3. iOS 10.0前的Notification推送

    前言 推送为远程推送,一般由苹果APNS服务器发送给苹果设备(iPhone,iPad) 推送分在前台和后台.在前台时 用户可以在application 的代理回调接口中做相应处理:在后台时 系统会全权 ...

  4. iOS 10 创建iMessage App

    原文作者 澳大利亚19岁少年--Davis Allie ----原文地址 时值中秋佳节, 送给出门在外的程序猿们 ! 骚年们, 自己写个表情包斗图可否 ! 斗-seal.svg.png 第一. 介绍 ...

  5. iOS 10.0适配之旅

    1.升级Xcode体验 升级到Xcode之后,调试程序好多东西都不是太适应 控制台莫名给你打印一堆不是太好理解的东西 之前使用 Alcatraz 下载的插件都不能用(如何使用Alcatraz) 打开麦 ...

  6. 关于iOS10 Xcode8真机测试项目出现的问题 "code signing is required for product type 'xxxxx' in SDK 'iOS 10.0"..

    昨天用真机测试项目出现这样的错误,在网上搜集了一些信息,所以将自己的经验分享出来帮助更多的人. 第一步: 检查你的1和2是否填写正确,如果你是运行别人的项目,BundleIdentifier要和你的X ...

  7. 使用DbVisualizer 10.0.20 查询ES中的索引时需要注意的事项

    查询前5条数据 光标停在某一个查询结果框中,左下角会显示该字段的类型 查询类型是text的字段使用单引号,使用双引号查询会报错

  8. iOS 10跳转到其他app

    - (BOOL)jumpsToThirdAPP:(NSString *)urlStr{ if ([urlStr hasPrefix:@"mqq"] || [urlStr hasPr ...

  9. [转载]iOS 10 UserNotifications 框架解析

    活久见的重构 - iOS 10 UserNotifications 框架解析 TL;DR iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifica ...

随机推荐

  1. file_get_contents和curl对于post方式的解决办法

    post方式解决办法 其实很简单,我们只要仔细看看就知道了... file_get_contents: $content=$_POST['content'];$access_token=$_POST[ ...

  2. 【Hexo】Hexo+Github构建个人博客 (三):添加皮肤主题

    一.选择主题 选择你自己喜欢的主题 参考: 1.Hexo官网主题 2.知乎:有哪些好看的 Hexo 主题? 二.配置主题 1.我选择了hexo-theme-yilia这个主题,简洁大方,功能齐全: 这 ...

  3. 【转】JSON和JSONP

      前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Soc ...

  4. laravel redis Error while reading line from the server.

    代码运行一段时间后,会报下面的错误. [Predis\Connection\ConnectionException] Error while reading line from the server. ...

  5. jsp的开发模式

    JSP 存在两种 开发模式1.Model1 : JSP + JavaBean * 不适合开发业务逻辑特别复杂web应用 ----- 业务逻辑复杂,控制代码多,而在jsp中编写控制代码,十分不便 *JS ...

  6. List去除重复的元素

         有两种方法,一种是去重不带顺序的,一种是去重带顺序的. /* * 方法1: 无顺序 * Hastset根据hashcode判断是否重复,数据不会重复 */ public static Lis ...

  7. Reflux中文教程——概览

    翻译自github上的reflux项目,链接:https://github.com/reflux/refluxjs 〇.安装及引入 安装: npm install reflux 引入: var Ref ...

  8. Linux--shell脚本之文本处理工具

    文本处理工具--grep.sed.awk Bash Shell提供了功能强大的文件处理工具:sed(流编辑器stream editor)和awk,都可使用正则表达式进行模式匹配. 而grep又有助于理 ...

  9. unity 看到Sphere内部,通过Sphere播放全景视频时候遇到的问题

    Unity创建一Sphere默认是看不到球体内部的,所以需要用 Cull Front  修改剔除的方向,这就会带来一个新的问题,所播放的视频是像镜子一样翻转着的,所以要改变它的UV坐标使其翻转过来 f ...

  10. Python 一行代码

    Python语法十分便捷,通过几个简单例子了解其趣味 1.Fizz.Buzz问题为: 打印数字1到100, 3的倍数打印"Fizz", 5的倍数打印"Buzz" ...