IPA

(苹果应用程序文件格式

IPA是Apple程序应用文件iPhoneApplication的缩写。

使用过 Mac OS 的人可能都知道,Mac 下的软件大部分都只有一个 .app 目录,里面包含了程序全部资源和可执行文件。简单来说,Mac 下的软件就像是 Windows 下的绿色软件一样,解压后即可使用,不需要安装,卸载的话也只用删除程序文件即可(这里不涉及 pkg 格式安装包)。而 ipa 格式可以视为这种 .app 软件的衍生物。

ipa 文件实质是一个 zip压缩包(不是 rar 或 7z 包),包含 3 个组件:payload 目录下的 .app 目录,这个是软件的主程序;iTunesArtwork,实质是一个无后缀名的 png 图片,用来在 iTunes 中显示图标;iTunesMetadata.plist,记录购买者信息、售价等数据。

由于 zip 包不能记录权限和所有者等信息,所以苹果规定了 ipa 的安装方式,即全部 ipa 都会解包安装在 /var/mobile/Applications 目录下,全部文件和目录的所有者及用户组均设为 mobile(ID 为 501),主程序(可执行文件)的权限设为 0755 (所有人都可以执行,但只有所有者可以修改),可执行文件在 plist 中定义。全部目录权限设为 0755,而其它所有文件都设为 0644(仅所有者可以修改,其余人只允许读取,全部人都不允许执行)。

ipa 解包后并非直接放置于 Applications 目录下,而是放在一串由随机码构成的目录下,其作用在于,只允许这个软件运行在一个特定的沙盒(Sandbox)中,不能干扰其他软件。因此那串随机码目录下,除了 ipa 本身的三个组件之外,还有三个目录:Library,一般是用了储存设置文件等数据;Documents,存储数据,多用来保存存档;tmp,临时文件夹。

由于这个软件只能在这个特定的目录下运行(当然了,部分程序会调用系统的通讯录、相机等组件,但仍然是受限制的),从而保证了整个系统的安全性和稳定性。之前提到过,ipa 软件是被安装在一个类似于沙盒的环境中,除了能对 /var/mobile/Media/DCIM 目录(拍照、截图存放目录)进行操作,或是调用壁纸、铃声、相机等组件,不能对系统进行任何干涉,这样在最大程度上保证了系统的稳定运行,也不会干扰其它软件的正常使用。但问题是,由于 ipa 软件的权限很低,想要对系统进行修改,尤其是应用补丁时,ipa 就无能为力了。


安装方式

ipa 软件官方的安装方式有两种,一是在 App Store 这个软件中下载安装,二是用 iTunes 同步。

前者的问题主要是网络问题,网速不好很容易安装失败;GPRS之类的上网安装又很耗流量。后者的问题主要是不能在不同系统下使用(包含不同电脑和同一部电脑上的不同系统),在其它系统上同步会抹掉原有的软件。当然了,iTunes 每次同步时间比较长也是经常被人诟病的。尤其是当安装软件比较多的时候,每次同步之前的备份需要很长很长时间,这个很恶心(不过可以直接 X 掉备份操作)。

由于以上两种方式存在一些问题,所以很多人会选择使用 Installous 或 91 来安装 ipa,这也确实是个不错的选择。

Installous 一般没什么问题,但对部分验证比较严格的 ipa 处理不是很好。虽然 Installous 基本能代替 iTunes,但毕竟不完全等同。最典型的就是 Installous 安装 Microsoft 官方出的 Live Messenger (正版,非破解版)时不能运行。实际上 Installous 对很多未破解的正版软件支持不是很好。

至于91,经常被人批评。91 虽然可以安装 ipa,但除了 Installous 都有的正版软件的支持问题外,由于91的安装机制有缺陷,软件不能实现多语言,只会使用英文界面,而忽略掉 zh_CN.lproj,zh_TW.lproj 这些语言包。这对那些用希望使用汉化版的人来说实在是一个悲剧。所以通常是要避免使用91来安装 ipa 的。

IPA (苹果应用程序文件格式)相关推荐

  1. IOS学习之appStore上传苹果应用程序软件发布流程

    原文地址:appStore上传苹果应用程序软件发布流程 兄弟们:最新的界面图片已经更新. 我也很忙,问问题的话尽量有个大概的了解,别问太多问题,我是个屌丝,要工作赚钱. 首先确定帐号是否能发布, ht ...

  2. Windows应用程序文件格式转换控件LEADTOOLS ePrint Professional

    2019独角兽企业重金招聘Python工程师标准>>> LEADTOOLS ePrint Professional控件是一个多功能一体化文件转换解决方案,它可帮助您将任何Window ...

  3. qt 苹果应用程序_什么是苹果的电视应用程序,您应该使用它吗?

    qt 苹果应用程序 Apple's TV app, which recently appeared on iOS devices and Apple TV, is meant to help user ...

  4. 苹果小程序闪退 camera组件

    苹果小程序闪退 camera组件 在用到camera组件的时候会出现闪退 第一种情况:测试机型:X.8百分百闪退情况:多个页面用到camera组件,但是没有完全关闭. i6概率闪退,安卓基本没问题 第 ...

  5. 苹果应用程序商店_苹果TF上架丨Testflight如何使用?

    微导流--旨在为企业开发者提供效率工具 识别上方二维码进入微导流首页 ▲▲▲▲▲ 很多人都注意到testflight早就更新了图标,也开始支持苹果小程序了,说明苹果对于testflight这个内测商店 ...

  6. 苹果小程序上下拉出现留白情况

    苹果小程序上下拉出现留白情况 今天做小程序测试发现一个bug,小程序上下拉的时候会出现留白底的情况,或者是红底的情况,安卓机不会出现这种情况 解决方法分多种 1.第一种,如果你只是需要解决他颜色的问题 ...

  7. iOS - App Clip「苹果小程序」

    App Clips是什么? 官方对其的定义是-- App clips are a great way for users to quickly access and experience what y ...

  8. 「苹果小程序」App Clips 和微信小程序区别在哪?我们做了一次上手实操

    作者|何世友.彭权华 阅读原文 6 月 23 日,Apple Park 的观众席上空无一人,但此时一场特别的「科技春晚」正在上演. 在 2020 年的 WWDC 大会中,自 iOS 7 以来变动最大的 ...

  9. 第八章 Android 原生程序开发与逆向分析(三)(原生程序文件格式)

    文章目录 原生程序文件格式 原生程序的文件类型 AArch64 ELF 文件格式 e_ident e_type e_machine e_version e_entry e_phoff e_shoff ...

  10. appStore上传苹果应用程序软件发布流程

    首先确定帐号是否能发布, https://developer.apple.com/account,如果你打开Provisioning Portal,然后点击DisTribution看到的是下图中那样, ...

最新文章

  1. OKR工作法没有用好陷入了这三个坑
  2. Asp.net实现在线截图(大图截取为小图)
  3. vue怎么使用eval_Webpack 构建工具手把手教你怎么用
  4. C++ 指向指针的指针(多级间接寻址)
  5. 操作系统之进程调度——优先权法和轮转法(附上样例讲解)
  6. HTML文档包应含几个基本标记,HTML中包含哪些基本的标记?
  7. 安装MariaDB和Apache
  8. 数据结构-直接寻址表
  9. 面向对象 封装 集成 特性
  10. 美团Android自动化之旅—生成渠道包
  11. 【OpenCV 例程200篇】59. 非线性滤波—双边滤波
  12. python基于值的内存管理模式_为什么说python采用的是基于值的内存管理模式
  13. 免校准的电量计量芯片_交直流两用计量芯片HLW8112
  14. LeetCode 74. Search a 2D Matrix
  15. 关于FbinstTool加入360急救盘见解
  16. 性能(八)Postman汉化踩坑
  17. ubuntu 18.04 更新显卡驱动
  18. day16正则表达式作业
  19. python解析pdf中文乱码_Python解决中文乱码.pdf
  20. matlab零阶保持器的作用,5.8 记忆模块、零阶保持器、一阶保持器

热门文章

  1. mybatis case when
  2. Bad client credentials
  3. 【私有,不喜勿入】健康
  4. 周志华 《机器学习》之 第十二章(计算学习理论)概念总结
  5. 嵌入式pcb打造超薄降压模块让14500锂电池直接替代5号电池
  6. 谈谈商业合作中的“男人来自火星,女人来自金星”
  7. 【英语:基础高阶_全场景覆盖表达】K3.口语陈述的思维拓展
  8. 一键清理系统垃圾文件
  9. Nodejs ORM Prisma 介绍
  10. 码率、帧率和I B P帧