Class: Pilot::BuildManager
Instance Attribute Summary
Attributes inherited from Manager
#config
Instance Method Summary
collapse
Methods inherited from Manager
#app, #fetch_app_id, #fetch_app_identifier, #login, #start
Instance Method Details
#list(options) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/pilot/build_manager.rb', line 47
def list(options)
start(options)
if config[:apple_id].to_s.length == 0 and config[:app_identifier].to_s.length == 0
config[:app_identifier] = ask("App Identifier: ")
end
builds = app.all_processing_builds + app.builds
builds.sort! {|a, b| a.upload_date <=> b.upload_date }
rows = builds.collect { |build| describe_build(build) }
puts Terminal::Table.new(
title: "#{app.name} Builds".green,
headings: ["Version #", "Build #", "Testing", "Installs", "Sessions"],
rows: rows
)
end
|
#upload(options) ⇒ Object
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/pilot/build_manager.rb', line 3
def upload(options)
start(options)
UI.user_error!("No ipa file given") unless config[:ipa]
UI.success("Ready to upload new build to TestFlight (App: #{app.apple_id})...")
plist = FastlaneCore::IpaFileAnalyser.fetch_info_plist_file(config[:ipa]) || {}
platform = plist["DTPlatformName"]
platform = "ios" if platform == "iphoneos" package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(app_id: app.apple_id,
ipa_path: config[:ipa],
package_path: "/tmp",
platform: platform)
transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider])
result = transporter.upload(app.apple_id, package_path)
unless result
UI.user_error!("Error uploading ipa file, for more information see above")
end
UI.message("Successfully uploaded the new binary to iTunes Connect")
if config[:skip_waiting_for_build_processing]
UI.important("Skip waiting for build processing")
UI.important("This means that no changelog will be set and no build will be distributed to testers")
return
end
UI.message("If you want to skip waiting for the processing to be finished, use the `skip_waiting_for_build_processing` option")
uploaded_build = wait_for_processing_build
if options[:changelog].to_s.length > 0
uploaded_build.update_build_information!(whats_new: options[:changelog])
UI.success "Successfully set the changelog for build"
end
return if config[:skip_submission]
distribute_build(uploaded_build, options)
UI.message("Successfully distributed build to beta testers 🚀")
end
|