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. 简单的叙述下SQL中行列转换的小知识!

    行列转换对于工作还是学习中总是不可避免的会遇到(虽然本人还尚未工作,萌萌哒的学生一枚),解决的方法也有很多,我这里就总结一下我所想解决的问题以及怎么去解决的方法, 可能网上已经有很多类似的方法了,有的 ...

  2. 在Windows下安装redis扩展和memcached扩展

    一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本       2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...

  3. c++内存优化:二级间接索引模式内存池

    /********************************************************* 在一些不确定内存总占用量的情形下,频繁的使用new申请内存,再通过链表 进行索引似 ...

  4. 六行python代码的爱心曲线

    前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题 ...

  5. 1px 究竟是多大

    一.引言 1px 究竟是多大?这应该是一道很不错的面试题.且看: 1.iphone6s 的分辨率是1920px * 1080px 2.iphone6s 全屏截图文件的尺寸是1242px * 2208p ...

  6. 36.java_exception_test

    package mytext1; class TZException extends Exception{ TZException(String str){ super(str); } public ...

  7. Spring+Redis(keyspace notification)实现定时任务(订单过期自动关闭)

    1.起因 最近公司项目要做订单超期未支付需自动关闭,首先想到的是用spring的定时器(@Schedule),结果领导举各种例子说会影响性能,只能作罢.后来想能不能基于redis实现, 学习(baid ...

  8. sql中常见日期获取

    获取当前年月日 --获取当前月份 ,GETDATE())) --获取当前月份的下个月 ,GETDATE())) --获取当前月份的上个月 year()获取年 select year(GETDATE() ...

  9. 怎么看iOS human interface guidelines中的user control原则

    最近离开了老东家,整理整理思路,因为一直做的是微信公众号相关的产品对app的东西有一段时间没有做过了,所以又看了一遍iOS human interface guidelines,看到user cont ...

  10. netty——私有协议栈开发案例

    netty--私有协议栈开发案例 摘要: 在学习李林峰老师的Netty权威指南中,觉得第十二章<私有协议栈开发>中的案例代码比较有代表性,讲的也不错,但是代码中个人认为有些简单的错误,个人 ...