ERROR ITMS-90168 MAC OSX 沙盒机制

「上班第一天。祝大家新的一年工作顺利」

#####「摘要:OS X 沙箱机制 从OS X10.6之后引进该机制。在之前的OS X10.9之前没有做强制的要求。但是在OS X10.9 之后,提交到MAC APPStore的应用,必须遵守并且支持沙箱协议。沙箱对访问系统的资源做啦充分的限定说明。」

沙箱机制是什么

苹果引入沙箱机制后,要求上线到APP Store的MAC应用必须支持遵守沙箱机制。沙箱对应用访问的系统资源、硬件外设、文件、网络做啦严格的限制。这样防止恶意的APP攻击系统获得控制系统的权限,保证啦OS X的系统安全。

沙箱把每个应用分配一个独立的空间,每个应用只能在自己的小天地里面耍。要想获取自己空间之外的资源必须获得授权「如图」。

这里写图片描述

在应用中设置

应用开发完成提交到APP Store,必须设置沙盒机制,如果不设置则会报错「ERROR ITMS-90168 」。

切换到工程的target------->capabilities。
第一项就是APP Sandbox开关,点击ON,开始沙箱机制。
这里写图片描述

1、 Network: 网络访问控制
Incoming Connections(Server) :应用做为Server对外提供HTTP,FTP等服务时需要打开
Outgoing Connections(Client):做为客户端,访问服务器时需要打开

2、Hardware:硬件资源控制。
Camera : 摄像头
Micophone:麦克风
USB :USB接口
Printing: 打印功能
根据自己的APP进行设置。

3、APP Data:采集信息
Contacts:系统联系人
Location:位置
Calendar:日历

4、File Access:文件和用户目录的访问控制,分为禁止none,只读,读写3类
User Selected File:文档类应用或者需要用户选择打开某个文件时,需要选择合适的访问权限
Downloads Folder:下载文件夹
Pictures Folder:图库
Music Folder:音乐库
Movies Folder:电影库

沙盒设置表示应用需要连接服务器获取数据;应用菜单中有打印功能的菜单;允许用户打开文件并进行读写操作。

如果应用中不需要的权限项,一律不要打开。否则App Review团队会拒绝你的应用上架「ERROR ITMS-90168 」。

沙盒配置信息存储

沙盒中每个需要访问权限的项都对应一个key,对应的value,YES 或 NO表示是否允许访问。

选择配置了沙盒的访问控制信息后,Xcode会自动保存到一个扩展名为.entitlements的plist文件中

这里写图片描述

应用打包时会对这个文件进行签名

这里写图片描述

.entitlements文件是一个plist文件,里面存储了sandbox的访问权限配置项信息.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>com.apple.security.app-sandbox</key>
	<true/>
	<key>com.apple.security.assets.pictures.read-write</key>
	<true/>
	<key>com.apple.security.device.usb</key>
	<true/>
	<key>com.apple.security.files.downloads.read-write</key>
	<true/>
	<key>com.apple.security.files.user-selected.read-write</key>
	<true/>
	<key>com.apple.security.network.client</key>
	<true/>
	<key>com.apple.security.network.server</key>
	<true/>
</dict>
</plist>

应用运行期间要获取某个权限时,系统都会通过.entitlements去检查应用是否有授权,如果没有就拒绝访问。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值