fastlane 2.90.0.beta.20180409050033 → 2.90.0.beta.20180410050128
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +3 -3
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +4 -4
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +0 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/match/lib/match/options.rb +2 -8
- data/match/lib/match/runner.rb +1 -1
- data/match/lib/match/spaceship_ensure.rb +2 -2
- data/spaceship/lib/spaceship/launcher.rb +5 -2
- data/spaceship/lib/spaceship/portal/portal_client.rb +5 -2
- data/spaceship/lib/spaceship/portal/spaceship.rb +7 -4
- data/spaceship/lib/spaceship/portal/ui/select_team.rb +3 -3
- data/spaceship/lib/spaceship/tunes/spaceship.rb +5 -2
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +7 -4
- 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: dffc77a0bc105b0f37e52052d041a1d211f60a2d
|
4
|
+
data.tar.gz: 16f342b4554693cc2b7fc960724e8643a318ed8c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a49392f52832e799a473303fd9d343555e91a4de8ec6bb0e63d21b0b7d09c426e8719c52d22c0b54611b635e853e868af469559195e5ec17839cbbeb2689174
|
7
|
+
data.tar.gz: 608785a6a964fa0653ca7e8fd0b13874c11cd11d0b9736a13c3c6325e1532534aae7e3266049f83c29b2e1c599065db1720e700a28f6b4f00b1d3a7eb3d42f69
|
@@ -50,14 +50,14 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
|
|
50
50
|
|
51
51
|
##### Configuring your <a href="#ui-tests">UI Tests</a> for Screenshots
|
52
52
|
|
53
|
-
1.
|
54
|
-
2.
|
53
|
+
1. Add `@ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule();` to your tests class to handle automatic switching of locales
|
54
|
+
2. To capture screenshots, add the following to your tests `Screengrab.screenshot("name_of_screenshot_here");` on the appropriate screens
|
55
55
|
|
56
56
|
# Generating Screenshots with Screengrab
|
57
57
|
- Then, before running `fastlane screengrab` you'll need a debug and test apk
|
58
58
|
- You can create your APKs with `./gradlew assembleDebug assembleAndroidTest`
|
59
59
|
- Once complete run `fastlane screengrab` in your app project directory to generate screenshots
|
60
|
-
|
60
|
+
- You will be prompted to provide any required parameters which are not in your **Screengrabfile** or provided as command line arguments
|
61
61
|
- Your screenshots will be saved to `fastlane/metadata/android` in the directory where you ran _screengrab_
|
62
62
|
|
63
63
|
## Improved screenshot capture with UI Automator
|
@@ -120,7 +120,7 @@ The general parameters are defined in the `default` key and can be:
|
|
120
120
|
| `stack_title` | Specifies whether _frameit_ should display the keyword above the title when both keyword and title are defined. If it is false, the title and keyword will be displayed side by side when both keyword and title are defined. | `false` |
|
121
121
|
| `title_below_image` | Specifies whether _frameit_ should place the title and optional keyword below the device frame. If it is false, it will be placed above the device frame. | `false` |
|
122
122
|
| `show_complete_frame` | Specifies whether _frameit_ should shrink the device frame so that it is completely shown in the framed screenshot. If it is false, clipping of the device frame might occur at the bottom (when `title_below_image` is `false`) or top (when `title_below_image` is `true`) of the framed screenshot. | `false` |
|
123
|
-
| `padding` | The content of the framed screenshot will be resized to match the specified `padding` around all edges. The vertical padding is also applied between the text and the top or bottom (depending on `title_below_image`) of the device frame. <
|
123
|
+
| `padding` | The content of the framed screenshot will be resized to match the specified `padding` around all edges. The vertical padding is also applied between the text and the top or bottom (depending on `title_below_image`) of the device frame. <p> There are 3 different options of specyfying the padding: <p> 1. Default: An integer value that defines both horizontal and vertical padding in pixels. <br> 2. A string that defines (different) padding values in pixels for horizontal and vertical padding. The syntax is `"<horizontal>x<vertical>"`, e.g. `"30x60"`. <br> 3. A string that defines (different) padding values in percentage for horizontal and vertical padding. The syntax is `"<horizontal>%x<vertical>%"`, e.g. `"5%x10%"`. <br> **Note:** The percentage is calculated from the smallest image dimension (height or width). <p> A combination of option 2 and 3 is possible, e.g. `"5%x40"`. | `50` |
|
124
124
|
| `interline_spacing` | Specifies whether _frameit_ should add or subtract this many pixels between the individual lines of text. This only applies to a multi-line `title` and/or `keyword` to expand or squash together the individual lines of text. | `0` |
|
125
125
|
| `font_scale_factor` | Specifies whether _frameit_ should increase or decrease the font size of the text. | `0.1` |
|
126
126
|
|
@@ -131,7 +131,7 @@ These are defined in the `data` key. This is an array with the following keys fo
|
|
131
131
|
|
132
132
|
| Key | Description |
|
133
133
|
|-----|-------------|
|
134
|
-
| `filter` | This is mandatory to link the individual configuration to the screenshot, based on part of the file name. <
|
134
|
+
| `filter` | This is mandatory to link the individual configuration to the screenshot, based on part of the file name. <p>Example:<br>If a screenshot is named `iPhone 8-Brainstorming.png` you can use value `Brainstorming` for `filter`. All other keys from that array element will only be applied on this specific screenshot. |
|
135
135
|
| `keyword` | Similar use as in `default`, except that parameter `text` can be used here because it is screenshot specific. |
|
136
136
|
| `title` | Similar use as in `default`, except that parameter `text` can be used here because it is screenshot specific. |
|
137
137
|
|
@@ -143,7 +143,7 @@ The `keyword` and `title` parameters are both used in `default` and `data`. They
|
|
143
143
|
|-----|-------------|---------------|
|
144
144
|
| `color` | The font color for the text. Specify a hex/html color code. | `#000000` (black) |
|
145
145
|
| `font` | The font family for the text. Specify the (relative) path to the font file (e.g. an OpenType Font). | The default `imagemagick` font, which is system dependent. |
|
146
|
-
| `text` | The text that should be used for the `keyword` or `title`. <
|
146
|
+
| `text` | The text that should be used for the `keyword` or `title`. <p> Note: If you want to use localised text, use [`.strings` files](#strings-files). | NA |
|
147
147
|
|
148
148
|
### Example
|
149
149
|
```json
|
@@ -204,7 +204,7 @@ To define the title and optionally the keyword, put two `.strings` files into th
|
|
204
204
|
The `keyword.strings` and `title.strings` are standard `.strings` file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles.
|
205
205
|
|
206
206
|
**Notes**
|
207
|
-
- These `.strings` files **MUST** be utf-16 encoded (UTF-16 BE with BOM).
|
207
|
+
- These `.strings` files **MUST** be utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see [issue #1740](https://github.com/fastlane/fastlane/issues/1740)
|
208
208
|
- You **MUST** provide a background if you want titles. _frameit_ will not add the tiles if a background is not specified.
|
209
209
|
|
210
210
|
# Mac
|
@@ -65,9 +65,7 @@ For more information about the concept, visit [codesigning.guide](https://codesi
|
|
65
65
|
### Setup
|
66
66
|
|
67
67
|
1. Create a **new, private Git repo** (e.g. on [GitHub](https://github.com/new) or [BitBucket](https://bitbucket.org/repo/create)) and name it something like `certificates`. **Important:** Make sure the repository is set to *private*.
|
68
|
-
|
69
68
|
2. Optional: Create a **new, shared Apple Developer Portal account**, something like `office@company.com` that will be shared across your team from now on (for more information visit [codesigning.guide](https://codesigning.guide))
|
70
|
-
|
71
69
|
3. Run the following in your project folder to start using _match_:
|
72
70
|
|
73
71
|
```no-highlight
|
@@ -628,6 +628,7 @@ You can always prefix the category using `MZGenre.` (e.g. `MZGenre.Book`). _deli
|
|
628
628
|
Deliver has a special `default` language code which allows you to provide values that are not localized, and which will be used as defaults when you don’t provide a specific localized value.
|
629
629
|
|
630
630
|
In order to use `default`, you will need to tell _deliver_ which languages your app uses. You can do this in either of two ways:
|
631
|
+
|
631
632
|
1. Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE)
|
632
633
|
2. Add the following to your `Deliverfile` `languages(['en-US','de-DE'])`
|
633
634
|
|
@@ -137,7 +137,7 @@ You can add changelog files under the `changelogs/` directory for each locale. T
|
|
137
137
|
|
138
138
|
A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production.
|
139
139
|
|
140
|
-
This can be done using the `--track_promote_to` parameter.
|
140
|
+
This can be done using the `--track_promote_to` parameter. The `--track_promote_to` parameter works with the `--track` parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the `--track` param value) to a new track (`--track_promote_to` value).
|
141
141
|
|
142
142
|
## Retrieve Track Version Codes
|
143
143
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.90.0.beta.
|
2
|
+
VERSION = '2.90.0.beta.20180410050128'.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
|
data/match/lib/match/options.rb
CHANGED
@@ -68,10 +68,7 @@ module Match
|
|
68
68
|
optional: true,
|
69
69
|
code_gen_sensitive: true,
|
70
70
|
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id),
|
71
|
-
default_value_dynamic: true,
|
72
|
-
verify_block: proc do |value|
|
73
|
-
ENV["FASTLANE_TEAM_ID"] = value.to_s
|
74
|
-
end),
|
71
|
+
default_value_dynamic: true),
|
75
72
|
FastlaneCore::ConfigItem.new(key: :git_full_name,
|
76
73
|
env_name: "MATCH_GIT_FULL_NAME",
|
77
74
|
description: "git user full name to commit",
|
@@ -89,10 +86,7 @@ module Match
|
|
89
86
|
optional: true,
|
90
87
|
code_gen_sensitive: true,
|
91
88
|
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_name),
|
92
|
-
default_value_dynamic: true,
|
93
|
-
verify_block: proc do |value|
|
94
|
-
ENV["FASTLANE_TEAM_NAME"] = value.to_s
|
95
|
-
end),
|
89
|
+
default_value_dynamic: true),
|
96
90
|
FastlaneCore::ConfigItem.new(key: :verbose,
|
97
91
|
env_name: "MATCH_VERBOSE",
|
98
92
|
description: "Print out extra information and all commands",
|
data/match/lib/match/runner.rb
CHANGED
@@ -30,7 +30,7 @@ module Match
|
|
30
30
|
clone_branch_directly: params[:clone_branch_directly])
|
31
31
|
|
32
32
|
unless params[:readonly]
|
33
|
-
self.spaceship = SpaceshipEnsure.new(params[:username])
|
33
|
+
self.spaceship = SpaceshipEnsure.new(params[:username], params[:team_id], params[:team_name])
|
34
34
|
if params[:type] == "enterprise" && !Spaceship.client.in_house?
|
35
35
|
UI.user_error!("You defined the profile type 'enterprise', but your Apple account doesn't support In-House profiles")
|
36
36
|
end
|
@@ -4,7 +4,7 @@ require_relative 'module'
|
|
4
4
|
module Match
|
5
5
|
# Ensures the certificate and profiles are also available on iTunes Connect
|
6
6
|
class SpaceshipEnsure
|
7
|
-
def initialize(user)
|
7
|
+
def initialize(user, team_id, team_name)
|
8
8
|
# We'll try to manually fetch the password
|
9
9
|
# to tell the user that a password is optional
|
10
10
|
require 'credentials_manager/account_manager'
|
@@ -20,7 +20,7 @@ module Match
|
|
20
20
|
|
21
21
|
UI.message("Verifying that the certificate and profile are still valid on the Dev Portal...")
|
22
22
|
Spaceship.login(user)
|
23
|
-
Spaceship.select_team
|
23
|
+
Spaceship.select_team(team_id: team_id, team_name: team_name)
|
24
24
|
end
|
25
25
|
|
26
26
|
def bundle_identifier_exists(username: nil, app_identifier: nil)
|
@@ -58,10 +58,13 @@ module Spaceship
|
|
58
58
|
# so that the user can use the environment variable `FASTLANE_TEAM_ID`
|
59
59
|
# for future user.
|
60
60
|
#
|
61
|
+
# @param team_id (String) (optional): The ID of a Developer Portal team
|
62
|
+
# @param team_name (String) (optional): The name of a Developer Portal team
|
63
|
+
#
|
61
64
|
# @return (String) The ID of the select team. You also get the value if
|
62
65
|
# the user is only in one team.
|
63
|
-
def select_team
|
64
|
-
@client.select_team
|
66
|
+
def select_team(team_id: team_id = nil, team_name: team_name = nil)
|
67
|
+
@client.select_team(team_id: team_id, team_name: team_name)
|
65
68
|
end
|
66
69
|
|
67
70
|
#####################################################
|
@@ -65,8 +65,11 @@ module Spaceship
|
|
65
65
|
|
66
66
|
# Shows a team selection for the user in the terminal. This should not be
|
67
67
|
# called on CI systems
|
68
|
-
|
69
|
-
|
68
|
+
#
|
69
|
+
# @param team_id (String) (optional): The ID of a Developer Portal team
|
70
|
+
# @param team_name (String) (optional): The name of a Developer Portal team
|
71
|
+
def select_team(team_id: team_id = nil, team_name: team_name = nil)
|
72
|
+
@current_team_id = self.UI.select_team(team_id: team_id, team_name: team_name)
|
70
73
|
end
|
71
74
|
|
72
75
|
# Set a new team ID which will be used from now on
|
@@ -34,10 +34,13 @@ module Spaceship
|
|
34
34
|
# so that the user can use the environment variable `FASTLANE_TEAM_ID`
|
35
35
|
# for future user.
|
36
36
|
#
|
37
|
+
# @param team_id (String) (optional): The ID of a Developer Portal team
|
38
|
+
# @param team_name (String) (optional): The name of a Developer Portal team
|
39
|
+
#
|
37
40
|
# @return (String) The ID of the select team. You also get the value if
|
38
41
|
# the user is only in one team.
|
39
|
-
def select_team
|
40
|
-
@client.select_team
|
42
|
+
def select_team(team_id: team_id = nil, team_name: team_name = nil)
|
43
|
+
@client.select_team(team_id: team_id, team_name: team_name)
|
41
44
|
end
|
42
45
|
|
43
46
|
# Helper methods for managing multiple instances of spaceship
|
@@ -95,8 +98,8 @@ module Spaceship
|
|
95
98
|
Spaceship::Portal.login(user, password)
|
96
99
|
end
|
97
100
|
|
98
|
-
def select_team
|
99
|
-
Spaceship::Portal.select_team
|
101
|
+
def select_team(team_id: team_id = nil, team_name: team_name = nil)
|
102
|
+
Spaceship::Portal.select_team(team_id: team_id, team_name: team_name)
|
100
103
|
end
|
101
104
|
|
102
105
|
def app
|
@@ -47,7 +47,7 @@ module Spaceship
|
|
47
47
|
end
|
48
48
|
# rubocop:enable Require/MissingRequireStatement
|
49
49
|
|
50
|
-
def select_team
|
50
|
+
def select_team(team_id: team_id = nil, team_name: team_name = nil)
|
51
51
|
teams = client.teams
|
52
52
|
|
53
53
|
if teams.count == 0
|
@@ -57,8 +57,8 @@ module Spaceship
|
|
57
57
|
raise "Your account is in no teams"
|
58
58
|
end
|
59
59
|
|
60
|
-
team_id = (ENV['FASTLANE_TEAM_ID'] || '').strip
|
61
|
-
team_name = (ENV['FASTLANE_TEAM_NAME'] || '').strip
|
60
|
+
team_id = (team_id || ENV['FASTLANE_TEAM_ID'] || '').strip
|
61
|
+
team_name = (team_name || ENV['FASTLANE_TEAM_NAME'] || '').strip
|
62
62
|
|
63
63
|
if team_id.length > 0
|
64
64
|
# User provided a value, let's see if it's valid
|
@@ -28,8 +28,11 @@ module Spaceship
|
|
28
28
|
#
|
29
29
|
# If the user is in multiple teams, a team selection is shown.
|
30
30
|
# The user can then select a team by entering the number
|
31
|
-
|
32
|
-
|
31
|
+
#
|
32
|
+
# @param team_id (String) (optional): The ID of a iTunesConnect team
|
33
|
+
# @param team_name (String) (optional): The name of a iTunesConnect team
|
34
|
+
def select_team(team_id: team_id = nil, team_name: team_name = nil)
|
35
|
+
@client.select_team(team_id: team_id, team_name: team_name)
|
33
36
|
end
|
34
37
|
end
|
35
38
|
end
|
@@ -56,9 +56,12 @@ module Spaceship
|
|
56
56
|
|
57
57
|
# Shows a team selection for the user in the terminal. This should not be
|
58
58
|
# called on CI systems
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
#
|
60
|
+
# @param team_id (String) (optional): The ID of a iTunesConnect team
|
61
|
+
# @param team_name (String) (optional): The name of a iTunesConnect team
|
62
|
+
def select_team(team_id: team_id = nil, team_name: team_name = nil)
|
63
|
+
t_id = (team_id || ENV['FASTLANE_ITC_TEAM_ID'] || '').strip
|
64
|
+
t_name = (team_name || ENV['FASTLANE_ITC_TEAM_NAME'] || '').strip
|
62
65
|
|
63
66
|
if t_name.length > 0 && t_id.length.zero? # we prefer IDs over names, they are unique
|
64
67
|
puts("Looking for iTunes Connect Team with name #{t_name}") if Spaceship::Globals.verbose?
|
@@ -1000,7 +1003,7 @@ module Spaceship
|
|
1000
1003
|
handle_itc_response(r.body)
|
1001
1004
|
|
1002
1005
|
# iTunes Connect still returns a success status code even the submission
|
1003
|
-
# was failed because of Ad ID info.
|
1006
|
+
# was failed because of Ad ID info. This checks for any section error
|
1004
1007
|
# keys in returned adIdInfo and prints them out.
|
1005
1008
|
ad_id_error_keys = r.body.fetch('data').fetch('adIdInfo').fetch('sectionErrorKeys')
|
1006
1009
|
if ad_id_error_keys.any?
|
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.90.0.beta.
|
4
|
+
version: 2.90.0.beta.20180410050128
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manu Wallner
|
@@ -27,7 +27,7 @@ authors:
|
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2018-04-
|
30
|
+
date: 2018-04-10 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -1622,24 +1622,24 @@ metadata:
|
|
1622
1622
|
post_install_message:
|
1623
1623
|
rdoc_options: []
|
1624
1624
|
require_paths:
|
1625
|
-
- deliver/lib
|
1626
|
-
- spaceship/lib
|
1627
|
-
- fastlane/lib
|
1628
|
-
- sigh/lib
|
1629
|
-
- screengrab/lib
|
1630
|
-
- supply/lib
|
1631
1625
|
- cert/lib
|
1632
|
-
- fastlane_core/lib
|
1633
|
-
- credentials_manager/lib
|
1634
|
-
- gym/lib
|
1635
|
-
- precheck/lib
|
1636
1626
|
- match/lib
|
1637
1627
|
- frameit/lib
|
1628
|
+
- pilot/lib
|
1629
|
+
- fastlane_core/lib
|
1630
|
+
- spaceship/lib
|
1631
|
+
- supply/lib
|
1632
|
+
- gym/lib
|
1633
|
+
- produce/lib
|
1638
1634
|
- pem/lib
|
1639
|
-
- scan/lib
|
1640
1635
|
- snapshot/lib
|
1641
|
-
-
|
1642
|
-
-
|
1636
|
+
- sigh/lib
|
1637
|
+
- deliver/lib
|
1638
|
+
- screengrab/lib
|
1639
|
+
- fastlane/lib
|
1640
|
+
- credentials_manager/lib
|
1641
|
+
- scan/lib
|
1642
|
+
- precheck/lib
|
1643
1643
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1644
1644
|
requirements:
|
1645
1645
|
- - ">="
|