fastlane 2.26.0.beta.20170405010026 → 2.26.0.beta.20170406010019

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/cert/lib/cert/options.rb +10 -0
  3. data/cert/lib/cert/runner.rb +8 -1
  4. data/fastlane/lib/fastlane/actions/appledoc.rb +1 -1
  5. data/fastlane/lib/fastlane/actions/carthage.rb +2 -2
  6. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +1 -1
  7. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/hg_ensure_clean_status.rb +1 -1
  11. data/fastlane/lib/fastlane/actions/ipa.rb +2 -2
  12. data/fastlane/lib/fastlane/actions/number_of_commits.rb +22 -7
  13. data/fastlane/lib/fastlane/actions/oclint.rb +1 -1
  14. data/fastlane/lib/fastlane/actions/onesignal.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/reset_git_repo.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/s3.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/slack.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/ssh.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/tryouts.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
  21. data/fastlane/lib/fastlane/actions/version_bump_podspec.rb +9 -1
  22. data/fastlane/lib/fastlane/fast_file.rb +1 -1
  23. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +2 -2
  24. data/fastlane/lib/fastlane/helper/podspec_helper.rb +15 -1
  25. data/fastlane/lib/fastlane/runner.rb +1 -1
  26. data/fastlane/lib/fastlane/setup/setup_ios.rb +1 -1
  27. data/fastlane/lib/fastlane/supported_platforms.rb +1 -1
  28. data/fastlane/lib/fastlane/version.rb +1 -1
  29. data/fastlane_core/lib/fastlane_core/command_executor.rb +1 -1
  30. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +2 -2
  31. data/gym/lib/gym/options.rb +21 -0
  32. data/gym/lib/gym/xcode.rb +6 -0
  33. data/match/lib/match/change_password.rb +1 -1
  34. data/scan/lib/scan/options.rb +1 -1
  35. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +1 -1
  36. data/spaceship/lib/spaceship/tunes/app_version.rb +1 -1
  37. data/supply/lib/supply/client.rb +1 -1
  38. metadata +12 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 17be4a2c23e72d56ce89e0c1b3d8468d85c331c8
4
- data.tar.gz: b7f76e0d40ca24d39f4f6735c6d7015d3d123c50
3
+ metadata.gz: ca792b234365ecd36e723b3e0899588f5859d583
4
+ data.tar.gz: a59879d88ecffb271038deca47ba9c3b135f2c3a
5
5
  SHA512:
6
- metadata.gz: 578ad3636f0d993d4ef8842c545d960a64a465f4b77098bd6e5e20bcdeae37cea6e695f637c7febd9a2a443e74e433364fed1ba19bc21c1a27af7e082e54590f
7
- data.tar.gz: b883c4f33ea622046ece8b7d402e4aa37a08e5275909ca29907b2e597997541950127e9c9dc39049a59cc7a7eb66c7d38f06b685420899afd1ff8a405fd0def9
6
+ metadata.gz: 719de1b03f23acb695e7c0d85e8be8794361ba5db7b96ae4253f801f5628afce1641087df111e25ad38a543c3675dc0788dc4f74162dcc4ffc3f9c38793331ab
7
+ data.tar.gz: c509463fa3d7bef71bb2b2037348b93b2615d0e5826e5fb57cc072d653db5ae06b83578dfafc1434644e49a1dba537077259a65ff3da0cb4c3bbf64cb0170e96
@@ -13,6 +13,16 @@ module Cert
13
13
  description: "Create a development certificate instead of a distribution one",
14
14
  is_string: false,
15
15
  default_value: false),
16
+ FastlaneCore::ConfigItem.new(key: :generate_p12,
17
+ env_name: "CERT_GENERATE_P12_FILE",
18
+ description: "Generate a p12 file additionally to a PEM file",
19
+ is_string: false,
20
+ default_value: false),
21
+ FastlaneCore::ConfigItem.new(key: :p12_password,
22
+ env_name: "CERT_P12_PASSWORD",
23
+ sensitive: true,
24
+ description: "The password that is used for your p12 file",
25
+ default_value: ""),
16
26
  FastlaneCore::ConfigItem.new(key: :force,
17
27
  env_name: "CERT_FORCE",
18
28
  description: "Create a certificate even if an existing certificate exists",
@@ -160,11 +160,18 @@ module Cert
160
160
  request_path = File.expand_path(File.join(Cert.config[:output_path], "#{certificate.id}.certSigningRequest"))
161
161
  File.write(request_path, csr.to_pem)
162
162
 
163
- private_key_path = File.expand_path(File.join(Cert.config[:output_path], "#{certificate.id}.p12"))
163
+ private_key_path = File.expand_path(File.join(Cert.config[:output_path], "#{certificate.id}.pkey"))
164
164
  File.write(private_key_path, pkey)
165
165
 
166
166
  cert_path = store_certificate(certificate)
167
167
 
168
+ if Cert.config[:generate_p12]
169
+ p12_cert_path = File.expand_path(File.join(Cert.config[:output_path], "#{certificate.id}.p12"))
170
+ p12 = OpenSSL::PKCS12.create(Cert.config[:p12_password], type_name, pkey, certificate.download)
171
+ File.write(p12_cert_path, p12.to_der)
172
+ UI.success "p12 certificate: #{p12_cert_path}"
173
+ end
174
+
168
175
  # Import all the things into the Keychain
169
176
  keychain = File.expand_path(Cert.config[:keychain_path])
170
177
  password = Cert.config[:keychain_password]
@@ -159,7 +159,7 @@ module Fastlane
159
159
  FastlaneCore::ConfigItem.new(key: :docset_publisher_id, env_name: "FL_APPLEDOC_DOCSET_PUBLISHER_ID", description: "DocSet publisher identifier", is_string: true, optional: true),
160
160
  FastlaneCore::ConfigItem.new(key: :docset_publisher_name, env_name: "FL_APPLEDOC_DOCSET_PUBLISHER_NAME", description: "DocSet publisher name", is_string: true, optional: true),
161
161
  FastlaneCore::ConfigItem.new(key: :docset_min_xcode_version, env_name: "FL_APPLEDOC_DOCSET_MIN_XCODE_VERSION", description: "DocSet min. Xcode version", is_string: true, optional: true),
162
- FastlaneCore::ConfigItem.new(key: :docset_platform_family, env_name: "FL_APPLEDOC_DOCSET_PLATFORM_FAMILY", description: "DocSet platform familiy", is_string: true, optional: true),
162
+ FastlaneCore::ConfigItem.new(key: :docset_platform_family, env_name: "FL_APPLEDOC_DOCSET_PLATFORM_FAMILY", description: "DocSet platform family", is_string: true, optional: true),
163
163
  FastlaneCore::ConfigItem.new(key: :docset_cert_issuer, env_name: "FL_APPLEDOC_DOCSET_CERT_ISSUER", description: "DocSet certificate issuer", is_string: true, optional: true),
164
164
  FastlaneCore::ConfigItem.new(key: :docset_cert_signer, env_name: "FL_APPLEDOC_DOCSET_CERT_SIGNER", description: "DocSet certificate signer", is_string: true, optional: true),
165
165
  FastlaneCore::ConfigItem.new(key: :docset_bundle_filename, env_name: "FL_APPLEDOC_DOCSET_BUNDLE_FILENAME", description: "DocSet bundle filename", is_string: true, optional: true),
@@ -36,10 +36,10 @@ module Fastlane
36
36
  def self.validate(params)
37
37
  command_name = params[:command]
38
38
  if command_name != "archive" && params[:frameworks].count > 0
39
- UI.user_error!("Frameworks option is avaialble only for 'archive' command.")
39
+ UI.user_error!("Frameworks option is available only for 'archive' command.")
40
40
  end
41
41
  if command_name != "archive" && params[:output]
42
- UI.user_error!("Output option is avaialble only for 'archive' command.")
42
+ UI.user_error!("Output option is available only for 'archive' command.")
43
43
  end
44
44
  end
45
45
 
@@ -88,7 +88,7 @@ module Fastlane
88
88
  unless changed_files_as_expected
89
89
  unless params[:force]
90
90
  error = [
91
- "Found unexpected uncommited changes in the working directory. Expected these files to have ",
91
+ "Found unexpected uncommitted changes in the working directory. Expected these files to have ",
92
92
  "changed: \n#{expected_changed_files.join("\n")}.\nBut found these actual changes: ",
93
93
  "#{git_dirty_files.join("\n")}.\nMake sure you have cleaned up the build artifacts and ",
94
94
  "are only left with the changed version files at this stage in your lane, and don't touch the ",
@@ -48,7 +48,7 @@ module Fastlane
48
48
 
49
49
  def self.details
50
50
  [
51
- "This action copies artifacs to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your `.ipa`s, `.dSYM.zip`s, `.mobileprovision`s, `.cert`s",
51
+ "This action copies artifacts to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your `.ipa`s, `.dSYM.zip`s, `.mobileprovision`s, `.cert`s",
52
52
  "Make sure your target_path is gitignored, and if you use `reset_git_repo`, make sure the artifacts are added to the exclude list"
53
53
  ].join("\n")
54
54
  end
@@ -18,7 +18,7 @@ module Fastlane
18
18
  end
19
19
 
20
20
  def self.description
21
- "Raises an exception if there are uncommited git changes"
21
+ "Raises an exception if there are uncommitted git changes"
22
22
  end
23
23
 
24
24
  def self.details
@@ -84,7 +84,7 @@ module Fastlane
84
84
  changed_files_as_expected = dirty_set.subset? expected_set
85
85
  unless changed_files_as_expected
86
86
  unless params[:force]
87
- str = ["Found unexpected uncommited changes in the working directory. Expected these files to have changed:",
87
+ str = ["Found unexpected uncommitted changes in the working directory. Expected these files to have changed:",
88
88
  "#{expected_changed_files.join("\n")}.",
89
89
  "But found these actual changes: \n#{hg_dirty_files.join("\n")}.",
90
90
  "Make sure you have cleaned up the build artifacts and are only left with the changed version files at this",
@@ -17,7 +17,7 @@ module Fastlane
17
17
  end
18
18
 
19
19
  def self.description
20
- "Raises an exception if there are uncommited hg changes"
20
+ "Raises an exception if there are uncommitted hg changes"
21
21
  end
22
22
 
23
23
  def self.details
@@ -76,7 +76,7 @@ module Fastlane
76
76
  "-------------------------------------------------------",
77
77
  "Original Error:",
78
78
  " => " + ex.to_s,
79
- "A build error occured. You are using legacy `shenzhen` for building",
79
+ "A build error occurred. You are using legacy `shenzhen` for building",
80
80
  "it is recommended to upgrade to _gym_: ",
81
81
  "https://github.com/fastlane/fastlane/tree/master/gym",
82
82
  core_command,
@@ -86,7 +86,7 @@ module Fastlane
86
86
  end
87
87
 
88
88
  # Raise a custom exception, as the the normal one is useless for the user
89
- UI.user_error!("A build error occured, this is usually related to code signing. Take a look at the error above")
89
+ UI.user_error!("A build error occurred, this is usually related to code signing. Take a look at the error above")
90
90
  end
91
91
  end
92
92
 
@@ -10,7 +10,11 @@ module Fastlane
10
10
 
11
11
  def self.run(params)
12
12
  if is_git?
13
- command = 'git rev-list HEAD --count'
13
+ if params[:all]
14
+ command = 'git rev-list --all --count'
15
+ else
16
+ command = 'git rev-list HEAD --count'
17
+ end
14
18
  else
15
19
  UI.user_error!("Not in a git repository.")
16
20
  end
@@ -22,19 +26,29 @@ module Fastlane
22
26
  #####################################################
23
27
 
24
28
  def self.description
25
- "Return the total number of all commits in current git repo"
29
+ "Return the number of commits in current git branch"
26
30
  end
27
31
 
28
32
  def self.return_value
29
- "The total number of all commits in current git repo"
33
+ "The total number of all commits in current git branch"
34
+ end
35
+
36
+ def self.available_options
37
+ [
38
+ FastlaneCore::ConfigItem.new(key: :all,
39
+ env_name: "FL_NUMBER_OF_COMMITS_ALL",
40
+ optional: true,
41
+ is_string: false,
42
+ description: "Returns number of all commits instead of current branch")
43
+ ]
30
44
  end
31
45
 
32
46
  def self.details
33
- "You can use this action to get the number of commits of this repo. This is useful if you want to set the build number to the number of commits."
47
+ "You can use this action to get the number of commits of this branch. This is useful if you want to set the build number to the number of commits. See `faslane actions number_of_commits` for more details"
34
48
  end
35
49
 
36
50
  def self.authors
37
- ["onevcat"]
51
+ ["onevcat", "samuelbeek"]
38
52
  end
39
53
 
40
54
  def self.is_supported?(platform)
@@ -43,8 +57,9 @@ module Fastlane
43
57
 
44
58
  def self.example_code
45
59
  [
46
- 'build_number = number_of_commits
47
- increment_build_number(build_number: build_number)'
60
+ 'increment_build_number(build_number: number_of_commits)',
61
+ 'build_number = number_of_commits(all: true)
62
+ increment_build_number(build_number: number_of_commits)'
48
63
  ]
49
64
  end
50
65
 
@@ -26,7 +26,7 @@ module Fastlane
26
26
  end
27
27
 
28
28
  if params[:select_reqex]
29
- UI.important("'select_reqex' paramter is deprecated. Please use 'select_regex' instead.")
29
+ UI.important("'select_reqex' parameter is deprecated. Please use 'select_regex' instead.")
30
30
  select_regex = params[:select_reqex]
31
31
  end
32
32
 
@@ -49,7 +49,7 @@ module Fastlane
49
49
  def self.check_response_code(response)
50
50
  case response.code.to_i
51
51
  when 200, 204
52
- puts "Succesfully created new OneSignal app".green
52
+ puts "Successfully created new OneSignal app".green
53
53
  else
54
54
  UI.user_error!("Unexpected #{response.code} with response: #{response.body}")
55
55
  end
@@ -41,7 +41,7 @@ module Fastlane
41
41
  end
42
42
 
43
43
  def self.description
44
- "Resets git repo to a clean state by discarding uncommited changes"
44
+ "Resets git repo to a clean state by discarding uncommitted changes"
45
45
  end
46
46
 
47
47
  def self.details
@@ -384,7 +384,7 @@ module Fastlane
384
384
  default_value: ENV['AWS_REGION']),
385
385
  FastlaneCore::ConfigItem.new(key: :path,
386
386
  env_name: "S3_PATH",
387
- description: "S3 'path'. Values from Info.plist will be substituded for keys wrapped in {} ",
387
+ description: "S3 'path'. Values from Info.plist will be substituted for keys wrapped in {} ",
388
388
  optional: true,
389
389
  default_value: 'v{CFBundleShortVersionString}_b{CFBundleVersion}/'),
390
390
  FastlaneCore::ConfigItem.new(key: :source,
@@ -91,7 +91,7 @@ module Fastlane
91
91
  optional: true),
92
92
  FastlaneCore::ConfigItem.new(key: :payload,
93
93
  env_name: "FL_SLACK_PAYLOAD",
94
- description: "Add additional information to this post. payload must be a hash containg any key with any value",
94
+ description: "Add additional information to this post. payload must be a hash containing any key with any value",
95
95
  default_value: {},
96
96
  is_string: false),
97
97
  FastlaneCore::ConfigItem.new(key: :default_payloads,
@@ -65,7 +65,7 @@ module Fastlane
65
65
  end
66
66
  end
67
67
  command_word = params[:commands].count == 1 ? "command" : "commands"
68
- UI.success("Succesfully executed #{params[:commands].count} #{command_word} on host #{params[:host]}")
68
+ UI.success("Successfully executed #{params[:commands].count} #{command_word} on host #{params[:host]}")
69
69
  Actions.lane_context[SharedValues::SSH_STDOUT_VALUE] = stdout
70
70
  Actions.lane_context[SharedValues::SSH_STDERR_VALUE] = stderr
71
71
  return { stdout: Actions.lane_context[SharedValues::SSH_STDOUT_VALUE], stderr: Actions.lane_context[SharedValues::SSH_STDERR_VALUE] }
@@ -94,7 +94,7 @@ module Fastlane
94
94
  optional: true),
95
95
  FastlaneCore::ConfigItem.new(key: :notes_path,
96
96
  env_name: "TRYOUTS_NOTES_PATH",
97
- description: "Release notes text file path. Overrides the :notes paramether",
97
+ description: "Release notes text file path. Overrides the :notes parameter",
98
98
  verify_block: proc do |value|
99
99
  UI.user_error!("Couldn't find notes file at path '#{value}'") unless File.exist?(value)
100
100
  end,
@@ -104,7 +104,7 @@ module Fastlane
104
104
  end),
105
105
  FastlaneCore::ConfigItem.new(key: :project_slug,
106
106
  env_name: "SENTRY_PROJECT_SLUG",
107
- description: "Prgoject slug for Sentry",
107
+ description: "Project slug for Sentry",
108
108
  verify_block: proc do |value|
109
109
  UI.user_error!("No project slug for SentryAction given, pass using `project_slug: 'project'`") unless value and !value.empty?
110
110
  end),
@@ -14,6 +14,8 @@ module Fastlane
14
14
 
15
15
  if params[:version_number]
16
16
  new_version = params[:version_number]
17
+ elsif params[:version_appendix]
18
+ new_version = version_podspec_file.update_version_appendix(params[:version_appendix])
17
19
  else
18
20
  new_version = version_podspec_file.bump_version(params[:bump_type])
19
21
  end
@@ -34,7 +36,9 @@ module Fastlane
34
36
  def self.details
35
37
  [
36
38
  "You can use this action to manipulate any 'version' variable contained in a ruby file.",
37
- "For example, you can use it to bump the version of a cocoapods' podspec file."
39
+ "For example, you can use it to bump the version of a cocoapods' podspec file.",
40
+ "It also supports versions that are not semantic: 1.4.14.4.1",
41
+ "For such versions there is an option to change appendix (4.1)"
38
42
  ].join("\n")
39
43
  end
40
44
 
@@ -57,6 +61,10 @@ module Fastlane
57
61
  FastlaneCore::ConfigItem.new(key: :version_number,
58
62
  env_name: "FL_VERSION_BUMP_PODSPEC_VERSION_NUMBER",
59
63
  description: "Change to a specific version. This will replace the bump type value",
64
+ optional: true),
65
+ FastlaneCore::ConfigItem.new(key: :version_appendix,
66
+ env_name: "FL_VERSION_BUMP_PODSPEC_VERSION_APPENDIX",
67
+ description: "Change version appendix to a specific value. For example 1.4.14.4.1 -> 1.4.14.5",
60
68
  optional: true)
61
69
  ]
62
70
  end
@@ -136,7 +136,7 @@ module Fastlane
136
136
  @runner.set_after_each(@current_platform, block)
137
137
  end
138
138
 
139
- # Is executed if an error occured during fastlane execution
139
+ # Is executed if an error occurred during fastlane execution
140
140
  def error(&block)
141
141
  @runner.set_error(@current_platform, block)
142
142
  end
@@ -84,9 +84,9 @@ module Fastlane
84
84
  # Now unzip the file
85
85
  Action.sh "unzip '#{zip_path}' -d '#{containing}'"
86
86
 
87
- UI.user_error!("Coulnd't find 'crashlytics-devtools.jar'") unless File.exist?(jar_path)
87
+ UI.user_error!("Couldn't find 'crashlytics-devtools.jar'") unless File.exist?(jar_path)
88
88
 
89
- UI.success "Succesfully downloaded Crashlytics Support Library to '#{jar_path}'"
89
+ UI.success "Successfully downloaded Crashlytics Support Library to '#{jar_path}'"
90
90
  rescue => ex
91
91
  UI.user_error!("Error fetching remote file: #{ex}")
92
92
  end
@@ -9,7 +9,7 @@ module Fastlane
9
9
 
10
10
  def initialize(path = nil)
11
11
  version_var_name = 'version'
12
- @version_regex = /^(?<begin>[^#]*#{version_var_name}\s*=\s*['"])(?<value>(?<major>[0-9]+)(\.(?<minor>[0-9]+))?(\.(?<patch>[0-9]+))?)(?<end>['"])/i
12
+ @version_regex = /^(?<begin>[^#]*#{version_var_name}\s*=\s*['"])(?<value>(?<major>[0-9]+)(\.(?<minor>[0-9]+))?(\.(?<patch>[0-9]+))?(?<appendix>(\.[0-9]+)*)?)(?<end>['"])/i
13
13
 
14
14
  return unless (path || '').length > 0
15
15
  UI.user_error!("Could not find podspec file at path '#{path}'") unless File.exist?(path)
@@ -28,6 +28,8 @@ module Fastlane
28
28
  end
29
29
 
30
30
  def bump_version(bump_type)
31
+ UI.user_error!("Do not support bump of 'appendix', please use `update_version_appendix(appendix)` instead") if bump_type == 'appendix'
32
+
31
33
  major = version_match[:major].to_i
32
34
  minor = version_match[:minor].to_i || 0
33
35
  patch = version_match[:patch].to_i || 0
@@ -47,6 +49,18 @@ module Fastlane
47
49
  @version_value = "#{major}.#{minor}.#{patch}"
48
50
  end
49
51
 
52
+ def update_version_appendix(appendix = nil)
53
+ new_appendix = appendix || @version_value[:appendix]
54
+ return if new_appendix.nil?
55
+
56
+ new_appendix = new_appendix.sub(".", "") if new_appendix.start_with?(".")
57
+ major = version_match[:major].to_i
58
+ minor = version_match[:minor].to_i || 0
59
+ patch = version_match[:patch].to_i || 0
60
+
61
+ @version_value = "#{major}.#{minor}.#{patch}.#{new_appendix}"
62
+ end
63
+
50
64
  def update_podspec(version = nil)
51
65
  new_version = version || @version_value
52
66
  updated_podspec_content = @podspec_content.gsub(@version_regex, "#{@version_match[:begin]}#{new_version}#{@version_match[:end]}")
@@ -62,7 +62,7 @@ module Fastlane
62
62
  error_blocks[current_platform].call(current_lane, ex, parameters) if current_platform && error_blocks[current_platform]
63
63
  error_blocks[nil].call(current_lane, ex, parameters) if error_blocks[nil]
64
64
  rescue => error_block_exception
65
- UI.error("An error occured while executing the `error` block:")
65
+ UI.error("An error occurred while executing the `error` block:")
66
66
  UI.error(error_block_exception.to_s)
67
67
  raise ex # raise the original error message
68
68
  end
@@ -55,7 +55,7 @@ module Fastlane
55
55
  handle_exception(exception: ex)
56
56
  else
57
57
  UI.error(ex.to_s)
58
- UI.error('An error occured during the setup process. Falling back to manual setup!')
58
+ UI.error('An error occurred during the setup process. Falling back to manual setup!')
59
59
  try_manual_setup
60
60
  end
61
61
  end
@@ -21,7 +21,7 @@ module Fastlane
21
21
  # this will log a warning if the passed platform is not supported
22
22
  def self.verify!(platform)
23
23
  unless all.include? platform.to_s.to_sym
24
- UI.important("Platform '#{platform}' is not officially supported. Currently supported plaforms are #{self.all}.")
24
+ UI.important("Platform '#{platform}' is not officially supported. Currently supported platforms are #{self.all}.")
25
25
  end
26
26
  end
27
27
  end
@@ -1,4 +1,4 @@
1
1
  module Fastlane
2
- VERSION = '2.26.0.beta.20170405010026'.freeze
2
+ VERSION = '2.26.0.beta.20170406010019'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  end
@@ -27,7 +27,7 @@ module FastlaneCore
27
27
  # @param print_all [Boolean] Do we want to print out the command output while running?
28
28
  # @param print_command [Boolean] Should we print the command that's being executed
29
29
  # @param error [Block] A block that's called if an error occurs
30
- # @param prefix [Array] An array containg a prefix + block which might get applied to the output
30
+ # @param prefix [Array] An array containing a prefix + block which might get applied to the output
31
31
  # @param loading [String] A loading string that is shown before the first output
32
32
  # @return [String] All the output as string
33
33
  def execute(command: nil, print_all: false, print_command: true, error: nil, prefix: nil, loading: nil)
@@ -1,6 +1,6 @@
1
1
  module FastlaneCore
2
2
  class ConfigItem
3
- # [Symbol] the key which is used as command paramters or key in the fastlane tools
3
+ # [Symbol] the key which is used as command parameters or key in the fastlane tools
4
4
  attr_accessor :key
5
5
 
6
6
  # [String] the name of the environment variable, which is only used if no other values were found
@@ -40,7 +40,7 @@ module FastlaneCore
40
40
  attr_accessor :allow_shell_conversion
41
41
 
42
42
  # Creates a new option
43
- # @param key (Symbol) the key which is used as command paramters or key in the fastlane tools
43
+ # @param key (Symbol) the key which is used as command parameters or key in the fastlane tools
44
44
  # @param env_name (String) the name of the environment variable, which is only used if no other values were found
45
45
  # @param description (String) A description shown to the user
46
46
  # @param short_option (String) A string of length 1 which is used for the command parameters (e.g. -f)
@@ -9,6 +9,24 @@ module Gym
9
9
  @options = plain_options
10
10
  end
11
11
 
12
+ def self.legacy_api_note!
13
+ UI.important "Unfortunately the legacy build API was removed with Xcode 8.3."
14
+ UI.important "Please make sure to remove use_legacy_build_api from your ./fastlane/Fastfile"
15
+ UI.important "and update the gym call to include the export method like this:"
16
+ UI.important "== App Store Builds =="
17
+ UI.error ' gym(scheme: "MyScheme", export_method: "app-store")'
18
+ UI.important "== Ad Hoc Builds =="
19
+ UI.error ' gym(scheme: "MyScheme", export_method: "ad-hoc")'
20
+ UI.important "== Development Builds =="
21
+ UI.error ' gym(scheme: "MyScheme", export_method: "development")'
22
+ UI.important "== In-House Enterprise Builds =="
23
+ UI.error ' gym(scheme: "MyScheme", export_method: "enterprise")'
24
+ UI.important "If you run into a code signing error, please check out our troubleshooting guide for more information on how to solve the most common issues"
25
+ UI.error " https://docs.fastlane.tools/codesigning/troubleshooting/ 🚀"
26
+ UI.important ""
27
+ UI.user_error! "legacy_build_api removed!"
28
+ end
29
+
12
30
  def self.plain_options
13
31
  [
14
32
  FastlaneCore::ConfigItem.new(key: :workspace,
@@ -104,6 +122,9 @@ module Gym
104
122
  if value
105
123
  UI.important "Don't use this option any more, as it's deprecated by Apple"
106
124
  end
125
+ if Gym::Xcode.legacy_api_deprecated?
126
+ Gym::Options.legacy_api_note!
127
+ end
107
128
  end),
108
129
  FastlaneCore::ConfigItem.new(key: :export_method,
109
130
  short_option: "-j",
data/gym/lib/gym/xcode.rb CHANGED
@@ -16,6 +16,12 @@ module Gym
16
16
  is_pre = v.split('.')[0].to_i < 7
17
17
  is_pre
18
18
  end
19
+
20
+ def legacy_api_deprecated?
21
+ UI.user_error!("Unable to locate Xcode. Please make sure to have Xcode installed on your machine") if xcode_version.nil?
22
+ v = xcode_version
23
+ Gem::Version.new(v) >= Gem::Version.new('8.3.0')
24
+ end
19
25
  end
20
26
  end
21
27
  end
@@ -27,7 +27,7 @@ module Match
27
27
  else
28
28
  return password
29
29
  end
30
- UI.error("Passhprases differ. Try again")
30
+ UI.error("Passphrases differ. Try again")
31
31
  end
32
32
  end
33
33
 
@@ -135,7 +135,7 @@ module Scan
135
135
  FastlaneCore::ConfigItem.new(key: :test_without_building,
136
136
  short_option: "-T",
137
137
  env_name: "SCAN_TEST_WITHOUT_BUILDING",
138
- description: "Test without building, requires a derrived data path",
138
+ description: "Test without building, requires a derived data path",
139
139
  is_string: false,
140
140
  conflicting_options: [:build_for_testing],
141
141
  optional: true),
@@ -200,7 +200,7 @@ module Spaceship
200
200
 
201
201
  # Create a new provisioning profile
202
202
  # @param name (String): The name of the provisioning profile on the Dev Portal
203
- # @param bundle_id (String): The app identifier, this paramter is required
203
+ # @param bundle_id (String): The app identifier, this parameter is required
204
204
  # @param certificate (Certificate): The certificate that should be used with this
205
205
  # provisioning profile. You can also pass an array of certificates to this method. This will
206
206
  # only work for development profiles
@@ -584,7 +584,7 @@ module Spaceship
584
584
  lang_details = languages[0]
585
585
  display_families = lang_details["displayFamilies"]["value"]
586
586
  device_details = display_families.find { |display_family| display_family['name'] == device }
587
- raise "Couldn't find device familiy for #{device}" if device_details.nil?
587
+ raise "Couldn't find device family for #{device}" if device_details.nil?
588
588
  raise "Unexpected state: missing device details for #{device}" unless device_details.key?(data_field)
589
589
  return device_details[data_field]
590
590
  rescue => ex
@@ -40,7 +40,7 @@ module Supply
40
40
  # Initializes the android_publisher and its auth_client using the specified information
41
41
  # @param service_account_json: The raw service account Json data
42
42
  # @param path_to_key: The path to your p12 file (@deprecated)
43
- # @param issuer: Email addresss for oauth (@deprecated)
43
+ # @param issuer: Email address for oauth (@deprecated)
44
44
  def initialize(path_to_key: nil, issuer: nil, service_account_json: nil)
45
45
  scope = Androidpublisher::AUTH_ANDROIDPUBLISHER
46
46
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.26.0.beta.20170405010026
4
+ version: 2.26.0.beta.20170406010019
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2017-04-05 00:00:00.000000000 Z
17
+ date: 2017-04-06 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: slack-notifier
@@ -1297,23 +1297,23 @@ metadata:
1297
1297
  post_install_message:
1298
1298
  rdoc_options: []
1299
1299
  require_paths:
1300
- - sigh/lib
1301
- - spaceship/lib
1302
- - pem/lib
1303
1300
  - match/lib
1304
- - fastlane/lib
1305
- - pilot/lib
1306
- - screengrab/lib
1307
1301
  - frameit/lib
1308
1302
  - gym/lib
1309
- - produce/lib
1310
- - supply/lib
1311
- - scan/lib
1312
- - fastlane_core/lib
1313
1303
  - credentials_manager/lib
1304
+ - sigh/lib
1305
+ - supply/lib
1314
1306
  - snapshot/lib
1307
+ - fastlane_core/lib
1308
+ - pilot/lib
1309
+ - produce/lib
1310
+ - scan/lib
1315
1311
  - deliver/lib
1312
+ - pem/lib
1313
+ - screengrab/lib
1314
+ - fastlane/lib
1316
1315
  - cert/lib
1316
+ - spaceship/lib
1317
1317
  required_ruby_version: !ruby/object:Gem::Requirement
1318
1318
  requirements:
1319
1319
  - - ">="