目录
简介
苹果app(ipa文件)不能像安卓app(apk)直接安装到手机上,需要借助分发平台安装。常用的分发方式有:App Store上架、TF上架(TestFlight上架)、webClip免签上架 、超级签名、企业签名。
一、上架App Store
打开苹果开发者中心,找到我的app管理页面
https://appstoreconnect.apple.com/https://appstoreconnect.apple.com/
1、创建APP
- 点击加号按钮,创建APP
2、制作预览图
预览图需要无透明度的图片,不能使用模拟器的截屏(但是偶尔也可以通过)。
如果没有苹果真机可以通过ps制作,简单来说就是,用安卓手机、安卓模拟器、浏览器等方式截图然后把顶部的系统栏p掉就可以,做成全面屏展示效果(就是这么简单)
注意要用相似分辨率的手机去截图,这样修改尺寸,才不会拉伸变形!(比如x刘海屏的找个相应的安卓刘海屏去截图)
比如制作6.5寸的截图,测试用小米8刘海屏安卓手机截图去截图iPhone X的,分辨率相似,修改为尺寸1242*2688也不会变形!
截图后把顶部显示时间信号那一栏p掉就行!也就是类似做成全屏显示效果,不要显示系统栏。
或者可以使用一些第三方平台去生成.例如:香蕉云编
香蕉云编 - 生成appstore上架各尺寸截图https://www.yunedit.com/jietu
3、填写审核内容
进入准备提交页面,进入准备提交页面,填写审核内容
- 上传预览图需要无透明度的图片,不能使用模拟器的截屏(但是偶尔也可以通过)。
- 推广文本非必填,
- 描述属于必填项,对APP进行简介。
- 关键词:App Store搜索APP时的联想词,比如火影手游可以加上“火影忍者,横版格斗,热血手游”,圣斗士星矢手游“圣斗士,星矢,卡牌,公平竞技(当然并不公平)”。网易云音乐“网易,音乐,听歌”
- 技术支持网址:填写你公司的官网。如果你帮别人开发的,填他给你提供的网址。
- 营销网址:可选型
- 版本:这个应该不用解释了吧,第一版一般都是1.0.0
- 版权:非网址
4、上传IPA文件
构建版本前要先上传打包好的IPA文件
上传IPA文件主要有三种工具: Xcode 、altool、Transporter app
由于Xcode包比较大,如果不是原生IOS开发者,一般使用Transporter App 工具进行上传。
- 打开 Transporter App 工具,选择要上传的IPA文件
- 选择后,列表会显示选择的IPA文件信息,点击“交付”
- 点击交付后,需要等1分钟左右等待检测审核,通过后会显示在“已交付”列表,说明已经上传成功了,返回苹果开发者中选择构建版本
5、构建版本
通过Transporter App 工具上传的IPA文件会在这里显示,选择要上架的版本,点击完成。
6、填写测试账号
- 登录信息:苹果审核 的时候,如果你的APP需要登录才可以,就勾选一下,并且提供一个账号。
- 联系信息:填写你或者技术主管的联系方式,苹果审核中,如果遇到什么问题,可以通过这里和你们沟通。不过我没遇到过苹果打电话或者发邮件给你。
- 备注:填写一些信息帮助审核。最好录制一个演示视频来展示APP的功能。APP中有NFC,定位这种功能,自觉录制就行。不能直接进行录屏,必须要用另一个手机从第三角度进行拍摄。
7、app信息
- 设置名称,副标题,APP类型别。Apple ID是你的APP在App Store中的唯一标识,APP内检测版本更新会用的到。
内容版权:如果APP内有嵌入广告等,就选是
- 年龄分级,如实选择就行
- 许可协议:如果没有,就不用管
8、价格与销售范围
免费的就选择免费就行,销售范围勾选APP面向客户的国家和地区,税务类别默认App Store软件,如果是游戏或者音乐,选择对应的类别。
9、APP隐私
- 隐私政策网址,里面叙述一下APP用到哪些权限,cookie如何处理,责任声明。
- 数据收集,如果APP内没有记录用户任何行为,就选择否。像美团,淘宝那些喜欢搜集用户行为的,就要如实选择
10、APP审核
这里会记录历史审核内容,点击进APP提交内容,进入详情页面,消息那里会看到和苹果审核团队的沟通记录
11、功能模块
账户内有付费内容,订阅等功能的自行设置,没有的话忽略。
二、上架TestFlight
TestFlight 是苹果公司推出的一款应用测试工具。它可以帮助开发者在应用发布之前,在 iOS、macOS 和 tvOS 上测试应用。TestFlight 可以让开发者向特定的测试用户提供应用的 beta 版本,这些测试用户可以在自己的设备上安装和测试应用。开发者可以使用 TestFlight 收集反馈并在发布之前修复问题。分为内部测试和外部测试。
目前TestFlight 包括iPhone 和 iPad以及 Apple TV 版,对开发者和测试人员来说,都是免费的。参与测试应用,只需三步:接受邀请,安装测试,提供反馈。
1、上传IPA文件
构建版本前要先上传打包好的IPA文件
上传IPA文件主要有三种工具: Xcode 、altool、Transporter app
由于Xcode包比较大,如果不是原生IOS开发者,一般使用Transporter App 工具进行上传。
- 打开 Transporter App 工具,选择要上传的IPA文件
- 选择后,列表会显示选择的IPA文件信息,点击“交付”
- 点击交付后,需要等1分钟左右等待检测审核,通过后会显示在“已交付”列表,说明已经上传成功了,返回苹果开发者中可看到构建版本
2、内部测试
- 点击创建群组
- 创建好群组后,添加测试人员
- 添加人员,填写对应信息
- 发送邀请,被邀请人会收到相应的邮件信息
- 被邀请人接受邀请,需要登录苹果账号
- 登录后,便可以看到并管理对应的APP应用权限
- 添加完人员后,选择内部测试人员
- 邀请人会收到一条邀请测试的邮件信息
- 邀请者需要在IPhone手机安装 TestFlight App,
- 安装后输入邮件中收到的邀请码,兑换后可以看到app,点击安装即可,跟普通App一样使用。
3、外部测试
要在内部测试添加了群组才回出现外部测试的入口
- 创建外部测试群组
- 点击选择构建版本提交审核,审核时间一般要1~2天。
- 审核通过后可以获得公开链接,复制公开链接分享给使用者
- 打开公开链接,如果手机没有安装TestFlight App 会先提示安装流程;如果已经安装TestFlight App 会直接跳转安装App页面
4、注意事项
- 应用外部测试,只需你安装TestFlight 即可匿名参与,无需申请。
- TestFlight 是跟随App Store ID 的,你App Store中的登录账号决定你的测试账号,所以参与测试前请确认一下App Store 登录账号。
- 参与测试的应用安装和使用都是有时间限制的,每个测试版本最高为90天。
- 测试版应用到期后,会无法安装或者打开应用闪退,无法使用。如果到期前开发者递交更新,则可以延长时间,继续使用。
- TestFlight 是测试应用管理工具,你可以在内TestFlight 安装、查看、或者停止测试,请勿卸载TestFlight。
- 开发者有权随时终止应用测试,已经安装的应用依旧可以使用,到期后失效。
- 参与TestFlight 应用测试,仅仅作为测试使用,不能代替App Store版本,如需稳定长期使用,请到App Store 下载/ 购买。
三、webClip免签上架
WebClip是iOS平台下的一种配置文件,可以在iPhone/iPad桌面上生成一个跟普通应用图标一致的快捷方式,点击后可快速访问该网页,在外观上看起来跟原生应用图标完全一致。可以用于H5封装的APP,无需上架即可下载安装。流程:WebClip文件制作 => WebClip文件签名 => WebClip文件下载。Mac电脑使用Apple Configurator、Win电脑可使用iphone配置实用工具。不进行签名也可以下载但是会提示未签名,但为了保证WebClip的安全性和可信度,所以还是有必要进行签名,签名有两种方式:苹果开发者账号签名、SSL证书签名。
1、Mac制作WebClip文件
Mac Appstore 搜索Apple Configurator,下载Apple Configurator 这个应用。但需要 macOS v14 或更高版本。
- 选择【文件】=> 【新建描述文件】
- 填写通用信息
- 填写 web clip 信息
- 点击【文件】=> 【存储】保存配置好的描述文件.mobileconfig
2、Win制作WebClip文件
- 下载iPhone配置实用工具,安装好界面如下
iPhone配置实用工具https://download.csdn.net/download/weixin_40287511/88745708
-
新建
配置描述文件,填写通用
信息
- 在左侧菜单找到Web Clip菜单,单击展开填写对应的信息。
选中列表中要导出的配置描述文件,点击头部菜单导出,保存文件到电脑,文件后缀是.mobileconfig,安全性要选择“无”
导出的文件格式https://download.csdn.net/download/weixin_40287511/88745782
- 生成的.mobileconfig文件可以直接正常下载安装,但会显示未签名
3、苹果开发者签名
需要注册苹果开发者账号并申请苹果开发证书。具体证书申请可查看教程:苹果(IOS)开发证书/发布证书申请
https://blog.csdn.net/weixin_40287511/article/details/132220536
苹果开发证书签名有3中方法:利用系统自带命令签名、python脚本签名、openssl命令签名。
注意:如果【我的证书】列表存在member 开头的证书,会默认使用这些证书进行签名,导致签名后还是显示“未验证”,具体是什么原因未知,知道的大神可以评论区留言。
3.1、找到开发证书名称(手动【打开钥匙串访问】或【终端命令】查看)
- 手动打开钥匙串访问找到【我的证书】
- 右键,点击显示简介
- 复制常用名称
- 终端命令查看:打开终端,执行命令
security find-identity -p codesigning -v
3.2、利用系统自带命令签名(特别推荐此方法,简单暴力)
/usr/bin/security cms -S -N "iPhone .p12证书: XXXX (XXXX)" -i 待签名的描述文件.mobileconfig -o 输入已签名的描述文件.mobileconfig
3.3、使用python进行签名
- python脚本下载地地址:CSDN资源和github。
github下载地址https://github.com/nmcspadden/ProfileSigner
CSDN资源下载https://download.csdn.net/download/weixin_40287511/88745996
- 下载好的python脚本跟上面生成的.mobileconfig文件放到同一个目录下
- python命令行
签名指令 (sign)(推荐使用)
./profile_signer.py -n "iPhone .p12证书: XXXX (XXXX)" sign 输入文件名 输出文件名
加密指令(encrypt)请注意,要在其上安装配置文件的客户端计算机必须具有您使用**签名的证书的**私钥,才能解密配置文件。如果客户端无法解密配置文件,则无法安装它。
./profile_signer.py -n "iPhone .p12证书: XXXX (XXXX)" encrypt 输入文件名 输出文件名
签名并加密指令(both),要在其上安装配置文件的客户端计算机必须具有您使用**签名的证书的**私钥,才能解密配置文件。如果客户端无法解密配置文件,则无法安装它。
./profile_signer.py -n "iPhone .p12证书: XXXX (XXXX)" both 输入文件名 输出文件名
- 打开终端,在终端中 cd 存放python脚本的文件夹,敲入如下指令 签名指令
- 执行后生成的已签名.mobileconfig文件,将这个文件上传到服务器,让用户下载就可(域名必须要SSL证书)
3.4、使用openssl命令签名
- 从钥匙串(keychain)中导出证书:打开【钥匙串访问】->选择要导出的证书,导出生成p12文件 证书.p12
- p12证书分别导出.pem证书和.key密钥文件,方法:打开【终端】输入命令
openssl pkcs12 -in 证书.p12 -clcerts -nokeys -out 证书.pem
openssl pkcs12 -in 证书.p12 -nocerts -nodes -out 证书.key
- 下载 Apple Root Certificate 和 Apple Intermediate Certificate
下载地址https://www.apple.com/certificateauthority/
- 将下载的好AppleIncRootCertificate.cer和AppleISTCA2G1.cer分别转为.pem文件 ,命令:
openssl x509 -inform DER -outform PEM -in AppleIncRootCertificate.cer -out root.crt.pem
openssl x509 -inform DER -outform PEM -in AppleISTCA2G1.cer -out Intermediate.crt.pem
- 在编辑器打开Intermediate.crt.pem和root.crt.pem文件,复制并且粘贴Intermediate.crt.pem 到 root.crt.pem的开始位置,保存,然后你的root.crt.pem文件就是两个证书合并的结果
利用上面的证书.pem和root.crt.pem进行签名和验证.mobileconfig文件 ,命令:
openssl smime -sign -in haozhibo.mobileconfig -out haozhibo.signed.mobileconfig -signer 证书.pem -inkey 证书.key -certfile root.crt.pem -outform der -nodetach
- 生成已经签名验证的.mobileconfig文件
4、SSL证书签名
签名需要用到对应域名的SSL证书信息,不通平台下载的证书可能不一样,主要需要三样文件:私钥(.key)文件、根证书链(.crt或者.pem)、服务器SSL证书(.crt或者.pem)。根证书链和服务器SSL证书可以是同一个文件,下面操作的案例 是从宝塔下载的证书Nginx环境下 就只有两个文件 (privkey.key 和 fullchain.pem),根证书链和服务器SSL证书在同一个文件。
- 将制作好待签名的.mobileconfig 文件和证书文件放在同一个目录下
- 打开终端,在终端中 cd 打开存放上面文件所在的文件夹,输入签名命令
openssl smime -sign -in 未签名的mobileconfig文件名 -out 签名后要生成的mobileconfig文件名 -signer 根证书链文件路径(.crt或者.pem) -inkey 私钥文件路径(.key) -certfile 服务器SSL证书(.crt或者.pem) -outform der -nodetach
5、下载安装描述文件
- 点击允许
- 在设置里面找到【通用】=> 【VPN与设备管理】里面找到已下载的描述文件,点击对应的描述文件,可看到是“已验证”状态,点击安装后即可在桌面看到安装好的app。
四、超级签名
超级签名是使用个人开发者证书生成的,在没有上架app store之前,最多可以添加100台苹果设备的udid进行真机调试,这就是所谓的超级签名。
那么做超级签名的必备条件之一就是个人开发者证书。除此之外,还要用到超级签名分发系统,以便省去手动获取UDID的繁琐,后台可以控制签名机器的数量,原理就是自动添加uuid。但是搭建超级签名分发系统比较复杂,待后面持续更新,下面主要介绍下手动进行超级签名下载。IOS16+版本后,必须要开启开发者模式才能正常打开APP,进行如下操作 设置--隐私与安全--开发者模式 然后会提示重启手机。
- 创建.plist格式的描述文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://www.00huo.com/appdown/pack/haozhibo.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>https://www.00huo.com/appdown/images/logo.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://www.00huo.com/appdown/images/logo.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>www.haozhibo</string>
<key>bundle-version</key>
<string>1.0.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>好直播(IOS16+版本后,必须要开启开发者模式才能正常打开APP)</string>
</dict>
</dict>
</array>
</dict>
</plist>
- 下载.plist文件方法,itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=【.plist文件的下载链接】
五、企业证书
企业签名是一种允许企业为其内部开发的APP进行签名的机制,以便这些APP可以直接安装在员工的设备上,而无需经过App Store的审核。企业签名需要使用企业开发者账号,该账号可以生成企业证书,用于对APP进行签名。企业签名适用于企业内部开发的APP,iOS企业签名并且只能在企业的设备上进行安装。这些APP不能用于外部用户,因为外部用户无法信任该证书。因没有企业开发者账号,所以无法暂时无法进行实操,后续会更新。
六、app分发系统
这里给大家提供一个简易的纯静态的APP分发系统,可以同时下载安卓APP和苹果APP。
- iOS的下载模式你可以根据你的实际情况在这个文件选择
APP分发系统https://download.csdn.net/download/weixin_40287511/88755351