fastlane 2.61.0.beta.20171006010004 → 2.61.0.beta.20171007010004
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -161
- data/cert/README.md +7 -166
- data/deliver/README.md +7 -287
- data/deliver/lib/deliver/runner.rb +1 -1
- data/fastlane/README.md +7 -209
- data/fastlane/lib/fastlane/actions/cocoapods.rb +27 -8
- data/fastlane/lib/fastlane/actions/docs/assets/FrameitGit.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/MacExample.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PEMRecording.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PilotTextTransparent.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PilotTextTransparentSmall.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PilotTextWhite.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PilotTransparent.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/QuickLookScreenshot.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/ScreenshotsBig.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/ScreenshotsOverview.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/SignErrors.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/UDIDPrint.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/frameit.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/github_repo.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/htmlPage.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/htmlPagePreview.jpg +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/htmlPagePreviewFade.jpg +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/match.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/match_appstore_small.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/match_init.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/match_nuke.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/pem.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/pilot.ai +5377 -16
- data/fastlane/lib/fastlane/actions/docs/assets/precheck.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/precheck.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/produce.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/running-screengrab.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/scan.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/scanHTML.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/scanHTMLFailing.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/scanScreenshot.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/screengrab.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/sigh.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/sighRecording.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/slack.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/snapshot.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/snapshot.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/supply.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/testSummary.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/cert.md +2 -4
- data/fastlane/lib/fastlane/actions/docs/deliver.md +1 -3
- data/fastlane/lib/fastlane/actions/docs/frameit.md +215 -0
- data/fastlane/lib/fastlane/actions/docs/gym.md +17 -17
- data/fastlane/lib/fastlane/actions/docs/match.md +352 -0
- data/fastlane/lib/fastlane/actions/docs/pem.md +120 -0
- data/fastlane/lib/fastlane/actions/docs/pilot.md +218 -0
- data/fastlane/lib/fastlane/actions/docs/precheck.md +97 -0
- data/fastlane/lib/fastlane/actions/docs/produce.md +227 -0
- data/fastlane/lib/fastlane/actions/docs/scan.md +145 -0
- data/fastlane/lib/fastlane/actions/docs/screengrab.md +145 -0
- data/fastlane/lib/fastlane/actions/docs/sigh.md +187 -0
- data/fastlane/lib/fastlane/actions/docs/snapshot.md +333 -0
- data/fastlane/lib/fastlane/actions/docs/supply.md +144 -0
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +5 -0
- data/fastlane/lib/fastlane/setup/setup_ios.rb +2 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/frameit/README.md +7 -290
- data/gym/README.md +7 -300
- data/match/README.md +7 -420
- data/match/lib/match/generator.rb +1 -0
- data/match/lib/match/git_helper.rb +31 -12
- data/match/lib/match/runner.rb +11 -6
- data/pem/README.md +7 -188
- data/pilot/README.md +7 -285
- data/pilot/lib/pilot/build_manager.rb +13 -10
- data/precheck/README.md +7 -171
- data/produce/README.md +7 -294
- data/scan/README.md +7 -219
- data/screengrab/README.md +7 -192
- data/sigh/README.md +7 -262
- data/snapshot/README.md +7 -408
- data/snapshot/lib/snapshot/reset_simulators.rb +4 -2
- data/spaceship/lib/spaceship/test_flight/build.rb +1 -1
- data/supply/README.md +7 -219
- metadata +52 -2
@@ -185,8 +185,13 @@ module Fastlane
|
|
185
185
|
def update_dependencies!
|
186
186
|
puts "Updating plugin dependencies..."
|
187
187
|
ensure_plugins_attached!
|
188
|
+
plugins = available_plugins
|
189
|
+
if plugins.empty?
|
190
|
+
UI.user_error!("No plugins are installed")
|
191
|
+
end
|
188
192
|
with_clean_bundler_env do
|
189
193
|
cmd = "bundle update"
|
194
|
+
cmd << " #{plugins.join(' ')}"
|
190
195
|
cmd << " --quiet" unless FastlaneCore::Globals.verbose?
|
191
196
|
cmd << " && echo 'Successfully updated plugins'"
|
192
197
|
UI.command(cmd) if FastlaneCore::Globals.verbose?
|
@@ -259,6 +259,8 @@ module Fastlane
|
|
259
259
|
require 'deliver'
|
260
260
|
require 'deliver/setup'
|
261
261
|
options = FastlaneCore::Configuration.create(Deliver::Options.available_options, {})
|
262
|
+
options[:run_precheck_before_submit] = false # precheck doesn't need to run during init
|
263
|
+
|
262
264
|
Deliver::Runner.new(options) # to login...
|
263
265
|
Deliver::Setup.new.run(options)
|
264
266
|
end
|
data/frameit/README.md
CHANGED
@@ -1,300 +1,17 @@
|
|
1
1
|
<h3 align="center">
|
2
|
-
<a href="https://
|
3
|
-
<img src="
|
2
|
+
<a href="https://docs.fastlane.tools/actions/frameit">
|
3
|
+
<img src="https://raw.githubusercontent.com/fastlane/fastlane/master/fastlane/assets/fastlane.png" width="100" />
|
4
4
|
<br />
|
5
5
|
fastlane
|
6
6
|
</a>
|
7
7
|
</h3>
|
8
|
-
<p align="center">
|
9
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> •
|
10
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> •
|
11
|
-
<b>frameit</b> •
|
12
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> •
|
13
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> •
|
14
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> •
|
15
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> •
|
16
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> •
|
17
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> •
|
18
|
-
<a href="https://github.com/fastlane/boarding">boarding</a> •
|
19
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> •
|
20
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> •
|
21
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> •
|
22
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
|
23
|
-
</p>
|
24
|
-
|
25
|
-
-------
|
26
|
-
|
27
|
-
<p align="center">
|
28
|
-
<img src="assets/frameit.png" height="110">
|
29
|
-
</p>
|
30
|
-
|
31
|
-
frameit
|
32
|
-
============
|
33
|
-
|
34
|
-
[![Twitter: @KauseFx](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
|
35
|
-
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/frameit/LICENSE)
|
36
|
-
|
37
|
-
###### Quickly put your screenshots into the right device frames
|
38
|
-
|
39
|
-
`frameit` allows you to put a gorgeous device frame around your iOS and macOS screenshots just by running one simple command. Use `frameit` to prepare perfect screenshots for the App Store, your website, QA or emails.
|
40
|
-
|
41
|
-
|
42
|
-
Get in contact with the developer on Twitter: [@FastlaneTools](https://twitter.com/FastlaneTools)
|
43
8
|
|
44
|
-
|
9
|
+
------
|
45
10
|
|
46
11
|
<p align="center">
|
47
|
-
|
48
|
-
<
|
49
|
-
|
50
|
-
<a href="#tips">Tips</a> •
|
51
|
-
<a href="#need-help">Need help?</a>
|
12
|
+
<a href="https://docs.fastlane.tools/actions/frameit">
|
13
|
+
<img src="https://raw.githubusercontent.com/fastlane/fastlane/master/frameit/assets/frameit.png" height="110">
|
14
|
+
</a>
|
52
15
|
</p>
|
53
16
|
|
54
|
-
|
55
|
-
|
56
|
-
<h5 align="center"><code>frameit</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
|
57
|
-
|
58
|
-
|
59
|
-
# Features
|
60
|
-
|
61
|
-
Put a gorgeous device frame around your iOS and macOS screenshots just by running one simple command. Support for:
|
62
|
-
- iPhone, iPad and Mac
|
63
|
-
- Portrait and Landscape modes
|
64
|
-
- Several colors
|
65
|
-
|
66
|
-
The complete and updated list of supported devices and colors can be found [here](https://github.com/fastlane/frameit-frames/tree/gh-pages/latest)
|
67
|
-
|
68
|
-
##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
|
69
|
-
|
70
|
-
Here is a nice gif, that shows ```frameit``` in action:
|
71
|
-
|
72
|
-
![assets/FrameitGit.gif](assets/FrameitGit.gif?raw=1)
|
73
|
-
|
74
|
-
### Results
|
75
|
-
|
76
|
-
![assets/ScreenshotsBig.png](assets/ScreenshotsBig.png?raw=1)
|
77
|
-
|
78
|
-
-------
|
79
|
-
|
80
|
-
![assets/ScreenshotsOverview.png](assets/ScreenshotsOverview.png?raw=1)
|
81
|
-
|
82
|
-
-------
|
83
|
-
|
84
|
-
![assets/MacExample.png](assets/MacExample.png?raw=1)
|
85
|
-
|
86
|
-
<h5 align="center">The <code>frameit</code> 2.0 update was kindly sponsored by <a href="https://mindnode.com/">MindNode</a>, seen in the screenshots above.
|
87
|
-
|
88
|
-
# Installation
|
89
|
-
|
90
|
-
Make sure, you have the commandline tools installed
|
91
|
-
|
92
|
-
xcode-select --install
|
93
|
-
|
94
|
-
Install the gem
|
95
|
-
|
96
|
-
sudo gem install fastlane
|
97
|
-
|
98
|
-
The first time that ```frameit``` is executed the frames will be downloaded automatically. Originally the frames are coming from [Facebook frameset](http://facebook.design/devices) and they are kept on this repo: https://github.com/fastlane/frameit-frames
|
99
|
-
|
100
|
-
More information about this process and how to update the frames can be found [here](https://github.com/fastlane/fastlane/tree/master/frameit/frames_generator)
|
101
|
-
|
102
|
-
# Usage
|
103
|
-
|
104
|
-
Why should you have to use Photoshop, just to add a frame around your screenshots?
|
105
|
-
|
106
|
-
Just navigate to your folder of screenshots and use the following command:
|
107
|
-
|
108
|
-
fastlane frameit
|
109
|
-
|
110
|
-
To use the silver version of the frames:
|
111
|
-
|
112
|
-
fastlane frameit silver
|
113
|
-
|
114
|
-
To download the latest frames
|
115
|
-
|
116
|
-
fastlane frameit download_frames
|
117
|
-
|
118
|
-
When using `frameit` without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.
|
119
|
-
|
120
|
-
# Titles and Background (optional)
|
121
|
-
|
122
|
-
With `frameit` 2.0 you are now able to add a custom background, title and text colors to your screenshots.
|
123
|
-
|
124
|
-
A working example can be found in the [fastlane examples](https://github.com/fastlane/examples/tree/master/MindNode/screenshots) project.
|
125
|
-
|
126
|
-
#### `Framefile.json`
|
127
|
-
|
128
|
-
Use it to define the general information:
|
129
|
-
|
130
|
-
```json
|
131
|
-
{
|
132
|
-
"device_frame_version": "latest",
|
133
|
-
"default": {
|
134
|
-
"keyword": {
|
135
|
-
"font": "./fonts/MyFont-Rg.otf"
|
136
|
-
},
|
137
|
-
"title": {
|
138
|
-
"font": "./fonts/MyFont-Th.otf",
|
139
|
-
"color": "#545454"
|
140
|
-
},
|
141
|
-
"background": "./background.jpg",
|
142
|
-
"padding": 50,
|
143
|
-
"show_complete_frame": false,
|
144
|
-
"stack_title" : false,
|
145
|
-
"title_below_image": true
|
146
|
-
},
|
147
|
-
|
148
|
-
"data": [
|
149
|
-
{
|
150
|
-
"filter": "Brainstorming",
|
151
|
-
"keyword": {
|
152
|
-
"color": "#d21559"
|
153
|
-
}
|
154
|
-
},
|
155
|
-
{
|
156
|
-
"filter": "Organizing",
|
157
|
-
"keyword": {
|
158
|
-
"color": "#feb909"
|
159
|
-
}
|
160
|
-
},
|
161
|
-
{
|
162
|
-
"filter": "Sharing",
|
163
|
-
"keyword": {
|
164
|
-
"color": "#aa4dbc"
|
165
|
-
}
|
166
|
-
},
|
167
|
-
{
|
168
|
-
"filter": "Styling",
|
169
|
-
"keyword": {
|
170
|
-
"color": "#31bb48"
|
171
|
-
}
|
172
|
-
}
|
173
|
-
]
|
174
|
-
}
|
175
|
-
```
|
176
|
-
The `stack_title` value specifies whether `frameit` should display the keyword above the title when both keyword and title are defined.
|
177
|
-
|
178
|
-
The `show_complete_frame` value specifies whether `frameit` should shrink the device and frame so that they show in full in the framed screenshot. If it is false, then they can hang over the bottom of the screenshot.
|
179
|
-
|
180
|
-
The `title_below_image` value specifies whether `frameit` should place the title below the screenshot. If it is false, it will be placed above the screenshot.
|
181
|
-
|
182
|
-
The `filter` value is a part of the screenshot named for which the given option should be used. If a screenshot is named `iPhone5_Brainstorming.png` the first entry in the `data` array will be used.
|
183
|
-
|
184
|
-
You can find a more complex [configuration](https://github.com/fastlane/examples/blob/master/MindNode/screenshots/Framefile.json) to also support Chinese, Japanese and Korean languages.
|
185
|
-
|
186
|
-
The `Framefile.json` should be in the `screenshots` folder, as seen in the [example](https://github.com/fastlane/examples/tree/master/MindNode/screenshots).
|
187
|
-
|
188
|
-
#### `.strings` files
|
189
|
-
|
190
|
-
To define the title and optionally the keyword, put two `.strings` files into the language folder (e.g. [en-US in the example project](https://github.com/fastlane/examples/tree/master/MindNode/screenshots/en-US))
|
191
|
-
|
192
|
-
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.
|
193
|
-
|
194
|
-
**Note:** 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)
|
195
|
-
|
196
|
-
**Note:** You **MUST** provide a background if you want titles. `frameit` will not add the tiles if a background is not specified.
|
197
|
-
|
198
|
-
#### Uploading screenshots to iTC
|
199
|
-
|
200
|
-
Use [deliver](https://github.com/fastlane/fastlane/tree/master/deliver) to upload all screenshots to iTunes Connect completely automatically :rocket:
|
201
|
-
|
202
|
-
### Mac
|
203
|
-
|
204
|
-
With `frameit` 2.0 it's possible to also frame macOS Application screenshots. You have to provide the following:
|
205
|
-
|
206
|
-
- The `offset` information so `frameit` knows where to put your screenshots
|
207
|
-
- A path to a `background`, which should contain both the background and the Mac
|
208
|
-
- `titleHeight`: The height in px that should be used for the title
|
209
|
-
|
210
|
-
##### Example
|
211
|
-
```json
|
212
|
-
{
|
213
|
-
"default": {
|
214
|
-
"title": {
|
215
|
-
"color": "#545454"
|
216
|
-
},
|
217
|
-
"background": "Mac.jpg",
|
218
|
-
"offset": {
|
219
|
-
"offset": "+676+479",
|
220
|
-
"titleHeight": 320
|
221
|
-
}
|
222
|
-
},
|
223
|
-
"data": [
|
224
|
-
{
|
225
|
-
"filter": "Brainstorming",
|
226
|
-
"keyword": {
|
227
|
-
"color": "#d21559"
|
228
|
-
}
|
229
|
-
}
|
230
|
-
]
|
231
|
-
}
|
232
|
-
```
|
233
|
-
|
234
|
-
Check out the [MindNode example project](https://github.com/fastlane/examples/tree/master/MindNode/screenshots).
|
235
|
-
|
236
|
-
# Tips
|
237
|
-
|
238
|
-
## [`fastlane`](https://fastlane.tools) Toolchain
|
239
|
-
|
240
|
-
- [`fastlane`](https://fastlane.tools): The easiest way to automate beta deployments and releases for your iOS and Android apps
|
241
|
-
- [`deliver`](https://github.com/fastlane/fastlane/tree/master/deliver): Upload screenshots, metadata and your app to the App Store
|
242
|
-
- [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot): Automate taking localized screenshots of your iOS app on every device
|
243
|
-
- [`pem`](https://github.com/fastlane/fastlane/tree/master/pem): Automatically generate and renew your push notification profiles
|
244
|
-
- [`sigh`](https://github.com/fastlane/fastlane/tree/master/sigh): Because you would rather spend your time building stuff than fighting provisioning
|
245
|
-
- [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
|
246
|
-
- [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
|
247
|
-
- [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
|
248
|
-
- [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot): The best way to manage your TestFlight testers and builds from your terminal
|
249
|
-
- [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
|
250
|
-
- [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
|
251
|
-
- [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
|
252
|
-
- [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
|
253
|
-
- [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
|
254
|
-
|
255
|
-
##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
|
256
|
-
|
257
|
-
## Generate localized screenshots
|
258
|
-
Check out [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot) to automatically generate screenshots using ```UI Automation```.
|
259
|
-
|
260
|
-
## Alternative location to store device_frames
|
261
|
-
|
262
|
-
Device frames can also be stored in a ```./fastlane/screenshots/devices_frames``` directory if you prefer rather than in the ```~/.frameit/device_frames``` directory. If doing so please be aware that Apple's images are copyrighted and should not be redistributed as part of a repository so you may want to include them in your .gitignore file.
|
263
|
-
|
264
|
-
## White background of frames
|
265
|
-
|
266
|
-
Some stock images provided by Apple still have a white background instead of a transparent one. You'll have to edit the Photoshop file to remove the white background, delete the generated `.png` file and run `fastlane frameit` again.
|
267
|
-
|
268
|
-
## Use a clean status bar
|
269
|
-
You can use [SimulatorStatusMagic](https://github.com/shinydevelopment/SimulatorStatusMagic) to clean up the status bar.
|
270
|
-
|
271
|
-
## Gray artifacts around text
|
272
|
-
|
273
|
-
If you run into any quality issues, like having a border around the font, it usually helps to just re-install `imagemagick`. You can do so by running
|
274
|
-
|
275
|
-
```sh
|
276
|
-
brew uninstall imagemagick
|
277
|
-
brew install imagemagick
|
278
|
-
```
|
279
|
-
|
280
|
-
## Uninstall
|
281
|
-
- ```sudo gem uninstall fastlane```
|
282
|
-
- ```rm -rf ~/.frameit```
|
283
|
-
|
284
|
-
# Need help?
|
285
|
-
|
286
|
-
Before submitting a new GitHub issue, please make sure to
|
287
|
-
|
288
|
-
- Check out [docs.fastlane.tools](https://docs.fastlane.tools)
|
289
|
-
- Check out the README pages on [this repo](https://github.com/fastlane/fastlane)
|
290
|
-
- Search for [existing GitHub issues](https://github.com/fastlane/fastlane/issues)
|
291
|
-
|
292
|
-
If the above doesn't help, please [submit an issue](https://github.com/fastlane/fastlane/issues) on GitHub and provide information about your setup, in particular the output of the `fastlane env` command.
|
293
|
-
|
294
|
-
# Code of Conduct
|
295
|
-
Help us keep `frameit` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
|
296
|
-
|
297
|
-
# License
|
298
|
-
This project is licensed under the terms of the MIT license. See the LICENSE file.
|
299
|
-
|
300
|
-
> This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
|
17
|
+
<h3 align="center">The <i>frameit</i> docs were moved to <a href='https://docs.fastlane.tools/actions/frameit'>docs.fastlane.tools</a></h3>
|
data/gym/README.md
CHANGED
@@ -1,310 +1,17 @@
|
|
1
1
|
<h3 align="center">
|
2
|
-
<a href="https://
|
3
|
-
<img src="
|
2
|
+
<a href="https://docs.fastlane.tools/actions/gym">
|
3
|
+
<img src="https://raw.githubusercontent.com/fastlane/fastlane/master/fastlane/assets/fastlane.png" width="100" />
|
4
4
|
<br />
|
5
5
|
fastlane
|
6
6
|
</a>
|
7
7
|
</h3>
|
8
|
-
<p align="center">
|
9
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> •
|
10
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> •
|
11
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> •
|
12
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> •
|
13
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> •
|
14
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> •
|
15
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> •
|
16
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> •
|
17
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> •
|
18
|
-
<a href="https://github.com/fastlane/boarding">boarding</a> •
|
19
|
-
<b>gym</b> •
|
20
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> •
|
21
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> •
|
22
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
|
23
|
-
</p>
|
24
|
-
|
25
|
-
-------
|
26
|
-
|
27
|
-
<p align="center">
|
28
|
-
<img src="assets/gym.png" height="110">
|
29
|
-
</p>
|
30
8
|
|
31
|
-
|
32
|
-
============
|
33
|
-
|
34
|
-
[![Twitter: @KauseFx](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
|
35
|
-
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/gym/LICENSE)
|
36
|
-
|
37
|
-
###### Building your app has never been easier
|
38
|
-
|
39
|
-
Get in contact with the developer on Twitter: [@FastlaneTools](https://twitter.com/FastlaneTools)
|
40
|
-
|
41
|
-
-------
|
9
|
+
------
|
42
10
|
|
43
11
|
<p align="center">
|
44
|
-
|
45
|
-
<
|
46
|
-
|
47
|
-
<a href="#tips">Tips</a> •
|
48
|
-
<a href="#need-help">Need help?</a>
|
12
|
+
<a href="https://docs.fastlane.tools/actions/gym">
|
13
|
+
<img src="https://raw.githubusercontent.com/fastlane/fastlane/master/gym/assets/gym.png" height="110">
|
14
|
+
</a>
|
49
15
|
</p>
|
50
16
|
|
51
|
-
|
52
|
-
|
53
|
-
<h5 align="center"><code>gym</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
|
54
|
-
|
55
|
-
# What's gym?
|
56
|
-
|
57
|
-
`gym` builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed `ipa` or `app` file :muscle:
|
58
|
-
|
59
|
-
`gym` is a replacement for [shenzhen](https://github.com/nomad/shenzhen).
|
60
|
-
|
61
|
-
### Before `gym`
|
62
|
-
|
63
|
-
```
|
64
|
-
xcodebuild clean archive -archivePath build/MyApp \
|
65
|
-
-scheme MyApp
|
66
|
-
xcodebuild -exportArchive \
|
67
|
-
-exportFormat ipa \
|
68
|
-
-archivePath "build/MyApp.xcarchive" \
|
69
|
-
-exportPath "build/MyApp.ipa" \
|
70
|
-
-exportProvisioningProfile "ProvisioningProfileName"
|
71
|
-
```
|
72
|
-
|
73
|
-
### With `gym`
|
74
|
-
|
75
|
-
```
|
76
|
-
fastlane gym
|
77
|
-
```
|
78
|
-
|
79
|
-
### Why `gym`?
|
80
|
-
|
81
|
-
`gym` uses the latest APIs to build and sign your application which results in much faster build times.
|
82
|
-
|
83
|
-
| | Gym Features |
|
84
|
-
|----------|----------------|
|
85
|
-
:rocket: | `gym` builds 30% faster than other build tools like [shenzhen](https://github.com/nomad/shenzhen)
|
86
|
-
:checkered_flag: | Beautiful inline build output
|
87
|
-
:book: | Helps you resolve common build errors like code signing issues
|
88
|
-
:mountain_cableway: | Sensible defaults: Automatically detect the project, its schemes and more
|
89
|
-
:link: | Works perfectly with [fastlane](https://fastlane.tools) and other tools
|
90
|
-
:package: | Automatically generates an `ipa` and a compressed `dSYM` file
|
91
|
-
:bullettrain_side: | Don't remember any complicated build commands, just `gym`
|
92
|
-
:wrench: | Easy and dynamic configuration using parameters and environment variables
|
93
|
-
:floppy_disk: | Store common build settings in a `Gymfile`
|
94
|
-
:outbox_tray: | All archives are stored and accessible in the Xcode Organizer
|
95
|
-
:computer: | Supports both iOS and Mac applications
|
96
|
-
|
97
|
-
![assets/gymScreenshot.png](assets/gymScreenshot.png)
|
98
|
-
|
99
|
-
-----
|
100
|
-
|
101
|
-
![assets/gym.gif](assets/gym.gif)
|
102
|
-
|
103
|
-
# Installation
|
104
|
-
|
105
|
-
sudo gem install fastlane
|
106
|
-
|
107
|
-
Make sure, you have the latest version of the Xcode command line tools installed:
|
108
|
-
|
109
|
-
xcode-select --install
|
110
|
-
|
111
|
-
# Usage
|
112
|
-
|
113
|
-
fastlane gym
|
114
|
-
|
115
|
-
That's all you need to build your application. If you want more control, here are some available parameters:
|
116
|
-
|
117
|
-
fastlane gym --workspace "Example.xcworkspace" --scheme "AppName" --clean
|
118
|
-
|
119
|
-
If you need to use a different xcode install, use xcode-select or define DEVELOPER_DIR:
|
120
|
-
|
121
|
-
DEVELOPER_DIR="/Applications/Xcode6.2.app" gym
|
122
|
-
|
123
|
-
For a list of all available parameters use
|
124
|
-
|
125
|
-
fastlane gym --help
|
126
|
-
|
127
|
-
If you run into any issues, use the `verbose` mode to get more information
|
128
|
-
|
129
|
-
fastlane gym --verbose
|
130
|
-
|
131
|
-
Set the right export method if you're not uploading to App Store or TestFlight:
|
132
|
-
|
133
|
-
fastlane gym --export_method ad-hoc
|
134
|
-
|
135
|
-
To pass boolean parameters make sure to use `gym` like this:
|
136
|
-
|
137
|
-
fastlane gym --include_bitcode true --include_symbols false
|
138
|
-
|
139
|
-
To access the raw `xcodebuild` output open `~/Library/Logs/gym`
|
140
|
-
|
141
|
-
# Gymfile
|
142
|
-
|
143
|
-
Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called `Gymfile`.
|
144
|
-
|
145
|
-
Run `fastlane gym init` to create a new configuration file. Example:
|
146
|
-
|
147
|
-
```ruby
|
148
|
-
scheme "Example"
|
149
|
-
|
150
|
-
sdk "iphoneos9.0"
|
151
|
-
|
152
|
-
clean true
|
153
|
-
|
154
|
-
output_directory "./build" # store the ipa in this folder
|
155
|
-
output_name "MyApp" # the name of the ipa file
|
156
|
-
```
|
157
|
-
|
158
|
-
## Export options
|
159
|
-
|
160
|
-
Since Xcode 7, `gym` is using new Xcode API which allows us to specify export options using `plist` file. By default `gym` creates this file for you and you are able to modify some parameters by using `export_method`, `export_team_id`, `include_symbols` or `include_bitcode`. If you want to have more options, like creating manifest file for app thinning, you can provide your own `plist` file:
|
161
|
-
|
162
|
-
```ruby
|
163
|
-
export_options "./ExportOptions.plist"
|
164
|
-
```
|
165
|
-
|
166
|
-
or you can provide hash of values directly in the `Gymfile`:
|
167
|
-
|
168
|
-
```ruby
|
169
|
-
export_options(
|
170
|
-
method: "ad-hoc",
|
171
|
-
manifest: {
|
172
|
-
appURL: "https://example.com/My App.ipa",
|
173
|
-
},
|
174
|
-
thinning: "<thin-for-all-variants>"
|
175
|
-
)
|
176
|
-
```
|
177
|
-
|
178
|
-
Optional: If _gym_ can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles:
|
179
|
-
|
180
|
-
```ruby
|
181
|
-
export_options(
|
182
|
-
method: "app-store",
|
183
|
-
provisioningProfiles: {
|
184
|
-
"com.example.bundleid" => "Provisioning Profile Name",
|
185
|
-
"com.example.bundleid2" => "Provisioning Profile Name 2"
|
186
|
-
}
|
187
|
-
)
|
188
|
-
```
|
189
|
-
|
190
|
-
**Note**: If you use [fastlane](https://fastlane.tools) with [match](https://fastlane.tools/match) you don't need to provide those values manually.
|
191
|
-
|
192
|
-
For the list of available options run `xcodebuild -help`.
|
193
|
-
|
194
|
-
## Setup code signing
|
195
|
-
|
196
|
-
- [More information on how to get started with codesigning](https://docs.fastlane.tools/codesigning/getting-started/)
|
197
|
-
- [Docs on how to set up your Xcode project](https://docs.fastlane.tools/codesigning/xcode-project/)
|
198
|
-
|
199
|
-
## Automating the whole process
|
200
|
-
|
201
|
-
`gym` works great together with [fastlane](https://fastlane.tools), which connects all deployment tools into one streamlined workflow.
|
202
|
-
|
203
|
-
Using `fastlane` you can define a configuration like
|
204
|
-
|
205
|
-
```ruby
|
206
|
-
lane :beta do
|
207
|
-
scan
|
208
|
-
gym(scheme: "MyApp")
|
209
|
-
crashlytics
|
210
|
-
end
|
211
|
-
|
212
|
-
# error block is executed when a error occurs
|
213
|
-
error do |lane, exception|
|
214
|
-
slack(
|
215
|
-
# message with short human friendly message
|
216
|
-
message: exception.to_s,
|
217
|
-
success: false,
|
218
|
-
# Output containing extended log output
|
219
|
-
payload: { "Output" => exception.error_info.to_s }
|
220
|
-
)
|
221
|
-
end
|
222
|
-
```
|
223
|
-
|
224
|
-
When gym raises an error the `error_info` property will contain the process output
|
225
|
-
in case you want to display the error in 3rd party tools such as Slack.
|
226
|
-
|
227
|
-
You can then easily switch between the beta provider (e.g. `testflight`, `hockey`, `s3` and more).
|
228
|
-
|
229
|
-
For more information visit the [fastlane GitHub page](https://github.com/fastlane/fastlane/tree/master/fastlane).
|
230
|
-
|
231
|
-
# How does it work?
|
232
|
-
|
233
|
-
`gym` uses the latest APIs to build and sign your application. The 2 main components are
|
234
|
-
|
235
|
-
- `xcodebuild`
|
236
|
-
- [xcpretty](https://github.com/supermarin/xcpretty)
|
237
|
-
|
238
|
-
When you run `gym` without the `--silent` mode it will print out every command it executes.
|
239
|
-
|
240
|
-
To build the archive `gym` uses the following command:
|
241
|
-
|
242
|
-
```
|
243
|
-
set -o pipefail && \
|
244
|
-
xcodebuild -scheme 'Example' \
|
245
|
-
-project './Example.xcodeproj' \
|
246
|
-
-configuration 'Release' \
|
247
|
-
-destination 'generic/platform=iOS' \
|
248
|
-
-archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \
|
249
|
-
archive | xcpretty
|
250
|
-
```
|
251
|
-
|
252
|
-
After building the archive it is being checked by `gym`. If it's valid, it gets packaged up and signed into an `ipa` file.
|
253
|
-
|
254
|
-
`gym` automatically chooses a different packaging method depending on the version of Xcode you're using.
|
255
|
-
|
256
|
-
### Xcode 7 and above
|
257
|
-
|
258
|
-
```
|
259
|
-
/usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \
|
260
|
-
-exportOptionsPlist '/tmp/gym_config_1442852529.plist' \
|
261
|
-
-archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \
|
262
|
-
-exportPath '/tmp/1442852529'
|
263
|
-
```
|
264
|
-
|
265
|
-
`gym` makes use of the new Xcode 7 API which allows us to specify the export options using a `plist` file. You can find more information about the available options by running `xcodebuild --help`.
|
266
|
-
|
267
|
-
Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary.
|
268
|
-
|
269
|
-
Note: the [xcbuild-safe.sh script](https://github.com/fastlane/fastlane/tree/master/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh) wraps around xcodebuild to workaround some incompatibilities.
|
270
|
-
|
271
|
-
|
272
|
-
# Tips
|
273
|
-
## [`fastlane`](https://fastlane.tools) Toolchain
|
274
|
-
|
275
|
-
- [`fastlane`](https://fastlane.tools): The easiest way to automate beta deployments and releases for your iOS and Android apps
|
276
|
-
- [`deliver`](https://github.com/fastlane/fastlane/tree/master/deliver): Upload screenshots, metadata and your app to the App Store
|
277
|
-
- [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot): Automate taking localized screenshots of your iOS app on every device
|
278
|
-
- [`frameit`](https://github.com/fastlane/fastlane/tree/master/frameit): Quickly put your screenshots into the right device frames
|
279
|
-
- [`pem`](https://github.com/fastlane/fastlane/tree/master/pem): Automatically generate and renew your push notification profiles
|
280
|
-
- [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
|
281
|
-
- [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
|
282
|
-
- [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
|
283
|
-
- [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot): The best way to manage your TestFlight testers and builds from your terminal
|
284
|
-
- [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
|
285
|
-
- [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
|
286
|
-
- [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
|
287
|
-
- [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
|
288
|
-
|
289
|
-
##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
|
290
|
-
|
291
|
-
## Use the 'Provisioning Quicklook plugin'
|
292
|
-
Download and install the [Provisioning Plugin](https://github.com/chockenberry/Provisioning).
|
293
|
-
|
294
|
-
# Need help?
|
295
|
-
|
296
|
-
Before submitting a new GitHub issue, please make sure to
|
297
|
-
|
298
|
-
- Check out [docs.fastlane.tools](https://docs.fastlane.tools)
|
299
|
-
- Check out the README pages on [this repo](https://github.com/fastlane/fastlane)
|
300
|
-
- Search for [existing GitHub issues](https://github.com/fastlane/fastlane/issues)
|
301
|
-
|
302
|
-
If the above doesn't help, please [submit an issue](https://github.com/fastlane/fastlane/issues) on GitHub and provide information about your setup, in particular the output of the `fastlane env` command.
|
303
|
-
|
304
|
-
# Code of Conduct
|
305
|
-
Help us keep `gym` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
|
306
|
-
|
307
|
-
# License
|
308
|
-
This project is licensed under the terms of the MIT license. See the LICENSE file.
|
309
|
-
|
310
|
-
> This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
|
17
|
+
<h3 align="center">The <i>gym</i> docs were moved to <a href='https://docs.fastlane.tools/actions/gym'>docs.fastlane.tools</a></h3>
|