fastlane 2.47.0.beta.20170714010002 → 2.47.0.beta.20170715010003

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bb501af3bf16d7e81c4daebcc61af1d6690c82cf
4
- data.tar.gz: e12fb9d713d3d23c845f164db81916e0babd6476
3
+ metadata.gz: 45b717dcdea14e596b4d3e0fd9583725feb9a96e
4
+ data.tar.gz: a4d480615f7043858efb3d8dedd0a230a84c56f4
5
5
  SHA512:
6
- metadata.gz: 1da8ce91656dde38c50a695eef82424196272f357d911aae6199eb4a257e2cc166489b03bd5253535b8af88da8bee3a47c9c9446cdf9fa231ab6e23f00a80cb1
7
- data.tar.gz: a13e835314b6667d17d5d990830963b722979c9e6b7abaca86ac779622512cc857cae53f572710d8fd9814cf29d42dd5b026bcc2d7831c0d33792aabd86f18e0
6
+ metadata.gz: 914d5ffe0cf3049809b2da15bf136a68a8b7db93c564f2a1f4fc03077f0b9dfe7df19ec33f912a0125ab6467f32b8df032b10f6b799c75bf5d88e66e3f1a27a5
7
+ data.tar.gz: bdcfa3b0b40de645e5425483e429c79aa89e26cae1c9af0ef9300bd9e8022ec9ab8226985ebb28f020347975e70796b82ab3926a4f1ef7695dff7554919cadbb
@@ -84,7 +84,7 @@ module Fastlane
84
84
  ]
85
85
  # Please don't add a version parameter to the `cocoapods` action. If you need to specify a version when running
86
86
  # `cocoapods`, please start using a Gemfile and lock the version there
87
- # More information https://guides.cocoapods.org/using/a-gemfile.html
87
+ # More information https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
88
88
  end
89
89
 
90
90
  def self.is_supported?(platform)
@@ -9,7 +9,9 @@ module Fastlane
9
9
  def self.run(values)
10
10
  require 'gym'
11
11
 
12
- values[:export_method] ||= Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE]
12
+ unless Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE].to_s == "development"
13
+ values[:export_method] ||= Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE]
14
+ end
13
15
 
14
16
  if Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING]
15
17
  # Since Xcode 9 you need to explicitly provide the provisioning profile per app target
@@ -18,8 +18,8 @@ module Fastlane
18
18
  require "fastlane" # this might take a long time if there is no Gemfile :(
19
19
 
20
20
  # We want to avoid printing output other than the version number if we are running `fastlane -v`
21
- if Time.now - before_import_time > 3 && !running_version_command?
22
- print_slow_fastlane_warning
21
+ unless running_version_command?
22
+ print_bundle_exec_warning(is_slow: (Time.now - before_import_time > 3))
23
23
  end
24
24
 
25
25
  FastlaneCore::UpdateChecker.start_looking_for_update('fastlane')
@@ -78,22 +78,23 @@ module Fastlane
78
78
  }[tool_name] || tool_name
79
79
  end
80
80
 
81
- def print_slow_fastlane_warning
82
- # `BUNDLE_BIN_PATH` is used when the user uses `bundle exec`
83
- return if FastlaneCore::Env.truthy?('BUNDLE_BIN_PATH') || FastlaneCore::Env.truthy?('SKIP_SLOW_FASTLANE_WARNING') || FastlaneCore::Helper.contained_fastlane?
81
+ def print_bundle_exec_warning(is_slow: false)
82
+ return if FastlaneCore::Helper.bundler? # user is alread using bundler
83
+ return if FastlaneCore::Env.truthy?('SKIP_SLOW_FASTLANE_WARNING') # user disabled the warnings
84
+ return if FastlaneCore::Helper.contained_fastlane? # user uses the bundled fastlane
84
85
 
85
86
  gemfile_path = PluginManager.new.gemfile_path
86
87
  if gemfile_path
87
- # The user has a Gemfile, but fastlane is still slow
88
+ # The user has a Gemfile, but forgot to use `bundle exec`
88
89
  # Let's tell the user how to use `bundle exec`
89
- UI.important "Seems like launching fastlane takes a while"
90
- UI.important "fastlane detected a Gemfile in this directory"
90
+ # We show this warning no matter if the command is slow or not
91
+ UI.important "fastlane detected a Gemfile in the current directory"
91
92
  UI.important "however it seems like you don't use `bundle exec`"
92
93
  UI.important "to launch fastlane faster, please use"
93
94
  UI.message ""
94
95
  UI.command "bundle exec fastlane #{ARGV.join(' ')}"
95
96
  UI.message ""
96
- else
97
+ elsif is_slow
97
98
  # fastlane is slow and there is no Gemfile
98
99
  # Let's tell the user how to use `gem cleanup` and how to
99
100
  # start using a Gemfile
@@ -111,9 +112,9 @@ module Fastlane
111
112
  UI.message ""
112
113
  UI.important "After creating the Gemfile and Gemfile.lock, commit those files into version control"
113
114
  end
114
- UI.important "For more information, check out https://guides.cocoapods.org/using/a-gemfile.html"
115
+ UI.important "For more information, check out https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile"
115
116
 
116
- sleep 1
117
+ sleep 2 # napping is life, otherwise the user might not see this message
117
118
  end
118
119
 
119
120
  # Returns an array of symbols for the available lanes for the Fastfile
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.47.0.beta.20170714010002'.freeze
2
+ VERSION = '2.47.0.beta.20170715010003'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  end
@@ -54,6 +54,7 @@ module Gym
54
54
  print_xcode_path_instructions
55
55
  print_xcode_version
56
56
  print_full_log_path
57
+ print_environment_information
57
58
  print_build_error_instructions
58
59
  UI.build_failure!("Error building the application - see the log above", error_info: output)
59
60
  end
@@ -89,7 +90,9 @@ module Gym
89
90
  print "A general code signing error occurred. Make sure you passed a valid"
90
91
  print "provisioning profile and code signing identity."
91
92
  end
93
+ print_xcode_version
92
94
  print_full_log_path
95
+ print_environment_information
93
96
  print_build_error_instructions
94
97
  UI.build_failure!("Error packaging up the application", error_info: output)
95
98
  end
@@ -137,7 +140,8 @@ module Gym
137
140
  # sure they are aware of the Xcode version and SDK they're using
138
141
  values = {
139
142
  xcode_path: File.expand_path("../..", FastlaneCore::Helper.xcode_path),
140
- gym_version: Fastlane::VERSION
143
+ gym_version: Fastlane::VERSION,
144
+ export_method: Gym.config[:export_method]
141
145
  }
142
146
 
143
147
  sdk_path = Gym.project.build_settings(key: "SDKROOT")
@@ -175,6 +179,71 @@ module Gym
175
179
  UI.message ""
176
180
  end
177
181
 
182
+ def print_environment_information
183
+ if Gym.config[:export_method].to_s == "development"
184
+ UI.message("")
185
+ UI.error("Your `export_method` in gym is defined as `:development`")
186
+ UI.error("which can't be used for `ipa` files for beta or App Store distribution")
187
+ UI.error("Please make sure to define the correct export methods when calling")
188
+ UI.error("gym in your Fastfile or from the command line")
189
+ UI.message("")
190
+ elsif Gym.config[:export_options]
191
+ # We want to tell the user if there is an obvious mismatch between the selected
192
+ # `export_method` and the selected provisioning profiles
193
+ selected_export_method = Gym.config[:export_method].to_s
194
+ selected_provisioning_profiles = Gym.config[:export_options][:provisioningProfiles] || []
195
+ # We could go ahead and find all provisioning profiles that match that name
196
+ # and then get its type, however that's not 100% reliable, as we can't distinguish between
197
+ # Ad Hoc and Development profiles for example.
198
+ # As an easier and more obvious alternative, we'll take the provisioning profile names
199
+ # and see if it contains the export_method name and see if there is a mismatch
200
+
201
+ # The reason we have multiple variations of the spelling is that
202
+ # the provisioning profile might be called anything below
203
+ # There is no 100% good way to detect the profile type based on the name
204
+ available_export_types = {
205
+ "app-store" => :appstore,
206
+ "app store" => :appstore,
207
+ "appstore" => :appstore,
208
+ "ad-hoc" => :adhoc,
209
+ "adhoc" => :adhoc,
210
+ "ad hoc" => :adhoc,
211
+ "enterprise" => :enterprise,
212
+ "development" => :development
213
+ }
214
+
215
+ selected_provisioning_profiles.each do |current_bundle_identifier, current_profile_name|
216
+ available_export_types.each do |current_to_try, matching_type|
217
+ next unless current_profile_name.downcase.include?(current_to_try.downcase)
218
+
219
+ # Check if there is a mismatch between the name and the selected export method
220
+ # Example
221
+ #
222
+ # current_profile_name = "me.themoji.app.beta App Store""
223
+ # current_to_try = "app store"
224
+ # matching_type = :appstore
225
+ # selected_export_method = "enterprise"
226
+ #
227
+ # As seen above, there is obviously a mismatch, the user selected an App Store
228
+ # profile, but the export method that's being passed to Xcode is "enterprise"
229
+
230
+ next if matching_type.to_s == selected_export_method
231
+ UI.message("")
232
+ UI.error("There is a mismatch between your provided `export_method` in gym")
233
+ UI.error("and the selected provisioning profiles. You passed the following options:")
234
+ UI.important(" export_method: #{selected_export_method}")
235
+ UI.important(" Bundle identifier: #{current_bundle_identifier}")
236
+ UI.important(" Profile name: #{current_profile_name}")
237
+ UI.important(" Profile type: #{matching_type}")
238
+ UI.error("Make sure to either change the `export_method` passed from your Fastfile or CLI")
239
+ UI.error("or select the correct provisioning profiles by updating your Xcode project")
240
+ UI.error("or passing the profiles to use by using match or manually via the `export_options` hash")
241
+ UI.message("")
242
+ end
243
+ end
244
+ end
245
+ end
246
+
178
247
  # Indicate that code signing errors are not caused by fastlane
179
248
  # and that fastlane only runs `xcodebuild` commands
180
249
  def print_build_error_instructions
@@ -29,7 +29,6 @@ module Precheck
29
29
  "google",
30
30
  "compuserve",
31
31
  "windows phone",
32
- "tizen",
33
32
  "windows 10 mobile",
34
33
  "sailfish os",
35
34
  "windows universal app",
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.47.0.beta.20170714010002
4
+ version: 2.47.0.beta.20170715010003
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2017-07-14 00:00:00.000000000 Z
18
+ date: 2017-07-15 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier