iOS应用沙盒

IOS沙盒相关 ios沙盒 阅读详情

一. 应用沙盒

沙盒也叫沙箱,英文sandbox。iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),它是应用程序的存储空间,所有的非代码文件都保存在这个地方,应用只能读写自己文件系统目录里的文件,不能直接访问其他应用的文件系统目录。应用程序向外请求或接收数据都要通过权限检测,假如不符合条件的话,不会被放行。沙盒机制导致了应用程序之间的通讯障碍,但iOS8之后新开放了一种对几个固定系统区域的扩展机制Extension,它在一定程度上弥补了沙盒机制对应用间通信的限制。
Extension的出现,为用户提供了在其它应用中使用我们应用提供的服务的便捷方式,比如用户可以在Today的widgets中查看应用展示的简略信息,而不用再进到我们的应用中,这将是一种全新的用户体验;但是,extension的出现可能会减少用户启动应用的次数,同时还会增大开发者的工作量。

(一). 应该沙盒的结构

  1. Documents(文档数据)
    保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录

  2. Library(资源库)
    Library下默认有两个文件夹,Caches文件夹和tmp文件夹

    a. Caches(缓存)
    保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。该文件夹一般用于存储体积大、不需要备份的非重要数据

    b. Preferences(偏好设置)
    保存应用的所有偏好设置,iOS的Settings(设置),应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录

  3. tmp(临时文件目录)
    保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录。iPhone在重启时,会丢弃所有的tmp文件

(二). iTunes同步设备

关于iTunes的同步设备,有一条规律,体积大的文件夹iTunes不会备份,如:Caches和tmp文件夹;体积小的文件夹iTunes会备份,如:Documents和Preferences文件夹

(三). 打开应用沙盒

1.方法一
应用沙盒是在MAC的资源库(Library)目录下,资源库文件夹默认是隐藏的,要显示隐藏的资源库才能查看iPhone模拟器的应用沙盒

(1). 显示隐藏文件,需要在Mac终端输入下面的命令

显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles YES

隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles NO

输完以上命令,并按回车Enter键,退出终端,重新启动Finder就可以了

重启Finder:鼠标单击窗口左上角的苹果标志–>强制退出–>Finder–>重新启动

(2). 沙盒的路径
/Users/sjm/Library/Developer/CoreSimulator/Devices/B713CC38-F99C-4345-83B0-2AF9B61F661D/data/Containers/Data/Application/CE0A877D-DB8F-43C7-BFBB-97333406BFA3
注意:
这里使用的是MAC X 10.11.5,Xcode版本是Xcode7.2.1,不同的OS系统版本或Xcode版本路径名可能稍微有点差异,但是大体思路相同
sjm:Mac用户名
B713CC38-F99C-4345-83B0-2AF9B61F661D:iPhone6S的模拟器
CE0A877D-DB8F-43C7-BFBB-97333406BFA3:自己写的应用程序的沙盒目录

2.方法二
安装SimPholders应用程序,该应用可以轻松查看每一个应用程序的应用沙盒

(四). 使用沙盒机制的好处

  1. 安全:别的App无法修改你的程序或数据

  2. 保护隐私:别的App无法读取你的程序和数据

  3. 方便删除:因为一个App所有产生的内容都在自己的沙盒中,所以删除App只需要将沙盒删除就可以彻底删除程序

二. 获取路径

1. 沙盒路径

(1). NSHomeDirectory函数获取

    NSString *homePath = NSHomeDirectory();

    NSLog(@"%@",homePath);

(2). NSHomeDirectoryForUser函数获取

    NSString *userName = NSUserName();

    NSString *homePath = NSHomeDirectoryForUser(userName);

    NSLog(@"%@",homePath);

2. Documents路径

(1). 用沙盒根目录拼接

    NSString *homePath = NSHomeDirectory();

    // 不建议采用,因为新版本的操作系统可能会修改目录名
    NSString *documentsPath = [homePath stringByAppendingPathComponent:@"Documents"];

    NSLog(@"%@",documentsPath); 

(2). NSSearchPathForDirectoriesInDomains函数获取

    // NSDocumentDirectory:用户的主目录 
    // NSUserDomainMask:代表从用户文件夹下找
    // YES:代表展开路径中的波浪字符“~” 
    // 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素,用firstObject取第一个元素
    NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObject;

    NSLog(@"%@",documentsPath);

3. Tmp路径

(1). NSTemporaryDirectory函数获取

    NSString *tmpPath = NSTemporaryDirectory();

    NSLog(@"%@",tmpPath); 

(2). 用沙盒根目录拼接

    NSString *homePath = NSHomeDirectory();

    // 不建议采用,因为新版本的操作系统可能会修改目录名
    NSString *tmpPath = [homePath stringByAppendingPathComponent:@"tmp"];

    NSLog(@"%@",tmpPath);

4. Library/Caches路径

(1). 用沙盒根目录拼接

(2). NSSearchPathForDirectoriesInDomains函数获取

    NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;

    NSLog(@"%@",cachesPath);

5. Library/Preference路径

(1). 用沙盒根目录拼接

(2). 偏好设置文件不需要获取全路径,通过NSUserDefaults类可以读写Preference目录下的偏好设置文件

应用沙盒 & 数据持久化 & 多线程 & 网络编程 阅读详情

相关推荐

Swift编程深入:iOS沙盒模型应用实战

沙盒模型是一种安全机制,它在计算机系统中创建了一个限制性的环境,用于执行代码或运行应用程序。在这种环境中,程序可以运行,但被限制只能使用预定义的资源和接口,无法与系统中的其他部分自由交互。这种做法旨在隔离潜在危险的代码,保护系统不受恶意软件或不安全行为的影响。在Swift开发中,类是一个提供对文件系统中文件和目录进行操作的工具类。其功能广泛,包括但不限于列出目录内容、复制文件、移动文件、重命名文件、创建和删除目录等。与使用低级C函数相比,使用。

weixin_42560991的博客 914

沙盒sandboxie的使用

沙盒sandboxie的使用

qq_43565940的博客 1万+

Apollo和autoware规划算法代码ros移植-路径规划可跑工程分享

Apollo6.0规划核心代码移植到Ros工程,可编译移植分享

weixin_39735688的博客 8508

【免费下载】 沙盒应用(Sandboxie)使用和安装教程

Sandboxie 的源码仓库通常包括以下几个主要目录: - `src`: 存放核心源代码,包括驱动程序和服务组件。 - `doc`: 文档相关的资料,如API参考或开发者指南。 - `resources`: 图标、语言包等资源文件。 - `build`: 构建脚本和设置,用于编译和打包项目。 - `installer`: 安装程序相关的脚本和配置。 - `samples`: 示例或测试用例。 ...

gitblog_00736的博客 2760

精通DC-DC变换器:Boost升压电路全解析

Boost升压变换器是一种将低直流电压转换为高直流电压的常用电路。其核心工作原理是通过电感储能:开关导通时电感充电,关断时电感与电源串联向负载供电。关键公式表明输出电压Vo=Vi/(1-D),占空比D越大,升压比越高。变换器工作时会产生电感电流纹波和输出电压纹波,需合理选择电感和电容参数。开关管和二极管需承受完整的输出电压,对元器件选型要求较高。理解这些原理是设计高效升压电源的基础。

2511_92918351的博客 3707

AI 赋能测试全生命周期:多 Agent 协同的自动化提效方案

本文提出了一种基于Coze平台的多Agent协同测试解决方案,旨在解决软件测试中PRD解析不清晰、测试点覆盖不全、用例编写效率低、代码生成耗时等痛点。通过PRD优化、测试点生成、测试用例生成和单元测试框架生成四个Agent的协同工作,结合Cursor工具实现从需求到代码的全链路自动化。以电商平台登录模块为例,展示了从模糊PRD到标准化测试用例和可执行Java单元测试代码的完整转化流程。该方案通过AI赋能显著提升测试效率,减少人工干预,实现测试覆盖率≥95%,为快速迭代的软件研发提供了高效的测试自动化支持。

QINJIEEE的博客 1101

沙盒机制:保障安全的应用程序隔离环境

沙盒机制是一种安全机制,用于将应用程序和系统隔离开来,确保应用程序只能在受限的环境中运行。在沙盒中,应用程序无法访问系统资源和敏感数据,从而避免了应用程序之间的相互干扰和数据泄漏的风险。沙盒机制常用于操作系统、浏览器、移动应用等场景,以提供更高的安全性和稳定性。

good7ob的博客 2739

虚幻商城 Quixel 免费资产一键入库

在免费领取所有Megascans之后,我们只是有了获取 Quixel Megascans 资产的资格,但是没有入 Fab 库,本文将讲解通过脚本将 Quixel 所有资产入库 Fab。

一碗清深的博客 3304

iOS 应用沙盒以及应用数据的存储方式

一、应用沙盒 1、概念: 每个iOS应用都有自己的应用沙盒(应用沙盒就是应用的文件夹)。与其他应用系统隔离,应用必须待在自己的沙盒里,其他应用不能访问该沙盒。 2、 如何去访问iOS应用的沙盒? 执行这个语句,可以打印应用沙盒的路径:NSString *str = NSHomeDirectory(); ​ NSLog(@“沙盒路径:%@”,str); 可以发现每次打印的沙盒路径都是变化的,但是访问的还是同一个应用的沙盒路径。 3、可以发现访问的应用沙盒的系统文件目录。假设应用的名

same_life的博客 4833

OpenCV简单应用:图像模糊处理

OpenCV是一个广泛使用的开源计算机视觉库,提供了丰富的图像处理和计算机视觉算法。本文将介绍如何使用OpenCV对图像进行模糊处理,并提供相应的源代码。该函数接受两个参数:第一个参数是输入图像,第二个参数是指定模糊核大小的元组。在这个例子中,我们使用了一个5x5的模糊核。您可以尝试不同大小的模糊核,以获得不同程度的模糊效果。函数和指定不同大小的模糊核,我们可以实现不同程度的模糊效果。该函数接受两个参数:第一个参数是窗口的名称,第二个参数是要显示的图像。在上面的代码中,我们首先使用。要运行上述代码,请将。

MwgmPhilosophy的博客 290

18、地下矿山中人工智能在区分真实微震事件与噪声信号的应用

本文提出一种基于遗传编程(GP)的新型经验模型,用于地下矿山中真实微震事件与噪声信号(特别是爆破信号)的自动区分。针对传统方法和常见机器学习算法存在的黑箱问题、过拟合及准确性不足等局限,GP模型通过符号回归和进化机制生成可解释的数学表达式,具备自动特征选择能力,有效提升了分类准确率。研究使用包含100个样本的真实数据库,结合敏感性分析优化模型参数,并与线性判别分析(LDA)进行对比,结果表明GP模型在分类性能上更具优势。该模型可应用于实时微震监测系统,提高矿山安全生产水平,降低误判带来的成本开销,具有良好的

assembly8low的博客 94

iOS应用沙盒文件权

`iOS`应用沙盒文件权限1.可在`iTunes`、爱思助手中查看沙盒文件。2.可以在`iPhone`中的文件中查看相应文件夹层级以及文件。 1.可在iTunes、爱思助手中查看沙盒文件。 Application supports iTunes file sharing = YES 2.可以在iPhone中的文件中查看相应文件夹层级以及文件。 Supports opening documents in place = YES ...

一了百-了的博客 2479

【2DWT:2维离散小波变换(附Pytorch代码)】

图像信号具有非平稳特性,无法使用一种确定的数学模型来描述,而小波变换的多分辨率分析特性很好地解决了这个问题。小波变化的多分辨率特性使其既可以高效描述图像的平坦区域(低频信息、全局信息),也可以有效处理图像信号的局部突变(高频信息,即图像的边缘轮廓等部分)。小波变换在空域和频域同时具有良好的局部性,使其可以很好地聚焦到图像的任意细节。

NorthSmile的博客 1万+

iOS应用程序沙盒

沙盒文件程序: 1、MyApp.app 存放应用程序束(App Bundle)的文件夹。应用程序束当中存放有App的可执行代码文件以及其相关资源。 应用在安装的时候会给该文件夹进行数字签名,在每次应用启动前进行签名认证。如果对该文件夹进行了修改,那么也会将数字签名破坏,导...

chunqingtai2922的博客 144

ESP32-C3入门教程 WiFi篇①——WiFi Scan 扫描附近AP无线热点 | 堵塞等待扫描结果,回调事件通知扫描结果

文章目录一、快速运行二、运行效果三、程序流畅四、关键函数4.1 扫描所有有效的AP4.2 获取上次扫描中找到的AP列表4.3 获取上次扫描中找到的AP数 一、快速运行 示例项目中,选择WiFi—>scan menuconfig配置ESP32C3-Specific—>Rec 0 芯片选择ESP32-C3(Built-in USB JTAG) 快速运行ESP-IDF Build, Flash and Monitor(左下角) 二、运行效果 三、程序流畅 esp_netif_init,初始

5417

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

iOS开发之应用沙盒

每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒。 模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本) /Users/apple/Library/Application Support/iPhone Simulator/6.0/ Applicati...

weixin_34234829的博客 108

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

使用pymobiledevice3访问iOS应用沙盒文件的技术解析

在iOS开发和安全研究领域,访问应用沙盒文件是一项常见需求。本文将深入探讨如何通过pymobiledevice3工具访问iOS应用的沙盒文件系统,特别是当遇到访问限制时的解决方案。 ## 沙盒访问的基本原理 iOS系统采用严格的沙盒机制,每个应用都运行在自己的独立空间中。正常情况下,一个应用无法直接访问其他应用的文件系统。但通过苹果提供的特殊接口,在特定条件下可以实现对应用沙盒的访问。 ##...

gitblog_07141的博客 478

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

iOS模拟器的应用沙盒在MAC中的位置

每个iOS应用都有自己专属的应用沙盒。分别为 应用程序包 Documents/ Library/Caches/ Library/Preferences/ tmp/ 当运行模拟时,在MAC下找到对应路径的规则随XCode的版本会有不同,在XCode6下的路径为 应用程序包 ~Library/Developer/CoreSimulator/Devices

ZChongr 1935

LibTerm:iOS 平台的沙盒终端应用

**LibTerm** 是一款运行在 iOS 平台上的沙盒终端应用。它支持 Python 3.7 和 Lua 5.3,并允许用户在不越狱的情况下使用终端功能。该项目主要使用 Swift 和 Objective-C 编程语言开发,同时也包含了 HTML、C、CSS 和 Shell 脚本等语言。 ## 2. 核心功能 - **多语言支持**:LibTerm 支持多种编程语言,包括 Python 2

gitblog_00826的博客 468

ios-应用程序沙盒

应用沙盒的文件系统目录 应用沙盒其实就是应用程序所在的那个文件夹,包含了所有的资源文件和可执行文件。 Documents:就是保存应用运行时生成的需要持久化的数据,什么是需要持久化的数据就是保存到硬盘里面的数据,下次我们开机还是可以看到的数据,iTunes在同步设备的时候回备份该目录,比如说游戏的存档一般都保存在该目录下。 tmp:保存应用运行时所需要的临时数据,使用完毕之后再将相应

rv0p111 697

【iOS】iOS数据存储,应用沙盒,XML,Preference,NSKeyedArchiver归档,SQLite3

版权声明:本文为博主原创,如需转载请注明出处。 应用沙盒每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer)模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本) /Users/apple/Library/Application Suppo

yofer张耀琦的专栏 3158

IOS 应用沙盒结构分析

最近接触到IOS文件存储,就把IOS应用沙盒结构目录做一下备份 以便查看 1.应用程序包  包含所有的资源文件和可执行文件 2.Documents: 保存应用运行时生成的需要持久化保存的数据,手机备份工具会备份该目录下的文件 3.tmp: 保存应用运行时所需的临时数据,使用完毕后清除,系统有可能清除该目录下的文件 ,工具不会备份 4.Library/Cach

ivy_hi的专栏 248

iOS 开发查看应用的沙盒文件

在iOS开发中,常常需要将一些信息保存到本地,比如说用户的一些搜索历史等。那么,如何查看所保存的文件呢? 这里介绍两种途径来查看应用的沙盒文件。 方法一:通过Xcode来查看,步骤如下: (1): Xcode中,点击 Window -> Devices (或者使用快捷键 command + shift + 2) (2): 选中自己的设备,也就是iPhone 手机,然后在 Instal...

weixin_30755709的博客 332
上一篇: 控制器之间的数据传递——NSUserDefaults传值
下一篇: iOS数据持久化——属性列表和归档
活在生活里
博客等级 码龄11年 94粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值