在 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 ...
随机推荐
- python之数据结构链表实现方式
#!/usr/bin/env python # --------------------------------------- # author : Geng Jie # email : gengji ...
- 老李分享:loadrunner 的86401错误
老李分享:loadrunner 的86401错误 系统和软件配置: os:windows 2003loadruner版本:LoadRunner11loadrunner:协议:SMTP协议并发数:2 ...
- C#对文件操作(基本的读写以及压缩和解压)
主要是针对单个文件进行读写操作和压缩操作:用到的主要C#类有FileStream.FileInfo.StreamWrite.StreamRead.GZipStream. 字符数组和字节数组的转换: ] ...
- JavaScript运算符优先级
图片引用自:http://www.cnblogs.com/xxcanghai/p/5189353.html
- javaScript 中String的常用方法
1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length(); 2.ch ...
- 初学grunt压缩
初学grunt 压缩,做个记录.备忘. [JS压缩] 先比较yui compressor 与 uglify 代码压缩, yui compressor,使用起来很简单.需要jdk. https://g ...
- appium+python做移动端自动化测试
1 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供 ...
- T-SQL编程语句
书接上回 一起学习下SQL中的表连接 一般情况下咱们会使用鼠标去进行表连接操作,那针对于像我比较懒的并且眼盲的,不喜欢来回切换,咱们就用到了点T-SQL表连接语句 一般情况咱们从两个表中查出来相似的内 ...
- Dubbo的使用简介
Dubbo是什么 官方定义 DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000, ...
- SourceTree 无法查看组织仓库
error log: Pushing to remote: Repository not found. 在使用SourceTree进行版本控制,代替git命令行,而且作为免费 跨平台 功能完备的git ...