Xcode 无证书打包
写这篇博客的原因是:公司申请了很长时间的苹果企业账号,却久久没有回应,同时又没有苹果个人账号以及公司账号,但 app 又急着给用户用;无奈之下只好找第三方服务进行企业重签。在没有证书的情况下,我只好打一个自签名的安装包给第三方了;打包的过程遇到一些小坑,因此记录下这次经历,方便于有需要的人!
1. 在 Xcode 里登录无证书的开发者账号,然后创建自签名证书
2. 选择刚创建的自签名证书,如果下面出现警告,那么 fix issuse 即可
3. 在 edit scheme 中设置 run 的模式为 realese 模式
4. run 过之后,在 finder 中全局搜索你的 app。(注意如果你的工程名位 XXX,那么请搜索 XXX.app; 记得选择最近编辑的那个.app 文件)
5. 将生成的.app 文件转成.ipa 文件。
这里就有个坑了,老版本的 iTunes 直接可以在我的应用程序里将.app 文件转换成.ipa 文件里;但在新版本的 iTunes 里费了很大劲怎么也找不到此选项,只好找其他办法来完成此过程。下面推荐一种解压改后缀的方式:
这种方式是在 xcode 编译产生出.app 包的基础上进行进一步处理,通过简单的压缩以及该后缀名即可实现 ipa 发包。
这种方式下又可通过脚本自动处理以及手动处理两种途径实现,推荐脚本方法,一劳永逸。
(1) 脚本自动生成 ipa 包
Step1: 新建文件夹,命名为“distribute”,新建 distribute.sh 脚本文件,内容为:
1 | // 注意,脚本中所有appName请先替换成你的真正app名称 |
Step2: 将要转化的.app 文件放到 distribute/文件夹下
这时的文件夹目录结构是这样的:(注意,脚本中所有 appName 请先替换成你的真正 app 名称)
1 | distribute/distribute.sh |
Step3: 运行 distribute.sh 脚本
打开 Terminal,cd 到 distribute 文件夹下,输入./distribute.sh
。如果提示permission denied
,则用chmod 777 distribute.sh
命令赋予权限后,再执行一次./distribute.sh
。
Step4: 大约若干秒后,会在 distribute/文件夹下生成 appName/文件夹,里面的 appName.ipa 就是我们想要的包。
(2) 手动压缩改后缀方式
这种方式与上面的方式本质是一样的。
Step1: 新建“Payload”文件夹,注意名字要一字不差;
Step2: 将你的.app 包放到 Payload 中,注意 app 的名字不做任何更改,就用 xcode 生成的 app 名称;
Step3: 在 Payload 文件夹上右键压缩成 zip,然后将生成的.zip 文件后缀改成.ipa 即可