今天我们来讲讲苹果超级签名,对于新手感觉无从下手,那么我将分析利弊,希望能帮到你!
市面上,mac环境下的第三方签名工具很多。但主要问题是需要mac环境的主机,这个就很麻烦,我们这里不推荐!
还有呢就是通过Linux的环境来签名,这个可用的工具较少,但主流的服务器都是用Linux来搭建的。这里我们主要来讲讲这个环境下,我们应该怎么来签名!
签名你可能听过比较有名气的:Spaceship
Spaceship
优点
功能强大。几乎所有你在浏览器上对Apple Developer Center 和 App Store Connect的操作都可以通过Spaceship命令解决。
cookie有效期比较长。上面讲了Spaceship的原理是模拟网页请求,所以得先登录(账号、密码),登录后cookie保留在本地,有效期一个月,cookie失效前请求API不需要在登录。
缺点
需要登录两次。Apple Developer Center 和 App Store Connect 需要分别登录,一方生成的cookie对另一方可能不管用。
双重认证。如果你的开发者账号开了双重认证,那登录的时候还需要验证码。验证码这个东西使整体可用性大大降低。
对Window系统支持不友好。Spaceship是Fastlane的子工具,是Ruby开发的,需要Unix(Mac)环境。有人说Window上也可以跑Ruby。大家可以自行尝试。
非官方API。因为是非官方API,所以后续如果苹果有改动,可能就用不了了,得Spaceship作者及时更新才行。
App Store Connect API
优点
不需要登录。App Store Connect API是利用私钥生成token来访问API的。不需要提供开发者账号密码,相对也更安全。
REST API。App Store Connect API是REST API,这决定了其调用更方便,不受操作系统等限制。
官方API。维护有保障,即使后续苹果调整了网页内容,其相应API也不会受影响。
缺点
功能受限。App Store Connect官方文档列出来的API不多,其实还有很多操作苹果都没有提供相应的API,这使得可用性降低,只能期盼后期苹果能多开放一些API。
token有效期较短。token有效期只有20分钟,过期后得重新生成token。
不过整体来说,区别不大,App Store Connect API 的方式限制少
便于控制和扩展!实际的使用中,访问也不会很慢!这里我主要讲App Store Connect API方式下,应该怎么调用接口。
这里我推荐:https://juejin.im/post/6844904032268451848这篇文件写的非常好,App Store Connect API 的接口都有说到。这里我就不详细赘述了,但是里面没有具体的编码。
通过分析调试接口,我编码了PHP方式的接口,全部调试通过,拿来就可以使用。喜欢的童鞋可以拿去
https://github.com/lansexin/iosapi
接口调用前,希望你准备好以下:
1.一个可用的苹果开发者账号
2.请求App Store Connect API访问权限。登录:App Store Connect后台,“用户和访问” - “密钥”,点击“请求访问权限”。只有agent才有权限。
2.生成密钥。
申请访问权限后,才会看到“生成密钥”的按钮,点击“生成密钥”,根据提示起个名字,完成后会产生一个“Issuer ID”和“密钥ID”,这两个参数后面生成token需要用到。下载密钥,密钥是一个.p8的文件,注意:私钥只能下载一次,永远不会过期,保管好,如果丢失了,去App Store Connect后台撤销密钥,否则别人拿到也可以用。
接口说明:https://github.com/lansexin/iosapi
Apapi.php 该文件是接口初始化入口。需要传递上面生成的相关key和秘钥p8
getCSR() 1.获取CSR文件。
get_distribution_pem() 2.获取distribution_key.pem文件。
exportP12(); 3.导出p12文件。
createProvision() 4.生成profile,并下载mobileprovision文件。
里面的内容都有注释,希望对你有帮助!
有现成案例:www.aisignapp.com,可以测试