fastlane 2.68.0.beta.20171129010003 → 2.68.0.beta.20171130010004

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/fastlane/lib/assets/ActionDetails.md.erb +2 -2
  3. data/fastlane/lib/fastlane/actions/appstore.rb +3 -32
  4. data/fastlane/lib/fastlane/actions/build_android_app.rb +14 -0
  5. data/fastlane/lib/fastlane/actions/build_app.rb +14 -0
  6. data/fastlane/lib/fastlane/actions/build_ios_app.rb +143 -0
  7. data/fastlane/lib/fastlane/actions/capture_android_screenshots.rb +57 -0
  8. data/fastlane/lib/fastlane/actions/capture_ios_screenshots.rb +55 -0
  9. data/fastlane/lib/fastlane/actions/capture_screenshots.rb +14 -0
  10. data/fastlane/lib/fastlane/actions/cert.rb +6 -60
  11. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +53 -0
  12. data/fastlane/lib/fastlane/actions/create_app_online.rb +76 -0
  13. data/fastlane/lib/fastlane/actions/deliver.rb +6 -56
  14. data/fastlane/lib/fastlane/actions/docs/frameit.md +2 -1
  15. data/fastlane/lib/fastlane/actions/frame_screenshots.rb +62 -0
  16. data/fastlane/lib/fastlane/actions/frameit.rb +6 -53
  17. data/fastlane/lib/fastlane/actions/get_certificates.rb +69 -0
  18. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +88 -0
  19. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +82 -0
  20. data/fastlane/lib/fastlane/actions/gym.rb +6 -133
  21. data/fastlane/lib/fastlane/actions/match.rb +3 -87
  22. data/fastlane/lib/fastlane/actions/pem.rb +6 -73
  23. data/fastlane/lib/fastlane/actions/pilot.rb +3 -55
  24. data/fastlane/lib/fastlane/actions/precheck.rb +6 -44
  25. data/fastlane/lib/fastlane/actions/produce.rb +6 -66
  26. data/fastlane/lib/fastlane/actions/run_tests.rb +105 -0
  27. data/fastlane/lib/fastlane/actions/scan.rb +6 -96
  28. data/fastlane/lib/fastlane/actions/screengrab.rb +6 -48
  29. data/fastlane/lib/fastlane/actions/sigh.rb +6 -79
  30. data/fastlane/lib/fastlane/actions/snapshot.rb +6 -46
  31. data/fastlane/lib/fastlane/actions/supply.rb +3 -56
  32. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +99 -0
  33. data/fastlane/lib/fastlane/actions/testflight.rb +3 -32
  34. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +67 -0
  35. data/fastlane/lib/fastlane/actions/upload_to_play_store.rb +68 -0
  36. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +67 -0
  37. data/fastlane/lib/fastlane/version.rb +1 -1
  38. data/spaceship/lib/spaceship/client.rb +1 -1
  39. metadata +19 -2
@@ -0,0 +1,53 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ end
5
+
6
+ class CheckAppStoreMetadataAction < Action
7
+ def self.run(config)
8
+ require 'precheck'
9
+ Precheck.config = config
10
+ return Precheck::Runner.new.run
11
+ end
12
+
13
+ def self.description
14
+ "Check your app's metadata before you submit your app to review (via `precheck`)"
15
+ end
16
+
17
+ def self.details
18
+ "More information: https://fastlane.tools/precheck"
19
+ end
20
+
21
+ def self.available_options
22
+ require 'precheck/options'
23
+ Precheck::Options.available_options
24
+ end
25
+
26
+ def self.return_value
27
+ return "true if precheck passes, else, false"
28
+ end
29
+
30
+ def self.authors
31
+ ["taquitos"]
32
+ end
33
+
34
+ def self.is_supported?(platform)
35
+ platform == :ios
36
+ end
37
+
38
+ def self.example_code
39
+ [
40
+ 'check_app_store_metadata(
41
+ negative_apple_sentiment(level: :skip), # Set to skip to not run the `negative_apple_sentiment` rule
42
+ curse_words(level: :warn) # Set to warn to only warn on curse word check failures
43
+ )',
44
+ 'precheck(...) # alias for "check_app_store_metadata"'
45
+ ]
46
+ end
47
+
48
+ def self.category
49
+ :misc
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,76 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ PRODUCE_APPLE_ID = :PRODUCE_APPLE_ID
5
+ end
6
+
7
+ class CreateAppOnlineAction < Action
8
+ def self.run(params)
9
+ require 'produce'
10
+
11
+ return if Helper.test?
12
+
13
+ Produce.config = params # we alread have the finished config
14
+
15
+ Dir.chdir(FastlaneCore::FastlaneFolder.path || Dir.pwd) do
16
+ # This should be executed in the fastlane folder
17
+ apple_id = Produce::Manager.start_producing.to_s
18
+
19
+ Actions.lane_context[SharedValues::PRODUCE_APPLE_ID] = apple_id
20
+ ENV['PRODUCE_APPLE_ID'] = apple_id
21
+ end
22
+ end
23
+
24
+ def self.description
25
+ "Creates the given application on iTC and the Dev Portal (via `produce`)"
26
+ end
27
+
28
+ def details
29
+ [
30
+ 'Create new apps on iTunes Connect and Apple Developer Portal via `produce`.',
31
+ 'If the app already exists, `create_app_online` will not do anything.',
32
+ 'For more information about produce, visit its GitHub page:',
33
+ 'https://github.com/fastlane/fastlane/tree/master/produce'
34
+ ].join(' ')
35
+ end
36
+
37
+ def self.available_options
38
+ require 'produce'
39
+ Produce::Options.available_options
40
+ end
41
+
42
+ def self.output
43
+ [
44
+ ['PRODUCE_APPLE_ID', 'The Apple ID of the newly created app. You probably need it for `deliver`']
45
+ ]
46
+ end
47
+
48
+ def self.author
49
+ "KrauseFx"
50
+ end
51
+
52
+ def self.is_supported?(platform)
53
+ platform == :ios
54
+ end
55
+
56
+ def self.example_code
57
+ [
58
+ 'create_app_online(
59
+ username: "felix@krausefx.com",
60
+ app_identifier: "com.krausefx.app",
61
+ app_name: "MyApp",
62
+ language: "English",
63
+ app_version: "1.0",
64
+ sku: "123",
65
+ team_name: "SunApps GmbH" # Only necessary when in multiple teams.
66
+ )',
67
+ 'produce(...) # alias for "create_app_online"'
68
+ ]
69
+ end
70
+
71
+ def self.category
72
+ :misc
73
+ end
74
+ end
75
+ end
76
+ end
@@ -1,63 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- module SharedValues
4
- end
5
-
6
- class DeliverAction < Action
7
- def self.run(config)
8
- require 'deliver'
9
-
10
- begin
11
- config.load_configuration_file("Deliverfile")
12
- config[:screenshots_path] = Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] if Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH]
13
- config[:ipa] = Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] if Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
14
-
15
- return config if Helper.test?
16
- Deliver::Runner.new(config).run
17
- end
18
- end
3
+ require 'fastlane/actions/upload_to_app_store'
4
+ class DeliverAction < UploadToAppStoreAction
5
+ #####################################################
6
+ # @!group Documentation
7
+ #####################################################
19
8
 
20
9
  def self.description
21
- "Uses deliver to upload new app metadata and builds to iTunes Connect"
22
- end
23
-
24
- def self.details
25
- [
26
- "Using _deliver_ after _gym_ and _snapshot_ will automatically upload the",
27
- "latest ipa and screenshots with no other configuration",
28
- "",
29
- "If you don't want a PDF report for App Store builds, use the `:force` option.",
30
- "This is useful when running _fastlane_ on your Continuous Integration server: `deliver(force: true)`",
31
- "If your account is on multiple teams and you need to tell the `iTMSTransporter`",
32
- "which 'provider' to use, you can set the `itc_provider` option to pass this info."
33
- ].join("\n")
34
- end
35
-
36
- def self.available_options
37
- require "deliver"
38
- require "deliver/options"
39
- FastlaneCore::CommanderGenerator.new.generate(Deliver::Options.available_options)
40
- end
41
-
42
- def self.author
43
- "KrauseFx"
44
- end
45
-
46
- def self.is_supported?(platform)
47
- [:ios, :mac].include?(platform)
48
- end
49
-
50
- def self.example_code
51
- [
52
- 'deliver(
53
- force: true, # Set to true to skip PDF verification
54
- itc_provider: "abcde12345" # pass a specific value to the iTMSTransporter -itc_provider option
55
- )'
56
- ]
57
- end
58
-
59
- def self.category
60
- :production
10
+ "Alias for the `upload_to_app_store` action"
61
11
  end
62
12
  end
63
13
  end
@@ -22,6 +22,7 @@ _frameit_ allows you to put a gorgeous device frame around your iOS and macOS sc
22
22
  # Features
23
23
 
24
24
  Put a gorgeous device frame around your iOS and macOS screenshots just by running one simple command. Support for:
25
+
25
26
  - iPhone, iPad and Mac
26
27
  - Portrait and Landscape modes
27
28
  - Several colors
@@ -47,7 +48,7 @@ Here is a nice gif, that shows _frameit_ in action:
47
48
  <h5 align="center">The <code>frameit</code> 2.0 update was kindly sponsored by <a href="https://mindnode.com/">MindNode</a>, seen in the screenshots above.</h5>
48
49
 
49
50
 
50
- The first time that _frameit_ is executed the frames will be downloaded automatically. Originally the frames are coming from [Facebook frameset](http://facebook.design/devices) and they are kept on this repo: https://github.com/fastlane/frameit-frames
51
+ The first time that _frameit_ is executed the frames will be downloaded automatically. Originally the frames are coming from [Facebook frameset](http://facebook.design/devices) and they are kept on [this repo](https://github.com/fastlane/frameit-frames).
51
52
 
52
53
  More information about this process and how to update the frames can be found [here](https://github.com/fastlane/fastlane/tree/master/frameit/frames_generator)
53
54
 
@@ -0,0 +1,62 @@
1
+ module Fastlane
2
+ module Actions
3
+ class FrameScreenshotsAction < Action
4
+ def self.run(config)
5
+ return if Helper.test?
6
+
7
+ require 'frameit'
8
+
9
+ UI.message("Framing screenshots at path #{config[:path]} (via frameit)")
10
+
11
+ Dir.chdir(config[:path]) do
12
+ Frameit.config = config
13
+ Frameit::Runner.new.run('.')
14
+ end
15
+ end
16
+
17
+ def self.description
18
+ "Adds device frames around all screenshots (via `frameit`)"
19
+ end
20
+
21
+ def self.details
22
+ [
23
+ "Uses [frameit](https://github.com/fastlane/fastlane/tree/master/frameit) to prepare perfect screenshots for the App Store, your website, QA",
24
+ "or emails. You can add background and titles to the framed screenshots as well."
25
+ ].join("\n")
26
+ end
27
+
28
+ def self.available_options
29
+ require "frameit"
30
+ require "frameit/options"
31
+ FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options) + [
32
+ FastlaneCore::ConfigItem.new(key: :path,
33
+ env_name: "FRAMEIT_SCREENSHOTS_PATH",
34
+ description: "The path to the directory containing the screenshots",
35
+ default_value: Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] || FastlaneCore::FastlaneFolder.path)
36
+ ]
37
+ end
38
+
39
+ def self.author
40
+ "KrauseFx"
41
+ end
42
+
43
+ def self.example_code
44
+ [
45
+ 'frame_screenshots',
46
+ 'frameit # alias for "frame_screenshots"',
47
+ 'frame_screenshots(silver: true)',
48
+ 'frame_screenshots(path: "/screenshots")',
49
+ 'frame_screenshots(rose_gold: true)'
50
+ ]
51
+ end
52
+
53
+ def self.category
54
+ :screenshots
55
+ end
56
+
57
+ def self.is_supported?(platform)
58
+ [:ios, :mac].include? platform
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,60 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- class FrameitAction < Action
4
- def self.run(config)
5
- return if Helper.test?
6
-
7
- require 'frameit'
8
-
9
- UI.message("Framing screenshots at path #{config[:path]}")
10
-
11
- Dir.chdir(config[:path]) do
12
- Frameit.config = config
13
- Frameit::Runner.new.run('.')
14
- end
15
- end
3
+ require 'fastlane/actions/frameit'
4
+ class FrameitAction < FrameScreenshotsAction
5
+ #####################################################
6
+ # @!group Documentation
7
+ #####################################################
16
8
 
17
9
  def self.description
18
- "Adds device frames around the screenshots using frameit"
19
- end
20
-
21
- def self.details
22
- [
23
- "Use [frameit](https://github.com/fastlane/fastlane/tree/master/frameit) to prepare perfect screenshots for the App Store, your website, QA",
24
- "or emails. You can add background and titles to the framed screenshots as well."
25
- ].join("\n")
26
- end
27
-
28
- def self.available_options
29
- require "frameit"
30
- require "frameit/options"
31
- FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options) + [
32
- FastlaneCore::ConfigItem.new(key: :path,
33
- env_name: "FRAMEIT_SCREENSHOTS_PATH",
34
- description: "The path to the directory containing the screenshots",
35
- default_value: Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] || FastlaneCore::FastlaneFolder.path)
36
- ]
37
- end
38
-
39
- def self.author
40
- "KrauseFx"
41
- end
42
-
43
- def self.example_code
44
- [
45
- 'frameit',
46
- 'frameit(silver: true)',
47
- 'frameit(path: "/screenshots")',
48
- 'frameit(rose_gold: true)'
49
- ]
50
- end
51
-
52
- def self.category
53
- :screenshots
54
- end
55
-
56
- def self.is_supported?(platform)
57
- [:ios, :mac].include? platform
10
+ "Alias for the `frame_screenshots` action"
58
11
  end
59
12
  end
60
13
  end
@@ -0,0 +1,69 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ CERT_FILE_PATH = :CERT_FILE_PATH
5
+ CERT_CERTIFICATE_ID = :CERT_CERTIFICATE_ID
6
+ end
7
+
8
+ class GetCertificatesAction < Action
9
+ def self.run(params)
10
+ require 'cert'
11
+
12
+ return if Helper.test?
13
+
14
+ begin
15
+ Cert.config = params # we alread have the finished config
16
+
17
+ Cert::Runner.new.launch
18
+ cert_file_path = ENV["CER_FILE_PATH"]
19
+ certificate_id = ENV["CER_CERTIFICATE_ID"]
20
+ Actions.lane_context[SharedValues::CERT_FILE_PATH] = cert_file_path
21
+ Actions.lane_context[SharedValues::CERT_CERTIFICATE_ID] = certificate_id
22
+
23
+ UI.success("Use signing certificate '#{certificate_id}' from now on!")
24
+
25
+ ENV["SIGH_CERTIFICATE_ID"] = certificate_id # for further use in the sigh action
26
+ end
27
+ end
28
+
29
+ def self.description
30
+ "Create new iOS code signing certificates (via `cert`)"
31
+ end
32
+
33
+ def self.details
34
+ [
35
+ "**Important**: It is recommended to use [match](https://github.com/fastlane/fastlane/tree/master/match) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your certificates. Use _cert_ directly only if you want full control over what's going on and know more about codesigning.",
36
+ "Use this action to download the latest code signing identity"
37
+ ].join("\n")
38
+ end
39
+
40
+ def self.available_options
41
+ require 'cert'
42
+ Cert::Options.available_options
43
+ end
44
+
45
+ def self.author
46
+ "KrauseFx"
47
+ end
48
+
49
+ def self.is_supported?(platform)
50
+ platform == :ios
51
+ end
52
+
53
+ def self.example_code
54
+ [
55
+ 'get_certificates',
56
+ 'cert # alias for "get_certificates"',
57
+ 'get_certificates(
58
+ development: true,
59
+ username: "user@email.com"
60
+ )'
61
+ ]
62
+ end
63
+
64
+ def self.category
65
+ :code_signing
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,88 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ SIGH_PROFILE_PATH = :SIGH_PROFILE_PATH
5
+ SIGH_PROFILE_PATHS = :SIGH_PROFILE_PATHS
6
+ SIGH_UDID = :SIGH_UDID # deprecated
7
+ SIGH_UUID = :SIGH_UUID
8
+ SIGH_NAME = :SIGH_NAME
9
+ SIGH_PROFILE_TYPE = :SIGH_PROFILE_TYPE
10
+ end
11
+
12
+ class GetProvisioningProfileAction < Action
13
+ def self.run(values)
14
+ require 'sigh'
15
+ require 'credentials_manager/appfile_config'
16
+
17
+ Sigh.config = values # we already have the finished config
18
+
19
+ path = Sigh::Manager.start
20
+
21
+ Actions.lane_context[SharedValues::SIGH_PROFILE_PATH] = path # absolute path
22
+ Actions.lane_context[SharedValues::SIGH_PROFILE_PATHS] ||= []
23
+ Actions.lane_context[SharedValues::SIGH_PROFILE_PATHS] << path
24
+
25
+ uuid = ENV["SIGH_UUID"] || ENV["SIGH_UDID"] # the UUID of the profile
26
+ name = ENV["SIGH_NAME"] # the name of the profile
27
+ Actions.lane_context[SharedValues::SIGH_UUID] = Actions.lane_context[SharedValues::SIGH_UDID] = uuid if uuid
28
+ Actions.lane_context[SharedValues::SIGH_NAME] = Actions.lane_context[SharedValues::SIGH_NAME] = name if name
29
+
30
+ set_profile_type(values, ENV["SIGH_PROFILE_ENTERPRISE"])
31
+
32
+ return uuid # returs uuid of profile
33
+ end
34
+
35
+ def self.set_profile_type(values, enterprise)
36
+ profile_type = "app-store"
37
+ profile_type = "ad-hoc" if values[:adhoc]
38
+ profile_type = "development" if values[:development]
39
+ profile_type = "enterprise" if enterprise
40
+
41
+ UI.message("Setting Provisioning Profile type to '#{profile_type}'")
42
+
43
+ Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE] = profile_type
44
+ end
45
+
46
+ def self.description
47
+ "Generates a provisioning profile, saving it in the current folder (via `sigh`)"
48
+ end
49
+
50
+ def self.author
51
+ "KrauseFx"
52
+ end
53
+
54
+ def self.return_value
55
+ "The UUID of the profile sigh just fetched/generated"
56
+ end
57
+
58
+ def self.details
59
+ "**Note**: It is recommended to use [match](https://github.com/fastlane/fastlane/tree/master/match) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your provisioning profiles. Use _sigh_ directly only if you want full control over what's going on and know more about codesigning."
60
+ end
61
+
62
+ def self.available_options
63
+ require 'sigh'
64
+ Sigh::Options.available_options
65
+ end
66
+
67
+ def self.is_supported?(platform)
68
+ platform == :ios
69
+ end
70
+
71
+ def self.example_code
72
+ [
73
+ 'get_provisioning_profile',
74
+ 'sigh # alias for "get_provisioning_profile"',
75
+ 'get_provisioning_profile(
76
+ adhoc: true,
77
+ force: true,
78
+ filename: "myFile.mobileprovision"
79
+ )'
80
+ ]
81
+ end
82
+
83
+ def self.category
84
+ :code_signing
85
+ end
86
+ end
87
+ end
88
+ end