SpaceShip自动创建iOS描述文件

2,522 阅读2分钟

最近研究了下超级签相关的流程,曾视图通过web登录Apple开发者后台,通过charles抓包的方式分析接口,然后用脚本进行自动化处理。但是由于session,token等相关参数无法准确定位到,所以放弃了这种做法,正好Spaceship已经集成了先功能,可以通过提供的相关接口实现功能。

require 'spaceship'

Spaceship.login('Apple ID','Apple password')
# 第一次运行的时候可能会提示需要双重认证,填写验证码。
#参数传入true表示要新增设备,例如:ruby fastlanetest.rb true
if ARGV[0] == "true"
    puts "你输入的是true"
    # file = File.open("Device_mushao_ios.txt")#文本文件里录入的udid和设备名,设备类型用tab分隔
    # file.each do |line|
    #     arr = line.strip.split("\t")
    #     # device = Spaceship.device.create!(name:arr[1], udid:arr[0],devicePlatform:arr[2])
    #     device = Spaceship.device.create!(name:arr[1], udid:arr[0], mac:false)
    #     puts "add device: #{device.name} #{device.udid}  #{device.model}"
    # end

    #获取所有的iPhone设备
    oldDevices = Spaceship.device.all_iphones
    # puts "all old iphones count = #{oldDevices.count}"
    # puts "all old iphones detail = #{oldDevices}"

    # 让设备可用
    # device = Spaceship.device.find_by_udid('a95b64a4b3c074b685d497675f88e69654dbe07d',include_disabled:true)
    # puts "当前要解除的设备  device=#{device}"
    # puts "当前要解除的设备  udid=#{device.udid} model=#{device.model}"
    # device.enable!

    #获取描述文件
    profiles = Spaceship.provisioning_profile.development.all
    # puts "alldevelopents = #{profiles}"
    profiles.each do |obj|
        puts "name = #{obj.name}"
        if obj.name == "ruby_0902"
            #下载描述文件
            File.write("/Users/chiyz/Desktop/测试项目/ruby脚本签名/0903.mobileprovision",obj.download)
        end
    end


    #获取证书列表
    # certificate = Spaceship.certificate
    # # # puts "certificate = #{certificate.all.count}"
    # devCer = certificate.find("39TAtsafdsa5")
    # puts "devCer = #{devCer}"

    # #创建描述文件
    # profile = Spaceship.provisioning_profile
    # # puts "type = #{profile}"
    # # profile.type = "iOS Development"
    # profile.Development.create!(name:"ruby_0902",bundle_id:"com.yfagam.abc",certificate:devCer , devices:oldDevices,mac:false,)

    


else
    puts "你输入的不是true"
end
    # file = File.open("multi.txt")
    # file.each do |line|
    #     arr = lin.strip.split("\t")

Spaceship可以通过gem进行安装。

  • 本人的安装路径是/usr/local/lib/ruby/gems/2.6.0/gems/fastlane-2.128.0
  • 可以根据自己的的实际情况进行查看API文档,
  • 安装方法

sudo gem install fastlane

参考链接使用spaceship批量添加设备并更新profile

服务端上传mobileConfig文件通过Safari获取设备UDID

iOS超级签名原理