前提
Mac 成功安裝 fastlane!!!
spaceship文檔
- Developer Portal API
所有的操作里面都是example代碼范例
登錄 & 選擇關聯(lián)開發(fā)組
Spaceship.login('540933120@qq.com', 'xxxxx')
#選擇關聯(lián)開發(fā)組(個別賬號關聯(lián)多個開發(fā)組)
Spaceship.client.select_team(team_id:'N5235XXXX',team_name:'XXXXXXXX Network Technology Co., Ltd.')
同時也可以這么寫(跟上面是等效的)
Spaceship::Portal.login("felix@krausefx.com", "XXXX")
創(chuàng)建App & 證書 & 描述文件
# 新建app
#app = Spaceship.app.create!(bundle_id: "com.yk.testing.ios", name: "SpaceshipTestApp")
#獲取證書: apple_distribution xcode11之前用:production
cert = Spaceship.certificate.apple_distribution.all.first
#cert = Spaceship.certificate.apple_development.all.first
puts "certName: + #{cert}"
# 創(chuàng)建描述文件(不能重復創(chuàng)建名字相同的證書)
# ad_hoc:開發(fā)卵迂,app_store:發(fā)布贈書
# app.bundle_id = "com.yk.testing.ios"
profile = Spaceship.provisioning_profile.ad_hoc.create!(name:"testDevProFile",bundle_id: "com.yk.testing.ios", certificate: cert)
puts("Created Profile " + profile.name)
# 下載描述文件
File.write("/Users/mac/Desktop/spaceship/aaa/#{profile.name}.mobileprovision", profile.download)
設備信息
disabled_devices = Spaceship::Portal.device.all(include_disabled: true).select do |device|
puts "設備: #{device.name} UDID: #{device.udid}"
end
添加設備
# 獲取所有設備
all_devices = Spaceship::Portal.device.all
# 查找設備
device = Spaceship::Portal.device.find_by_udid("4b4eb514629e8e486b....", include_disabled: true)
puts "設備: #{device}"
# 新增設備
#Spaceship::Portal.device.create!(name: "Private iPhone 6", udid: "5814abb3...")
描述文件更新設備
# 證書更新設備
profile.devices = Spaceship::Portal.device.all
profile.update!
下載 & 更新PP證書范例
保存為 a.rb
執(zhí)行:cd到指定目錄 然后執(zhí)行:ruby a.rb
require "spaceship"
#目標應用id
bundle_id = "com.dd.xxx.ios"
#pp證書下載路徑
path = "/Users/mac/Desktop/spaceship/aaa/"
#賬號密碼(首次會進行雙重認證)
Spaceship.login('540933120@qq.com', 'xxxxxx')
#選擇關聯(lián)的開發(fā)組
Spaceship.client.select_team(team_id:'N5235XXXXX',team_name:'XXXXX Network Technology Co., Ltd.')
# 獲取所有的development的描述文件
#downloadProfiles = Array.new
##downloadProfiles += Spaceship.provisioning_profile.app_store.all
#downloadProfiles += Spaceship.provisioning_profile.ad_hoc.all
#downloadProfiles += Spaceship.provisioning_profile.development.all
#
#downloadProfiles.each do |p|
# puts "描述文件: #{p.name} - 應用包名: #{p.app.bundle_id}"
# #打印所有證書名字
# if p.app.bundle_id == bundle_id
# File.write("#{path}#{p.name}.mobileprovision", p.download)
# puts "\033[34m??????操作成功"
# return
# end
#end
# 獲取指定bundld的描述證書
profile = Spaceship::Portal.provisioning_profile.ad_hoc.all.find { |p| p.app.bundle_id == bundle_id }
if profile == nil
profile = Spaceship::Portal.provisioning_profile.development.all.find { |p| p.app.bundle_id == bundle_id }
end
if profile != nil
# 證書更新設備
profile.devices = Spaceship::Portal.device.all
profile.update!
File.write("#{path}#{profile.name}.mobileprovision", profile.download)
puts "\033[34m??????操作成功"
return
end
#獲取證書: apple_distribution xcode11之前用:production
cert = Spaceship.certificate.apple_distribution.all.first
#cert = Spaceship.certificate.apple_development.all.first
puts "證書名字: #{cert}"
# 創(chuàng)建描述文件(不能重復創(chuàng)建名字相同的證書)
# 打包的方式裕便。方式分別為 development, ad_hoc, app_store,in_house
# app.bundle_id = "com.yk.testing.ios"
profile = Spaceship.provisioning_profile.ad_hoc.create!(name:bundle_id,bundle_id: bundle_id, certificate: cert)
# 證書更新設備
profile.devices = Spaceship::Portal.device.all
profile.update!
puts("創(chuàng)建描述文件: " + profile.name)
# 下載描述文件
File.write("#{path}#{profile.name}.mobileprovision", profile.download)
puts "\033[34m??????操作成功"