超级签名:绕过苹果商店安装APP的方式--linux版本 ,技术全揭秘

一、何为超级签名:

即使用苹果个人开发者账号用Ad_Hoc方式建立分发。

1、优缺点

*优点:*可以利用web直接进行分发,用户点击即可。无需用户进行企业信任;相对企业签而言稳定,但也并不是百分百稳定。仍然面临封号风险。

*缺点:*价格昂贵,由于个人开发者账号设备数量有限只有100台。导致分发成本非常高。国内688元/一年/100台设备。

二、整体流程

1、通过web向用户发送描述文件,让用户安装描述文件从而获取用户的UDID,将获取到的UDID 发送给服务器。

2、服务器自动化登陆开发者账号,注册UDID,同时新建带此UDID的mobileprovision。下载mobileprovision和证书对IPA进行签名。

3、使用itms-services方式让用户下载。

三、技术核心

1、获取UDID
在web服务器上创建一个XML 的描述文件。配置好服务器接收用户的URL地址。当用户安装好描述文件后。会回调你设置的url。

<?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>PayloadContent</key>
        <dict>
            <key>URL</key>
            <string>#requestURL#/signature/udid/#appid#/post</string>
            <key>DeviceAttributes</key>
            <array>
                <string>UDID</string>
                <string>IMEI</string>
                <string>ICCID</string>
                <string>VERSION</string>
                <string>PRODUCT</string>
            </array>
        </dict>
        <key>PayloadOrganization</key>
        <string>#requestURL#</string>
        <key>PayloadDisplayName</key>
        <string>查询设备UDID</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>超级签名</string>
        <key>PayloadIdentifier</key>
        <string>dev.skyfox.profile-service</string>
        <key>PayloadDescription</key>
        <string>本文件仅用来获取设备ID</string>
        <key>PayloadType</key>
        <string>Profile Service</string>
    </dict>
</plist>

2、自动注册UDID 及生成 mobileprovision

此处即是超级签名重点,写到这了不得不感谢一下 Spaceship 了。
Spaceship公开了Apple Developer Center的API,且能在极短时间内进行请求和返回。而且还预留接口。我们可以通过写ruby脚本在实现自动化注册UDID新建描述文件。

  #登陆飞船
spaceship = Spaceship::Launcher.new(account, password)

 #添加新设备号
device = spaceship.device.create!(name:udidname, udid:udid)

#添加描述文件
profile = spaceship.provisioning_profile.development.create!(bundle_id: bundleID,certificate: certs,name: "profilename")

#下载描述文件
aFile = File.write("profile.mobileprovision", profile.download)

以上为 Spaceship 部分ruby调用代码。更具体的方法可以查看Spaceship 的开发文档。

Spaceship DeveloperPortal

3、签名

如果在mac服务器下,将会有很多可以签名的开源工具。然而在linux下,少之又少。
可以自行开发,也可以使用开源工具,isign。
isign工具是为数不多的可以在linux下可以签名的工具。但是此工具对ipa的支持并不完善。有些包会无法签名报错。这个就需要各位自行探索了。

isign

4、分发

重签名后获得的包可以使用itms-services进行分发。

写在最后:

目前很多签名商都会在上传的包内注入动态库,以实现获取安装,安装、点击的数据以及控制app闪退,时间锁等。更有甚者直接窃取用户数据。如果仅仅想要自行分发的话,建议还是自行部署一套吧。

IOS技术开发交流群:685955170

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值