fastlane 2.67.0.beta.20171127010003 → 2.67.0.beta.20171128010003

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f6b5ef73d577dc43879a34f7008c1e7d9dbeb7f4
4
- data.tar.gz: 5a49e328f6b77e1325491aff07acc0341f888db3
3
+ metadata.gz: d92b3d6ba645ac912f3cdca875dae7ef62e56253
4
+ data.tar.gz: 82cbe2ce21f20e2b1e293ca10bcf4a225e799e20
5
5
  SHA512:
6
- metadata.gz: a83c7035d57622f1f0ba6580641da80b7090399c6f8665a0d2e9810e706963ce9cbdb10b753dd925cccd004a9d77112bcd793fb71bf4feb477676e57eebf8de4
7
- data.tar.gz: 18a62af3c2abb50605ef5d6f092a4353ccbd64e0ce53220db75f378d81294efba2a7276ad8e89b287bb489625c0e835da94feb56a5021346d36a9a0069fa247d
6
+ metadata.gz: c8c24e1621c5a651b25c426793998bf24061af17343c8ac0483c6ed86a9ff1a33aca439143aef136617fae07f16846116a4e0a5cbef87ebea4347a99a248c6d0
7
+ data.tar.gz: c5653893d9d9e5fd495990681ade68aa559b84c6d6b820637b11f1eb47fe5a3f335df156e60562acf450fd75b470edf6cc7e08ef8d7888070df576dbd28dfd98
@@ -44,7 +44,7 @@ module Deliver
44
44
  }
45
45
 
46
46
  # Localized app details values, that are editable in live state
47
- LOCALISED_LIVE_VALUES = [:description, :release_notes, :support_url, :marketing_url]
47
+ LOCALISED_LIVE_VALUES = [:description, :release_notes, :support_url, :marketing_url, :promotional_text]
48
48
 
49
49
  # Non localized app details values, that are editable in live state
50
50
  NON_LOCALISED_LIVE_VALUES = [:privacy_url]
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/frameit.png" height="110">
2
+ <img src="/img/actions/frameit.png" width="250">
3
3
  </p>
4
4
 
5
5
  ###### Quickly put your screenshots into the right device frames
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/match.png" height="110">
2
+ <img src="/img/actions/match.png" width="250">
3
3
  </p>
4
4
 
5
5
  ###### Easily sync your certificates and profiles across your team using git
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/pem.png" height="110">
2
+ <img src="/img/actions/pem.png" width="250">
3
3
  </p>
4
4
 
5
5
  ###### Automatically generate and renew your push notification profiles
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/precheck.png" height="110">
2
+ <img src="/img/actions/precheck.png" width="250">
3
3
  </p>
4
4
 
5
5
  Precheck
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/produce.png" height="110">
2
+ <img src="/img/actions/produce.png" width="250">
3
3
  </p>
4
4
 
5
5
  ###### Create new iOS apps on iTunes Connect and Dev Portal using your command line
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/scan.png" height="110">
2
+ <img src="/img/actions/scan.png" width="250">
3
3
  </p>
4
4
 
5
5
  ###### The easiest way to run tests of your iOS and Mac app
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/screengrab.png" height="110">
2
+ <img src="/img/actions/screengrab.png" width="250">
3
3
  </p>
4
4
 
5
5
  ###### Automated localized screenshots of your Android app on every device
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/sigh.png" height="110">
2
+ <img src="/img/actions/sigh.png" width="250">
3
3
  </p>
4
4
 
5
5
  ###### Because you would rather spend your time building stuff than fighting provisioning
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/snapshot.png" height="110">
2
+ <img src="/img/actions/snapshot.png" width="250">
3
3
  </p>
4
4
 
5
5
  ###### Automate taking localized screenshots of your iOS and tvOS apps on every device
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="/img/actions/supply.png" height="110">
2
+ <img src="/img/actions/supply.png" width="250">
3
3
  </p>
4
4
 
5
5
  ###### Command line tool for updating Android apps and their metadata on the Google Play Store
@@ -57,6 +57,8 @@ module Fastlane
57
57
  end
58
58
 
59
59
  begin
60
+ # need to call reload here or dsym_url is nil
61
+ build.reload
60
62
  download_url = build.dsym_url
61
63
  rescue Spaceship::TunesClient::ITunesConnectError => ex
62
64
  UI.error("Error accessing dSYM file for build\n\n#{build}\n\nException: #{ex}")
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.67.0.beta.20171127010003'.freeze
2
+ VERSION = '2.67.0.beta.20171128010003'.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
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -19,6 +19,18 @@ module FastlaneCore
19
19
  output = stdout.read
20
20
  end
21
21
 
22
+ runtime_info = ''
23
+ Open3.popen3('xcrun simctl list runtimes') do |stdin, stdout, stderr, wait_thr|
24
+ # This regex outputs the version info in the format "<platform> <version><exact version>"
25
+ runtime_info = stdout.read.lines.map { |v| v.sub(/(\w+ \S+)\s*\((\S+)\s[\S\s]*/, "\\1 \\2") }.drop(1)
26
+ end
27
+ exact_versions = Hash.new({})
28
+ runtime_info.each do |r|
29
+ platform, general, exact = r.split
30
+ exact_versions[platform] = {} unless exact_versions.include?(platform)
31
+ exact_versions[platform][general] = exact
32
+ end
33
+
22
34
  unless output.include?("== Devices ==")
23
35
  UI.error("xcrun simctl CLI broken, run `xcrun simctl list devices` and make sure it works")
24
36
  UI.user_error!("xcrun simctl not working.")
@@ -40,7 +52,7 @@ module FastlaneCore
40
52
  name = matches.join(' ')
41
53
 
42
54
  if matches.count && (os_type == requested_os_type || requested_os_type == "")
43
- @devices << Device.new(name: name, os_type: os_type, os_version: os_version, udid: udid, state: state, is_simulator: true)
55
+ @devices << Device.new(name: name, os_type: os_type, os_version: (exact_versions[os_type][os_version] || os_version), udid: udid, state: state, is_simulator: true)
44
56
  end
45
57
  end
46
58
  end
@@ -109,6 +121,13 @@ module FastlaneCore
109
121
  end
110
122
  end
111
123
 
124
+ def latest_simulator_version_for_device(device)
125
+ simulators.select { |s| s.name == device }
126
+ .sort_by { |s| Gem::Version.create(s.os_version) }
127
+ .last
128
+ .os_version
129
+ end
130
+
112
131
  # The code below works from Xcode 7 on
113
132
  # def all
114
133
  # UI.verbose("Fetching available devices")
@@ -31,7 +31,10 @@ module Snapshot
31
31
  # Break up the array of devices into chunks that can
32
32
  # be run simultaneously.
33
33
  if launcher_config.concurrent_simulators?
34
- device_batches = launcher_config.devices.each_slice(default_number_of_simultaneous_simulators).to_a
34
+ all_devices = launcher_config.devices
35
+ # We have to break up the concurrent simulators by device version too, otherwise there is an error (see #10969)
36
+ by_simulator_version = all_devices.group_by { |d| FastlaneCore::DeviceManager.latest_simulator_version_for_device(d) }.values
37
+ device_batches = by_simulator_version.flat_map { |a| a.each_slice(default_number_of_simultaneous_simulators).to_a }
35
38
  else
36
39
  # Put each device in it's own array to run tests one at a time
37
40
  device_batches = launcher_config.devices.map { |d| [d] }
@@ -714,7 +714,7 @@ module Spaceship
714
714
 
715
715
  # This is a cache of entity type (App, AppGroup, Certificate, Device) to csrf_tokens
716
716
  def csrf_cache
717
- @csrf_cache || {}
717
+ @csrf_cache ||= {}
718
718
  end
719
719
 
720
720
  # Ensures that there are csrf tokens for the appropriate entity type
@@ -145,27 +145,26 @@ module Spaceship::TestFlight
145
145
  def testers_for_app(app_id: nil)
146
146
  assert_required_params(__method__, binding)
147
147
  page_size = 40 # that's enforced by the iTC servers
148
- offset = nil
149
148
  resulting_array = []
150
149
  initial_url = "providers/#{team_id}/apps/#{app_id}/testers?limit=#{page_size}&sort=email&order=asc"
151
150
  response = request(:get, initial_url)
151
+ link_from_response = proc do |r|
152
+ # I weep for Swift nil chaining
153
+ (l = r.headers['link']) && (m = l.match(/<(.*)>/)) && m.captures.first
154
+ end
155
+ next_link = link_from_response.call(response)
152
156
  result = Array(handle_response(response))
153
157
  resulting_array += result
154
158
  return resulting_array if result.count == 0
155
- offset = result.last['id']
156
159
 
157
- loop do
158
- url = "providers/#{team_id}/apps/#{app_id}/testers?offset=added,#{offset}&limit=#{page_size}&sort=status,default&order=asc"
159
- url += "&offset=#{offset}" if offset
160
- response = request(:get, url)
160
+ until next_link.nil?
161
+ response = request(:get, next_link)
161
162
  result = Array(handle_response(response))
163
+ next_link = link_from_response.call(response)
162
164
 
163
165
  break if result.count == 0
164
- # If there are no more, the last response seems to be repeated
165
- break if offset == result.last['id']
166
166
 
167
167
  resulting_array += result
168
- offset = result.last['id']
169
168
  end
170
169
  return resulting_array.uniq
171
170
  end
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.67.0.beta.20171127010003
4
+ version: 2.67.0.beta.20171128010003
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-11-27 00:00:00.000000000 Z
18
+ date: 2017-11-28 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier