一句话结论:签名要的输入物只有一个——IPA(iOS 安装包,苹果应用的打包格式)。它跟你用什么电脑开发无关,也跟源码在不在你手上无关。你真正要解决的从来不是”怎么开发”,而是”怎么拿到一个结构完整、没被损坏的 IPA 文件”。
为什么一定要先搞清楚”要什么”
很多人第一次问签名,开口就是”我这个 App 能不能签”,接着发过来一条 App Store(苹果官方应用商店)的商店链接、一个安卓安装包,或者一个压缩包。这三种都不能直接签名,原因是它们根本不是同一类东西。
- 商店链接:那是商店里已经上架的版本,签名方拿不到安装包本身。要签的是这个链接对应的那个 App,也得先把包取出来。
- 安卓包:安卓与 iOS(苹果移动操作系统)是两套完全不同的体系,包格式、签名方式、运行机制都不通用,不存在”转一下就能用”的说法。
- 压缩包:如果压的是工程文件夹或者开发工具产出的目录,里面没有打包好的 IPA,同样签不了。
判断标准非常简单:看文件后缀是不是 .ipa。是,就能进下一步;不是,就得先把它变成是。
第一条路:找开发方要,最省事也最容易被跳过
这条成本最低,却经常被忽略。只要 App 是别人帮你开发的,交付时本来就应该产出 IPA,这是标准交付物的一部分。需要注意的是要哪一种:
- 开发调试包:开发设备上直接跑的版本,通常绑定了有限的测试设备,重签有时能过,有时不稳。
- 临时分发包(Ad Hoc,限定设备清单的分发方式):重签兼容性相对好一些,但仍受设备清单约束。
- 发布版本包:提交商店那一版,结构最干净,是拿来签名最理想的一种。
把”我要发布那一版导出来的 IPA”这句话说清楚,能省掉后面一整轮来回。如果开发方回一句”我这边没有,你去商店下”,那基本说明交付没做完,属于商务环节要谈的事,不是技术问题。
第二条路:用别人的苹果电脑,或者租一台云端的
自己没有苹果电脑,可以借。这里有三种落地方式:
- 找开发方或朋友代导出:让他们用 Xcode(苹果官方开发工具)导出一份发布版本的 IPA 发给你,通常半天内能解决。
- 用云端苹果电脑租用服务:按小时租一台远程苹果电脑,自己连上去操作导出流程。适合以后还会反复出包的团队,一次几百块的投入换来的是随时能出包。
- 用持续集成平台的苹果构建节点:这类平台自带苹果构建机,配好打包脚本之后,每次提交代码自动产出 IPA。适合有稳定迭代节奏的产品。
这条路的前提是你要握有一份能编译通过的代码,以及配套的证书与描述文件。如果代码不在手上,就只剩第一条路可走。
第三条路:抠别人的成品包,能不做就不做
还有一种做法,是拿别人已经上架或者在用的成品,想办法把它还原成一份可签名的文件。这条路的问题不在可行性,在后果:抠出来的包往往不完整、资源缺失、运行时会闪退,而且牵涉到修改他人应用的风险。正规签名服务基本都会拒收这种来源不明的包。
如果你的应用本身就涉及归属争议,更建议先把使用许可谈清楚,再来谈分发,不然后面的麻烦比签名本身大得多。
拿到包之后必须先做的两件事
第一,自己在本机解压试一下。IPA 实质是一个压缩包,能被正常解压说明结构没坏;打不开或者提示损坏,多半是传输过程出了问题,重传一份即可。
第二,确认包名和版本号。应用名称、Bundle ID(应用包名,应用的唯一标识)、版本号这三项要跟你预期的一致。有些开发方给的是半年前的旧包,签完发现是旧功能,白折腾一轮。
小结
没有苹果电脑不等于拿不到包。优先级是:先问开发方要发布版本的 IPA,这条路走不通再考虑租云端苹果电脑自己导出,其余办法尽量别碰。确认后缀是 .ipa、能正常解压、版本对得上,就可以去谈签名了。
我是本期作者小思,想解决苹果企业签名、超级签名、TF签名问题?可以在微信公众号对话框找到我哦~(QQ:822404920 微信:A-mk5888)