fastlane 2.118.0.beta.20190302200102 → 2.118.0.beta.20190303200015
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 +4 -4
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +14 -0
- data/fastlane/lib/fastlane/actions/hockey.rb +7 -0
- data/fastlane/lib/fastlane/actions/import_certificate.rb +12 -9
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +11 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/project.rb +1 -1
- data/gym/lib/gym/code_signing_mapping.rb +22 -1
- data/supply/lib/supply/client.rb +17 -0
- data/supply/lib/supply/options.rb +21 -1
- data/supply/lib/supply/uploader.rb +22 -0
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d1b799e1027ecb9a7c84922a1b5a73de470cc3d
|
4
|
+
data.tar.gz: 6012942fdc8fc7bab6b073225aa492808145796f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfa686c56e9ed17d85b80a4021e749e8f10d99b257d7acba8cc31230e5fb63105cf67051b15fe4f37929c6f0ebf97c19ebdb88b7c7c5cfa16cf46e96b5d2a585
|
7
|
+
data.tar.gz: 67c0bf3b3f678ace7e68758acbaa87b81579afab56a3894572b5e230aea9418226d59cd9c72bcd95093d186de9aa6b848f336c32fe5272918058385ac7c8bace
|
@@ -78,11 +78,25 @@ To gradually roll out a new build use
|
|
78
78
|
fastlane supply --apk path/app.apk --track rollout --rollout 0.5
|
79
79
|
```
|
80
80
|
|
81
|
+
### Expansion files (`.obb`)
|
82
|
+
|
81
83
|
Expansion files (obbs) found under the same directory as your APK will also be uploaded together with your APK as long as:
|
82
84
|
|
83
85
|
- they are identified as type 'main' or 'patch' (by containing 'main' or 'patch' in their file name)
|
84
86
|
- you have at most one of each type
|
85
87
|
|
88
|
+
If you only want to update the APK, but keep the expansion files from the previous version on Google Play use
|
89
|
+
|
90
|
+
```no-highlight
|
91
|
+
fastlane supply --apk path/app.apk --obb_main_references_version 21 --obb_main_file_size 666154207
|
92
|
+
```
|
93
|
+
|
94
|
+
or
|
95
|
+
|
96
|
+
```no-highlight
|
97
|
+
fastlane supply --apk path/app.apk --obb_patch_references_version 21 --obb_patch_file_size 666154207
|
98
|
+
```
|
99
|
+
|
86
100
|
## Uploading an AAB
|
87
101
|
|
88
102
|
To upload a new [Android application bundle](https://developer.android.com/guide/app-bundle/) to Google Play, simply run
|
@@ -376,6 +376,13 @@ module Fastlane
|
|
376
376
|
bundle_version: "1.0.2.145",
|
377
377
|
ipa: "./my.msi",
|
378
378
|
notes: "Changelog"
|
379
|
+
)',
|
380
|
+
'# You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls)
|
381
|
+
hockey(
|
382
|
+
api_token: "...",
|
383
|
+
ipa: "./app.ipa",
|
384
|
+
notes: "Changelog",
|
385
|
+
bypass_cdn: true
|
379
386
|
)'
|
380
387
|
]
|
381
388
|
end
|
@@ -15,6 +15,14 @@ module Fastlane
|
|
15
15
|
|
16
16
|
def self.available_options
|
17
17
|
[
|
18
|
+
FastlaneCore::ConfigItem.new(key: :certificate_path,
|
19
|
+
description: "Path to certificate",
|
20
|
+
optional: false),
|
21
|
+
FastlaneCore::ConfigItem.new(key: :certificate_password,
|
22
|
+
description: "Certificate password",
|
23
|
+
sensitive: true,
|
24
|
+
default_value: "",
|
25
|
+
optional: true),
|
18
26
|
FastlaneCore::ConfigItem.new(key: :keychain_name,
|
19
27
|
env_name: "KEYCHAIN_NAME",
|
20
28
|
description: "Keychain the items should be imported to",
|
@@ -28,14 +36,6 @@ module Fastlane
|
|
28
36
|
description: "The password for the keychain. Note that for the login keychain this is your user's password",
|
29
37
|
sensitive: true,
|
30
38
|
optional: true),
|
31
|
-
FastlaneCore::ConfigItem.new(key: :certificate_path,
|
32
|
-
description: "Path to certificate",
|
33
|
-
optional: false),
|
34
|
-
FastlaneCore::ConfigItem.new(key: :certificate_password,
|
35
|
-
description: "Certificate password",
|
36
|
-
sensitive: true,
|
37
|
-
default_value: "",
|
38
|
-
optional: true),
|
39
39
|
FastlaneCore::ConfigItem.new(key: :log_output,
|
40
40
|
description: "If output should be logged to the console",
|
41
41
|
type: Boolean,
|
@@ -53,7 +53,7 @@ module Fastlane
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def self.details
|
56
|
-
"Import certificates into the current default keychain. Use `create_keychain` to create a new keychain."
|
56
|
+
"Import certificates (and private keys) into the current default keychain. Use the `create_keychain` action to create a new keychain."
|
57
57
|
end
|
58
58
|
|
59
59
|
def self.example_code
|
@@ -62,6 +62,9 @@ module Fastlane
|
|
62
62
|
'import_certificate(
|
63
63
|
certificate_path: "certs/dist.p12",
|
64
64
|
certificate_password: ENV["CERTIFICATE_PASSWORD"] || "default"
|
65
|
+
)',
|
66
|
+
'import_certificate(
|
67
|
+
certificate_path: "certs/development.cer"
|
65
68
|
)'
|
66
69
|
]
|
67
70
|
end
|
@@ -26,6 +26,9 @@ module Fastlane
|
|
26
26
|
# optionally add the force component
|
27
27
|
command << '--force-with-lease' if params[:force_with_lease]
|
28
28
|
|
29
|
+
# optionally add the no-verify component
|
30
|
+
command << '--no-verify' if params[:no_verify]
|
31
|
+
|
29
32
|
# execute our command
|
30
33
|
Actions.sh('pwd')
|
31
34
|
return command.join(' ') if Helper.test?
|
@@ -68,7 +71,12 @@ module Fastlane
|
|
68
71
|
FastlaneCore::ConfigItem.new(key: :remote,
|
69
72
|
env_name: "FL_GIT_PUSH_REMOTE",
|
70
73
|
description: "The remote to push to",
|
71
|
-
default_value: 'origin')
|
74
|
+
default_value: 'origin'),
|
75
|
+
FastlaneCore::ConfigItem.new(key: :no_verify,
|
76
|
+
env_name: "FL_GIT_PUSH_USE_NO_VERIFY",
|
77
|
+
description: "Whether or not to use --no-verify",
|
78
|
+
type: Boolean,
|
79
|
+
default_value: false)
|
72
80
|
]
|
73
81
|
end
|
74
82
|
|
@@ -93,7 +101,8 @@ module Fastlane
|
|
93
101
|
remote_branch: "develop", # optional, default is set to local_branch
|
94
102
|
force: true, # optional, default: false
|
95
103
|
force_with_lease: true, # optional, default: false
|
96
|
-
tags: false
|
104
|
+
tags: false, # optional, default: true
|
105
|
+
no_verify: true # optional, default: false
|
97
106
|
)'
|
98
107
|
]
|
99
108
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.118.0.beta.
|
2
|
+
VERSION = '2.118.0.beta.20190303200015'.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
|
@@ -103,8 +103,8 @@ module FastlaneCore
|
|
103
103
|
# returns the Xcodeproj::Workspace or nil if it is a project
|
104
104
|
def workspace
|
105
105
|
return nil unless workspace?
|
106
|
+
|
106
107
|
@workspace ||= Xcodeproj::Workspace.new_from_xcworkspace(path)
|
107
|
-
@workspace.load_schemes(path)
|
108
108
|
@workspace
|
109
109
|
end
|
110
110
|
|
@@ -91,9 +91,30 @@ module Gym
|
|
91
91
|
return destination_sdkroot.include?(sdkroot)
|
92
92
|
end
|
93
93
|
|
94
|
+
def detect_configuration_for_archive
|
95
|
+
extract_from_scheme = lambda do
|
96
|
+
if self.project.workspace?
|
97
|
+
available_schemes = self.project.workspace.schemes.reject { |k, v| v.include?("Pods/Pods.xcodeproj") }
|
98
|
+
project_path = available_schemes[Gym.config[:scheme]]
|
99
|
+
else
|
100
|
+
project_path = self.project.path
|
101
|
+
end
|
102
|
+
|
103
|
+
if project_path
|
104
|
+
scheme_path = File.join(project_path, "xcshareddata", "xcschemes", "#{Gym.config[:scheme]}.xcscheme")
|
105
|
+
Xcodeproj::XCScheme.new(scheme_path).archive_action.build_configuration if File.exist?(scheme_path)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
configuration = Gym.config[:configuration]
|
110
|
+
configuration ||= extract_from_scheme.call if Gym.config[:scheme]
|
111
|
+
configuration ||= self.project.default_build_settings(key: "CONFIGURATION")
|
112
|
+
return configuration
|
113
|
+
end
|
114
|
+
|
94
115
|
def detect_project_profile_mapping
|
95
116
|
provisioning_profile_mapping = {}
|
96
|
-
specified_configuration =
|
117
|
+
specified_configuration = detect_configuration_for_archive
|
97
118
|
|
98
119
|
self.project.project_paths.each do |project_path|
|
99
120
|
UI.verbose("Parsing project file '#{project_path}' to find selected provisioning profiles")
|
data/supply/lib/supply/client.rb
CHANGED
@@ -357,6 +357,23 @@ module Supply
|
|
357
357
|
end
|
358
358
|
end
|
359
359
|
|
360
|
+
def update_obb(apk_version_code, expansion_file_type, references_version, file_size)
|
361
|
+
ensure_active_edit!
|
362
|
+
|
363
|
+
call_google_api do
|
364
|
+
client.update_expansion_file(
|
365
|
+
current_package_name,
|
366
|
+
current_edit.id,
|
367
|
+
apk_version_code,
|
368
|
+
expansion_file_type,
|
369
|
+
Google::Apis::AndroidpublisherV2::ExpansionFile.new(
|
370
|
+
references_version: references_version,
|
371
|
+
file_size: file_size
|
372
|
+
)
|
373
|
+
)
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
360
377
|
#####################################################
|
361
378
|
# @!group Screenshots
|
362
379
|
#####################################################
|
@@ -238,7 +238,27 @@ module Supply
|
|
238
238
|
version_codes.each do |version_code|
|
239
239
|
UI.user_error!("Version code '#{version_code}' is not an integer") unless version_code.kind_of?(Integer)
|
240
240
|
end
|
241
|
-
end)
|
241
|
+
end),
|
242
|
+
FastlaneCore::ConfigItem.new(key: :obb_main_references_version,
|
243
|
+
env_name: "SUPPLY_OBB_MAIN_REFERENCES_VERSION",
|
244
|
+
description: "References version of 'main' expansion file",
|
245
|
+
optional: true,
|
246
|
+
type: Numeric),
|
247
|
+
FastlaneCore::ConfigItem.new(key: :obb_main_file_size,
|
248
|
+
env_name: "SUPPLY_OBB_MAIN_FILE SIZE",
|
249
|
+
description: "Size of 'main' expansion file in bytes",
|
250
|
+
optional: true,
|
251
|
+
type: Numeric),
|
252
|
+
FastlaneCore::ConfigItem.new(key: :obb_patch_references_version,
|
253
|
+
env_name: "SUPPLY_OBB_PATCH_REFERENCES_VERSION",
|
254
|
+
description: "References version of 'patch' expansion file",
|
255
|
+
optional: true,
|
256
|
+
type: Numeric),
|
257
|
+
FastlaneCore::ConfigItem.new(key: :obb_patch_file_size,
|
258
|
+
env_name: "SUPPLY_OBB_PATCH_FILE SIZE",
|
259
|
+
description: "Size of 'patch' expansion file in bytes",
|
260
|
+
optional: true,
|
261
|
+
type: Numeric)
|
242
262
|
]
|
243
263
|
end
|
244
264
|
# rubocop:enable Metrics/PerceivedComplexity
|
@@ -184,6 +184,20 @@ module Supply
|
|
184
184
|
apk_version_code = client.upload_apk(apk_path)
|
185
185
|
UI.user_error!("Could not upload #{apk_path}") unless apk_version_code
|
186
186
|
|
187
|
+
if Supply.config[:obb_main_references_version] && Supply.config[:obb_main_file_size]
|
188
|
+
update_obb(apk_version_code,
|
189
|
+
'main',
|
190
|
+
Supply.config[:obb_main_references_version],
|
191
|
+
Supply.config[:obb_main_file_size])
|
192
|
+
end
|
193
|
+
|
194
|
+
if Supply.config[:obb_patch_references_version] && Supply.config[:obb_patch_file_size]
|
195
|
+
update_obb(apk_version_code,
|
196
|
+
'patch',
|
197
|
+
Supply.config[:obb_patch_references_version],
|
198
|
+
Supply.config[:obb_patch_file_size])
|
199
|
+
end
|
200
|
+
|
187
201
|
upload_obbs(apk_path, apk_version_code)
|
188
202
|
|
189
203
|
if metadata_path
|
@@ -198,6 +212,14 @@ module Supply
|
|
198
212
|
apk_version_code
|
199
213
|
end
|
200
214
|
|
215
|
+
def update_obb(apk_version_code, expansion_file_type, references_version, file_size)
|
216
|
+
UI.message("Updating '#{expansion_file_type}' expansion file from version '#{references_version}'...")
|
217
|
+
client.update_obb(apk_version_code,
|
218
|
+
expansion_file_type,
|
219
|
+
references_version,
|
220
|
+
file_size)
|
221
|
+
end
|
222
|
+
|
201
223
|
def update_track(apk_version_codes)
|
202
224
|
UI.message("Updating track '#{Supply.config[:track]}'...")
|
203
225
|
check_superseded_tracks(apk_version_codes) if Supply.config[:check_superseded_tracks]
|
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.118.0.beta.
|
4
|
+
version: 2.118.0.beta.20190303200015
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jimmy Dee
|
@@ -27,7 +27,7 @@ authors:
|
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2019-03-
|
30
|
+
date: 2019-03-03 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
requirements:
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
version: 1.
|
58
|
+
version: 1.8.1
|
59
59
|
- - "<"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 2.0.0
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: 1.8.1
|
69
69
|
- - "<"
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: 2.0.0
|
@@ -1687,23 +1687,23 @@ metadata:
|
|
1687
1687
|
post_install_message:
|
1688
1688
|
rdoc_options: []
|
1689
1689
|
require_paths:
|
1690
|
-
- pem/lib
|
1691
|
-
- cert/lib
|
1692
|
-
- fastlane/lib
|
1693
1690
|
- spaceship/lib
|
1691
|
+
- fastlane_core/lib
|
1692
|
+
- produce/lib
|
1693
|
+
- frameit/lib
|
1694
|
+
- fastlane/lib
|
1695
|
+
- screengrab/lib
|
1696
|
+
- pem/lib
|
1694
1697
|
- credentials_manager/lib
|
1698
|
+
- cert/lib
|
1699
|
+
- pilot/lib
|
1700
|
+
- gym/lib
|
1695
1701
|
- sigh/lib
|
1696
|
-
-
|
1697
|
-
- supply/lib
|
1702
|
+
- snapshot/lib
|
1698
1703
|
- scan/lib
|
1699
1704
|
- match/lib
|
1700
|
-
-
|
1701
|
-
- frameit/lib
|
1702
|
-
- produce/lib
|
1703
|
-
- gym/lib
|
1704
|
-
- screengrab/lib
|
1705
|
+
- supply/lib
|
1705
1706
|
- precheck/lib
|
1706
|
-
- snapshot/lib
|
1707
1707
|
- deliver/lib
|
1708
1708
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1709
1709
|
requirements:
|