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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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