当前位置: 首页 > news >正文

macOS sandbox 文件夹授权

macOS sandbox 文件夹授权

macOS如果想上苹果市场发布的话,那么必须要遵守苹果的沙盒协议,这样应用的存储默认都是沙盒路径,隔离了用户的文件系统,那么这个时候我需要访问 /User/xxx/Library/Developer/ 这种文件夹的时候,直接访问是会被拒绝的,那既然这样就肯定要授权了,等同意了在访问就名正言顺了。

那么要如何进行这种操作呢,首先想到的肯定是先把这个文件夹打开再说,然后当次的权限就有了,然后就是解决后续依然有权限访问的问题,这个时候就用到了 bookmark,这个东东就是转门干这个用的,下面一步一步的来实现这个功能。

本例子以授权 /user/xxx/Library/Developer/ 路径为例。

首先获取到文件绝对路径。

func getAbsolutePath(path: String) -> String? {let pw = getpwuid(getuid())guard let home = pw?.pointee.pw_dir else {return nil}let homePath = FileManager.default.string(withFileSystemRepresentation: home, length: Int(strlen(home)))return "\(homePath)/\(path)"
}let path = getAbsolutePath("/Library/Developer")
// /User/xxx/Library/Developer/

打开文件夹获取权限

func openFinder() {let fm = FileManager.defaultlet filepath = getAbsolutePath(path: "Library/Developer/")!print("filepath is \(filepath)")let url = URL(filePath: filepath)let dialog = NSOpenPanel()dialog.message = "文件夹授权以提供服务"dialog.prompt = "选择"dialog.allowsOtherFileTypes = falsedialog.canChooseFiles = falsedialog.canChooseDirectories = truedialog.directoryURL 
http://www.lryc.cn/news/252274.html

相关文章:

  • CentOS 7安装Java 8
  • 施密特正交
  • 视频号小店怎么起量?实操详解!
  • 如何将unity项目托管到github(快速便捷)
  • ClickHouse(16)ClickHouse日志引擎Log详细解析
  • opencv项目开发实战--填补字母的空白
  • Wnmp本地搭建结合内网穿透实现远程访问本地Wnmp服务
  • C++ 红黑树的封装
  • MongoDB快速入门及其SpringBoot实战
  • Python网络爬虫练习
  • 《opencv实用探索·九》中值滤波简单理解
  • PC行内编辑
  • 鸿蒙开发:Stage模型开发-应用/组件级配置以及UIAbility组件初步使用【鸿蒙专栏-20】
  • Django回顾【五】
  • Python容器——字典
  • 基于Java SSM框架实现实现四六级英语报名系统项目【项目源码+论文说明】
  • 翻硬币(第四届蓝桥杯省赛C++B组)(java版)
  • 原生GPT本地及云端部署方式保姆级教程
  • Docker容器(一)概述
  • Facebook引流怎么做?写个脚本就好!
  • 自动化集成有哪些典型应用场景?
  • 探讨几种在CentOS 7上实现文件上传的方法
  • AWS EC2使用 instance profile 访问S3
  • python中函数式编程
  • Java_JDK8到JDK21各版本发行时间及重要特性
  • 03 数仓平台 Kafka
  • 2023年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——解析版
  • Matlab论文插图绘制模板第129期—函数网格曲面图
  • 无限移动的风景 css3 动画 鼠标移入暂停
  • Java基本数据类型、包装类及拆装箱详解