sigh 0.1.5 → 0.2.0
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/LICENSE +1 -1
- data/README.md +27 -19
- data/bin/sigh +14 -11
- data/lib/sigh/developer_center.rb +14 -10
- data/lib/sigh/update_checker.rb +1 -1
- data/lib/sigh/version.rb +1 -1
- metadata +9 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3c9e9bd59797f783963393887bc4b657263cbff
|
4
|
+
data.tar.gz: 7181fd01ed4195cab98e96b587d72e32f3485e75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95edbbbedc59167c0b3c4ce99a0d2ababbf954b70f91b7743e89a060c61a7e204c69bbdfd2944e36331cb0090026dd9f2f031cdeba8cdcc7d17e288333cdb131
|
7
|
+
data.tar.gz: c7a347854360557aafcf6c8ae32ac93b788df3f48833bb871c7d017e72aee91dfed50bef002f0479b6cc6bfbb8c20d57bf26f87dcda08ca18e5b70ddcd428356
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,31 +1,37 @@
|
|
1
|
+
<h3 align="center">
|
2
|
+
<a href="https://github.com/KrauseFx/fastlane">
|
3
|
+
<img src="assets/fastlane.png" width="150" />
|
4
|
+
<br />
|
5
|
+
fastlane
|
6
|
+
</a>
|
7
|
+
</h3>
|
1
8
|
<p align="center">
|
2
|
-
<a href="https://github.com/KrauseFx/deliver">
|
3
|
-
<a href="https://github.com/KrauseFx/snapshot">
|
4
|
-
<a href="https://github.com/KrauseFx/frameit">
|
5
|
-
<a href="https://github.com/KrauseFx/PEM">PEM</a> •
|
6
|
-
<b>
|
9
|
+
<a href="https://github.com/KrauseFx/deliver">deliver</a> •
|
10
|
+
<a href="https://github.com/KrauseFx/snapshot">snapshot</a> •
|
11
|
+
<a href="https://github.com/KrauseFx/frameit">frameit</a> •
|
12
|
+
<a href="https://github.com/KrauseFx/PEM">PEM</a> •
|
13
|
+
<b>sigh</b>
|
7
14
|
</p>
|
8
|
-
|
9
15
|
-------
|
10
16
|
|
11
17
|
<p align="center">
|
12
18
|
<img src="assets/sigh.png">
|
13
19
|
</p>
|
14
20
|
|
15
|
-
|
21
|
+
sigh
|
16
22
|
============
|
17
|
-
#### Because you would rather spend your time building stuff than fighting provisioning
|
18
23
|
|
19
24
|
[](https://twitter.com/KrauseFx)
|
20
25
|
[](https://github.com/KrauseFx/sigh/blob/master/LICENSE)
|
21
26
|
[](http://rubygems.org/gems/sigh)
|
22
27
|
|
28
|
+
###### Because you would rather spend your time building stuff than fighting provisioning
|
23
29
|
|
24
30
|
Tired of manually creating, renewing and downloading your iOS provisioning profiles?
|
25
31
|
|
26
32
|
```sigh``` handles all that for you. Just run ```sigh``` and it will do the rest.
|
27
33
|
|
28
|
-
|
34
|
+
Get in contact with the developer on Twitter: [@KrauseFx](https://twitter.com/KrauseFx)
|
29
35
|
|
30
36
|
|
31
37
|
|
@@ -41,6 +47,9 @@ Follow the developer on Twitter: [@KrauseFx](https://twitter.com/KrauseFx)
|
|
41
47
|
|
42
48
|
-------
|
43
49
|
|
50
|
+
<h5 align="center"><code>sigh</code> is part of <a href="http://fastlane.tools">fastlane</a>: connect all deployment tools into one streamlined workflow.</h5>
|
51
|
+
|
52
|
+
|
44
53
|
# Features
|
45
54
|
|
46
55
|
- **Download** the latest provisioning profile for your app
|
@@ -50,7 +59,7 @@ Follow the developer on Twitter: [@KrauseFx](https://twitter.com/KrauseFx)
|
|
50
59
|
- Supports **App Store**, **Ad Hoc** and **Development** profiles
|
51
60
|
- Support for **multiple Apple accounts**, storing your credentials securely in the Keychain
|
52
61
|
- Support for **multiple Teams**
|
53
|
-
- Support for Enterprise Profiles
|
62
|
+
- Support for **Enterprise Profiles**
|
54
63
|
|
55
64
|
To automate iOS Push profiles you can use [PEM](https://github.com/KrauseFx/PEM).
|
56
65
|
|
@@ -87,7 +96,7 @@ Yes, that's the whole command!
|
|
87
96
|
|
88
97
|
You can pass your bundle identifier and username like this:
|
89
98
|
|
90
|
-
sigh -a
|
99
|
+
sigh -a com.krausefx.app -u username
|
91
100
|
|
92
101
|
If you want to generate an **Ad Hoc** profile instead of an App Store profile:
|
93
102
|
|
@@ -111,7 +120,7 @@ In case you prefer environment variables:
|
|
111
120
|
|
112
121
|
- ```SIGH_USERNAME```
|
113
122
|
- ```SIGH_APP_IDENTIFIER```
|
114
|
-
- ```SIGH_TEAM_ID``` (The
|
123
|
+
- ```SIGH_TEAM_ID``` (The Team ID, e.g. `Q2CBPK58CA`)
|
115
124
|
|
116
125
|
# How does it work?
|
117
126
|
|
@@ -122,14 +131,13 @@ In case you prefer environment variables:
|
|
122
131
|
```sigh``` uses the password manager from [```Deliver```](https://github.com/KrauseFx/deliver#can-i-trust-deliver). Take a look the [Deliver README](https://github.com/KrauseFx/deliver#can-i-trust-deliver) for more information.
|
123
132
|
|
124
133
|
# Tips
|
125
|
-
##
|
126
|
-
Check out other tools in this collection to speed up your deployment process:
|
127
|
-
|
128
|
-
- [```deliver```](https://github.com/KrauseFx/deliver): Deploy screenshots, app metadata and app updates to the App Store using just one command
|
129
|
-
- [```snapshot```](https://github.com/KrauseFx/snapshot): Create hundreds of screenshots of your iPhone app... while doing something else
|
130
|
-
- [```FrameIt```](https://github.com/KrauseFx/frameit): Want a device frame around your screenshot? Do it in an instant!
|
131
|
-
- [```PEM```](https://github.com/KrauseFx/pem): Tired of manually creating and maintaining your push certification profiles?
|
134
|
+
## [`fastlane`](http://fastlane.tools) Toolchain
|
132
135
|
|
136
|
+
- [`fastlane`](http://fastlane.tools): Connect all deployment tools into one streamlined workflow
|
137
|
+
- [`deliver`](https://github.com/KrauseFx/deliver): Upload screenshots, metadata and your app to the App Store using a single command
|
138
|
+
- [`snapshot`](https://github.com/KrauseFx/snapshot): Automate taking localized screenshots of your iOS app on every device
|
139
|
+
- [`frameit`](https://github.com/KrauseFx/frameit): Quickly put your screenshots into the right device frames
|
140
|
+
- [`PEM`](https://github.com/KrauseFx/pem): Automatically generate and renew your push notification profiles
|
133
141
|
|
134
142
|
## Use the 'Provisioning Quicklook plugin'
|
135
143
|
Download and install the [Provisioning Plugin](https://github.com/chockenberry/Provisioning).
|
data/bin/sigh
CHANGED
@@ -4,16 +4,17 @@ $:.push File.expand_path("../../lib", __FILE__)
|
|
4
4
|
|
5
5
|
require 'sigh'
|
6
6
|
require 'commander/import'
|
7
|
-
require '
|
7
|
+
require 'credentials_manager/password_manager'
|
8
|
+
require 'credentials_manager/appfile_config'
|
8
9
|
|
9
10
|
HighLine.track_eof = false
|
10
11
|
|
11
12
|
|
12
13
|
# Commander
|
13
14
|
program :version, Sigh::VERSION
|
14
|
-
program :description, 'CLI for \'sigh\' -
|
15
|
-
program :help, 'Author', 'Felix Krause <krausefx
|
16
|
-
program :help, 'Website', 'http://
|
15
|
+
program :description, 'CLI for \'sigh\' - Because you would rather spend your time building stuff than fighting provisioning'
|
16
|
+
program :help, 'Author', 'Felix Krause <sigh@krausefx.com>'
|
17
|
+
program :help, 'Website', 'http://fastlane.tools'
|
17
18
|
program :help, 'GitHub', 'https://github.com/krausefx/sigh'
|
18
19
|
program :help_formatter, :compact
|
19
20
|
|
@@ -56,15 +57,17 @@ end
|
|
56
57
|
default_command :renew
|
57
58
|
|
58
59
|
def username(options)
|
59
|
-
user =
|
60
|
-
user
|
61
|
-
user
|
60
|
+
user = options.username
|
61
|
+
user ||= ENV["SIGH_USERNAME"]
|
62
|
+
user ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
|
62
63
|
|
63
|
-
|
64
|
+
CredentialsManager::PasswordManager.shared_manager(user) if user
|
64
65
|
end
|
65
66
|
|
66
67
|
def app_identifier(options)
|
67
|
-
|
68
|
-
|
69
|
-
|
68
|
+
value = options.identifier
|
69
|
+
value ||= ENV["SIGH_APP_IDENTIFIER"]
|
70
|
+
value ||= CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)
|
71
|
+
value ||= ask("App Identifier (Bundle ID, e.g. com.krausefx.app): ")
|
72
|
+
return value
|
70
73
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'credentials_manager/password_manager'
|
2
2
|
require 'open-uri'
|
3
3
|
require 'openssl'
|
4
4
|
|
@@ -55,7 +55,7 @@ module Sigh
|
|
55
55
|
|
56
56
|
# Loggs in a user with the given login data on the Dev Center Frontend.
|
57
57
|
# You don't need to pass a username and password. It will
|
58
|
-
# Automatically be fetched using the {
|
58
|
+
# Automatically be fetched using the {CredentialsManager::PasswordManager}.
|
59
59
|
# This method will also automatically be called when triggering other
|
60
60
|
# actions like {#open_app_page}
|
61
61
|
# @param user (String) (optional) The username/email address
|
@@ -68,8 +68,8 @@ module Sigh
|
|
68
68
|
begin
|
69
69
|
Helper.log.info "Login into iOS Developer Center"
|
70
70
|
|
71
|
-
user ||=
|
72
|
-
password ||=
|
71
|
+
user ||= CredentialsManager::PasswordManager.shared_manager.username
|
72
|
+
password ||= CredentialsManager::PasswordManager.shared_manager.password
|
73
73
|
|
74
74
|
result = visit PROFILES_URL
|
75
75
|
raise "Could not open Developer Center" unless result['status'] == 'success'
|
@@ -118,7 +118,7 @@ module Sigh
|
|
118
118
|
result = visit PROFILES_URL
|
119
119
|
raise "Could not open Developer Center" unless result['status'] == 'success'
|
120
120
|
end
|
121
|
-
rescue
|
121
|
+
rescue => ex
|
122
122
|
Helper.log.debug ex
|
123
123
|
raise DeveloperCenterLoginError.new("Error loggin in user #{user}. User is on multiple teams and we were unable to correctly retrieve them.")
|
124
124
|
end
|
@@ -126,16 +126,20 @@ module Sigh
|
|
126
126
|
begin
|
127
127
|
wait_for_elements('.ios.profiles.gridList')
|
128
128
|
visit PROFILES_URL # again, since after the login, the dev center loses the production GET value
|
129
|
-
rescue
|
129
|
+
rescue => ex
|
130
130
|
Helper.log.debug ex
|
131
|
-
|
131
|
+
if page.has_content?"Getting Started"
|
132
|
+
raise "There was no valid signing certificate found. Please log in and follow the 'Getting Started guide' on '#{current_url}'".red
|
133
|
+
else
|
134
|
+
raise DeveloperCenterLoginError.new("Error logging in user #{user} with the given password. Make sure you entered them correctly.")
|
135
|
+
end
|
132
136
|
end
|
133
137
|
|
134
138
|
|
135
139
|
Helper.log.info "Login successful"
|
136
140
|
|
137
141
|
true
|
138
|
-
rescue
|
142
|
+
rescue => ex
|
139
143
|
error_occured(ex)
|
140
144
|
end
|
141
145
|
end
|
@@ -210,7 +214,7 @@ module Sigh
|
|
210
214
|
# After creating the profile, we need to download it
|
211
215
|
return maintain_app_certificate(app_identifier, type) # recursive
|
212
216
|
|
213
|
-
rescue
|
217
|
+
rescue => ex
|
214
218
|
error_occured(ex)
|
215
219
|
end
|
216
220
|
end
|
@@ -227,7 +231,7 @@ module Sigh
|
|
227
231
|
|
228
232
|
begin
|
229
233
|
wait_for_elements('#type-production')
|
230
|
-
rescue
|
234
|
+
rescue => ex
|
231
235
|
wait_for_elements('#type-inhouse') # enterprise accounts
|
232
236
|
enterprise = true
|
233
237
|
end
|
data/lib/sigh/update_checker.rb
CHANGED
data/lib/sigh/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sigh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: security
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 0.1.3
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ~>
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 0.1.3
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: highline
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,7 +67,7 @@ dependencies:
|
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: 4.2.0
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
70
|
+
name: credentials_manager
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - '>='
|
@@ -220,7 +206,8 @@ dependencies:
|
|
220
206
|
- - '>='
|
221
207
|
- !ruby/object:Gem::Version
|
222
208
|
version: '0'
|
223
|
-
description:
|
209
|
+
description: Because you would rather spend your time building stuff than fighting
|
210
|
+
provisioning
|
224
211
|
email:
|
225
212
|
- sigh@krausefx.com
|
226
213
|
executables:
|
@@ -237,12 +224,12 @@ files:
|
|
237
224
|
- lib/sigh/helper.rb
|
238
225
|
- lib/sigh/update_checker.rb
|
239
226
|
- lib/sigh/version.rb
|
240
|
-
homepage: http://
|
227
|
+
homepage: http://fastlane.tools
|
241
228
|
licenses:
|
242
229
|
- MIT
|
243
230
|
metadata: {}
|
244
|
-
post_install_message:
|
245
|
-
|
231
|
+
post_install_message: sigh requires phantomjs. Install it using 'brew update && brew
|
232
|
+
install phantomjs'
|
246
233
|
rdoc_options: []
|
247
234
|
require_paths:
|
248
235
|
- lib
|
@@ -261,6 +248,6 @@ rubyforge_project:
|
|
261
248
|
rubygems_version: 2.2.2
|
262
249
|
signing_key:
|
263
250
|
specification_version: 4
|
264
|
-
summary:
|
251
|
+
summary: Because you would rather spend your time building stuff than fighting provisioning
|
265
252
|
test_files: []
|
266
253
|
has_rdoc:
|