ios沙箱软件_iOS app ipa 与 沙盒

app沙盒

.app:存放程序源文件,上架前经过数字签名,上架后不可修改

Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录

获取路径方法

NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 1, YES)firstObject];

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

NSString *tmp = NSTemporaryDirectory();

Library包含两部分

获取路径方法:

NSString *library = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, 1, YES)firstObject];

Caches:保存那些可再生文件,如网络请求数据(图片,音频,视频,)鉴于此,应用程序最好还是负责删除这些文件,不会被iTunes同步

NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, 1, YES)firstObject];

Preferences:保存应用的所有偏好设置,iOS的Settings(设置)会在该目录中查找应用的设置信息。用NSUserDefaults存储的用户数据都会被保存在该目录下的文件中.iTunes同步设备时会备份该目录

//注意:通常情况下,Preferences是有系统进行维护,我们很少进行操作

NSString *Preferences = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)firstObject];

//stringByAppendingString:将路径与字符串连接在一起拼接为完整路径

NSString *preferencesPath = [Preferences stringByAppendingString:@"/Preferences"];

具体可以查看Mac下iPhone Simulator下的app沙盒,地址如下

Xcode 5及之前

/Users/YourName/Library/Application Support/iPhone Simulator/

Xcode 6及以后

/Users/YourName/Library/Developer/CoreSimulator/Devices/模拟器标识

关于bundle的补充

bundle是一种特定的文件类型,一个主要作用是 获取Resources文件夹中的资源。 bundle是一个目录,其中包含了程序会使用到的资源。这些资源包含了如图像、声音、编译好的代码、nib文件等。

对应bundle,cocoa提供了类NSBundle。我们的程序是一个bundle。在Finder中,一个应用程序看上去和其他文件没有什么区别,但是实际上它是一个包含了nib文件、编译代码、以及其他资源的目录。我们把这个目录叫做程序的main bundle。

[NSBundle mainBundle]是获得NSBundle的一个单例对象,该单例对象 已经设置了默认的resourcePath,也就是你的app打包后的路径,[NSBundle mainBundle]resourcePath]就是获得这个完整的打包后的app路径

iOS app 应用程序下载后,打开,可以看到如下的结构

iTunesArtwork:一张高分辨率的图片

iTunesMetadata.plist:app 的属性列表文件,包含 app store 中看到如公司名、app 名、版本号、谁下载的、版本发布的时间、软件支持的设备等等

META-INF 文件夹:不确定作用

Payload: 里面有个 .app 文件,右键-显示包内容可打开

.app 里面的内容

._CodeSignature:.app 包里其他文件的 hash 列表,用来判断应用程序是否完好无损

资源文件:工程目录下的资源文件如 mp4、未添加到.xcasset 中的图片、lottie 动画资源、字体文件等

Assets.car 文件:把图片放在 Assets.xcassets 有多种好处:

组织清晰

不同分辨率的图片好管理

工程打包后会对图片进行压缩

可以方便设置拉伸、压缩位置等

打包后会对图片同一压缩成 Assets.car 文件,大大减少包的体积,并且根据不同的设备分发不同分辨率的图片

info.plist:工程文件中的 info.plist

.Base.lproj 文件夹: 内部有 .storyboardc 文件

证书:.p12 文件、.der 文件

app 可执行文件

FrameWorks:用到的Framework

.bundle 文件

ipa 文件与 iOS 沙盒有什么关系?

ipa 属于安装包,例如 ipa 里有运行时需要展示的图片、字体之类的,而沙盒属于在 iOS 应用程序安装时创建的属于自己的沙盒文件,用于保存运行时生成的文件,例如从网络下载的图片、运行时产生的数据等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值