zoukankan      html  css  js  c++  java
  • Xcode 沙盒选项

     Capabilities 开启Sandbox权限--转载--https://juejin.cn/post/6844904199688290318

    应用开发完成提交到App Store时,必须进行沙盒化。切换到工程target设置Tab的Capabilities中。

    • 第一项就是App Sandbox开关,点击ON,表示应用使用沙盒。

    App Sandbox开关,点击ON,表示应用使用沙盒上图的选项的一些解释如下:

    1. Network:网络访问控制
    1. Incoming Connections (Server): 应用做为Server对外提供HTTP,FTP等服务时需要打开。如果你的App担任服务器角色,需要连接通信需要开启此权限。
    2. Outgoing Connections (Client): 做为客户端,访问服务器时需要打开。如果你的App需要作为客户端进行socket连接通信需要开启此权限。
    1. Hardware:硬件资源控 它包含下面这些子项:
    1. Camera: 如果你需要开启摄像头功能,勾选此项。
    2. Audio Input: 如果你需要获取音频 输入权限(如麦克风),勾选此项。
    3. USB : 如果你需要使用USB传输文件,需要开启此功能 4: Printing: 如果你需要打印文件里面的内容,需要开启此功能
    1. App Data:获取系统的联系人,位置,日历服务时需要打开
    1. Contacts: 如果要访问联系人,需要勾选此项
    2. Location: 如果需要定位,需要勾选此项。
    3. Calendar: 如果需要访问日历,需要勾选此项。
    1. File Access:文件和用户目录的访问控制,分为禁止none,只读,读写3类
    1. User Selected File:文档类应用或者需要用户选择打开某个文件时,需要选择合适的访问权限.
    2. Downloads Folder: 如果需要访问当前用户 Downloads文件夹,需要勾选此项,可以设置为只读,或者可读可写
    3. Pictures Folder: 如果需要访问当前用户 Pictures文件夹,需要勾选此项,可以设置为只读,或者可读可写
    4. Music Folder: 如果需要访问当前用户 Music文件夹,需要勾选此项,可以设置为只读,或者可读可写
    5. Movies Folder: 如果需要访问当前用户 Movies文件夹,需要勾选此项,可以设置为只读,或者可读可写

    特别注意:如果应用中不需要的权限项,一律不要打开。否则App Review团队会拒绝你的应用上架.

    3.1.2 Entitlements 直接变xml,开启Sandbox权限

    实际上,在沙盒中每个需要访问权限的项都对应一个key,对应的value,YES 或 NO表示是否允许访问。当你选择了项后,都会记录在一个扩展名为.entitlements的plist 的文件中,如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?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.movies.read-write</key>
        <true/>
        <key>com.apple.security.assets.music.read-only</key>
        <true/>
        <key>com.apple.security.assets.pictures.read-only</key>
        <true/>
        <key>com.apple.security.cs.allow-dyld-environment-variables</key>
        <true/>
        <key>com.apple.security.cs.allow-jit</key>
        <true/>
        <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
        <true/>
        <key>com.apple.security.cs.disable-executable-page-protection</key>
        <true/>
        <key>com.apple.security.cs.disable-library-validation</key>
        <true/>
        <key>com.apple.security.device.audio-input</key>
        <true/>
        <key>com.apple.security.device.camera</key>
        <true/>
        <key>com.apple.security.device.usb</key>
        <true/>
        <key>com.apple.security.files.bookmarks.app-scope</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/>
        <key>com.apple.security.personal-information.photos-library</key>
        <true/>
        <key>com.apple.security.print</key>
        <true/>
        <key>com.apple.security.temporary-exception.apple-events</key>
        <array>
            <string>com.apple.itunes</string>
        </array>
        <key>com.apple.security.temporary-exception.files.absolute-path.read-write</key>
        <true/>
        <key>com.apple.security.temporary-exception.shared-preference.read-only</key>
        <array>
            <string>com.apple.iphoto</string>
            <string>com.apple.photobooth</string>
            <string>com.apple.photos</string>
        </array>
    </dict>
    </plist>
     
    复制代码

    用plist属性显示如下:

    用plist属性显示

    应用打包时会对这个文件进行签名。 当应用运行期间要获取某个权限时,系统都会通过.entitlements去检查应用是否有授权,如果没有就拒绝访问。

  • 相关阅读:
    Failed to load config "react-app" to extend from.
    An unexpected error occurred: "expected workspace package to exist for "@babel/core"".
    写一个 LRU 缓存函数(#146)
    TERSUS笔记303-06末页
    TERSUS笔记302-08每页条数逻辑
    TERSUS笔记301-显示列表处理+序号+01共几条取值+08每页条数下拉菜单值设置+02共页数计算取值
    TERSUS笔记300-增加
    TERSUS笔记118-多表增删改查完整操作
    Java多线程之二(Synchronized)
    HashMap在JDK1.7中可能出现的并发问题
  • 原文地址:https://www.cnblogs.com/8335IT/p/15530623.html
Copyright © 2011-2022 走看看