produce 0.6.5 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -24
- data/bin/produce +2 -1
- data/lib/produce/developer_center.rb +1 -1
- data/lib/produce/group.rb +5 -5
- data/lib/produce/itunes_connect.rb +1 -1
- data/lib/produce/service.rb +4 -0
- data/lib/produce/version.rb +1 -1
- data/lib/produce.rb +1 -3
- metadata +36 -9
- data/lib/produce/dependency_checker.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d9f8a09d876d2fb75d994382d402f422244f3e9
|
4
|
+
data.tar.gz: d8d8c71fdd8e1137671a90fb15c7827508e0da9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 889cec48380d6fe8df7536d3514d089e6b047eb9a498ec5c05dd31a7258f3eb5f51f4bb1594a021a23f547114ca26ffb52eccb7f40ba7a251baee663dc4822f7
|
7
|
+
data.tar.gz: c1934c32075328661ef88275ab46dcb4b59ba2b76f16a69d414e97600c97ba8dcbd4ff164a58fb33e988c4b88692872efac0838523a8115d0c14690c3979c939
|
data/README.md
CHANGED
@@ -34,12 +34,8 @@ produce
|
|
34
34
|
|
35
35
|
###### Create new iOS apps on iTunes Connect and Dev Portal using your command line
|
36
36
|
|
37
|
-
##### This tool was sponsored by [AppInstitute](http://appinstitute.co.uk/).
|
38
|
-
|
39
37
|
Get in contact with the developer on Twitter: [@KrauseFx](https://twitter.com/KrauseFx)
|
40
38
|
|
41
|
-
|
42
|
-
|
43
39
|
-------
|
44
40
|
<p align="center">
|
45
41
|
<a href="#features">Features</a> •
|
@@ -79,20 +75,29 @@ To get a list of all available parameters:
|
|
79
75
|
produce --help
|
80
76
|
|
81
77
|
```
|
78
|
+
Commands:
|
79
|
+
associate_group Associate with a group, which is create if needed or simply located otherwise
|
80
|
+
create Creates a new app on iTunes Connect and the Apple Developer Portal
|
81
|
+
disable_services Disable specific Application Services for a specific app on the Apple Developer Portal
|
82
|
+
enable_services Enable specific Application Services for a specific app on the Apple Developer Portal
|
83
|
+
group Ensure that a specific App Group exists
|
84
|
+
help Display global or [command] help documentation
|
85
|
+
|
86
|
+
Global Options:
|
82
87
|
-u, --username STRING Your Apple ID Username (PRODUCE_USERNAME)
|
83
88
|
-a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER)
|
84
|
-
-
|
85
|
-
(PRODUCE_APP_IDENTIFIER_SUFFIX)
|
89
|
+
-e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX)
|
86
90
|
-q, --app_name STRING App Name (PRODUCE_APP_NAME)
|
87
91
|
-z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION)
|
88
|
-
-
|
92
|
+
-y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU)
|
89
93
|
-m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE)
|
90
|
-
-c, --company_name STRING The name of your comapny. Only required if it's the first app you create
|
91
|
-
(PRODUCE_COMPANY_NAME)
|
94
|
+
-c, --company_name STRING The name of your comapny. Only required if it's the first app you create (PRODUCE_COMPANY_NAME)
|
92
95
|
-i, --skip_itc Skip the creation of the app on iTunes Connect (PRODUCE_SKIP_ITC)
|
93
96
|
-d, --skip_devcenter Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER)
|
94
|
-
-
|
97
|
+
-b, --team_id STRING The ID of your team if you're in multiple teams (PRODUCE_TEAM_ID)
|
95
98
|
-l, --team_name STRING The name of your team if you're in multiple teams (PRODUCE_TEAM_NAME)
|
99
|
+
-h, --help Display help documentation
|
100
|
+
-v, --version Display version information
|
96
101
|
```
|
97
102
|
|
98
103
|
## Enabling / Disabling Application Services
|
@@ -150,21 +155,8 @@ Get a list of all available options using
|
|
150
155
|
```
|
151
156
|
|
152
157
|
## Environment Variables
|
153
|
-
In case you want to pass more information to `produce` using environment variables:
|
154
|
-
|
155
|
-
- `PRODUCE_USERNAME` (your iTunes Connect username)
|
156
|
-
- `PRODUCE_APP_IDENTIFIER` (the bundle identifier of the new app)
|
157
|
-
- `PRODUCE_APP_NAME` (the name of the new app)
|
158
|
-
- `PRODUCE_GROUP_IDENTIFIER` (the group identifier of the new app group)
|
159
|
-
- `PRODUCE_GROUP_NAME` (the name of the new app group)
|
160
|
-
- `PRODUCE_LANGUAGE` (the language you want your app to use, e.g. `English`, `German`)
|
161
|
-
- `PRODUCE_VERSION` (the initial app version)
|
162
|
-
- `PRODUCE_SKU` (the SKU you want to use, which must be a unique number)
|
163
|
-
- `PRODUCE_SKIP_ITC` (should iTunes Connect app be created)
|
164
|
-
- `PRODUCE_SKIP_DEVCENTER` (should Apple Developer Portal app be created)
|
165
|
-
- `PRODUCE_TEAM_ID` (the Team ID, e.g. `Q2CBPK58CA`)
|
166
|
-
- `PRODUCE_TEAM_NAME` (the Team Name, e.g. `Felix Krause`)
|
167
158
|
|
159
|
+
All available values can also be passed using environment variables, run `produce --help` to get a list of all available parameters.
|
168
160
|
|
169
161
|
## [`fastlane`](https://github.com/KrauseFx/fastlane) Integration
|
170
162
|
|
data/bin/produce
CHANGED
@@ -5,13 +5,14 @@ $:.push File.expand_path("../../lib", __FILE__)
|
|
5
5
|
require 'produce'
|
6
6
|
require 'commander'
|
7
7
|
require 'credentials_manager/appfile_config'
|
8
|
-
require 'produce/options'
|
9
8
|
|
10
9
|
HighLine.track_eof = false
|
11
10
|
|
12
11
|
class ProduceApplication
|
13
12
|
include Commander::Methods
|
14
13
|
|
14
|
+
# rubocop:disable Metrics/MethodLength
|
15
|
+
# rubocop:disable Metrics/AbcSize
|
15
16
|
def run
|
16
17
|
program :version, Produce::VERSION
|
17
18
|
program :description, 'CLI for \'produce\''
|
@@ -12,7 +12,7 @@ module Produce
|
|
12
12
|
ENV["CREATED_NEW_APP_ID"] = Time.now.to_i.to_s
|
13
13
|
|
14
14
|
if app_exists?
|
15
|
-
Helper.log.info "[DevCenter] App '#{Produce.config[:
|
15
|
+
Helper.log.info "[DevCenter] App '#{Produce.config[:app_identifier]}' already exists, nothing to do on the Dev Center".green
|
16
16
|
ENV["CREATED_NEW_APP_ID"] = nil
|
17
17
|
# Nothing to do here
|
18
18
|
else
|
data/lib/produce/group.rb
CHANGED
@@ -15,11 +15,11 @@ module Produce
|
|
15
15
|
ENV["CREATED_NEW_GROUP_ID"] = nil
|
16
16
|
# Nothing to do here
|
17
17
|
else
|
18
|
-
|
18
|
+
if options.group_name
|
19
|
+
group_name = valid_name_for(options.group_name)
|
20
|
+
else
|
19
21
|
group_name = group_identifier.split(".").map(&:capitalize).reverse.join(' ')
|
20
22
|
group_name = valid_name_for(group_name)
|
21
|
-
else
|
22
|
-
group_name = valid_name_for(options.group_name)
|
23
23
|
end
|
24
24
|
|
25
25
|
Helper.log.info "Creating new app group '#{group_name}' with identifier '#{group_identifier}' on the Apple Dev Center".green
|
@@ -52,8 +52,8 @@ module Produce
|
|
52
52
|
|
53
53
|
Helper.log.info "Validating groups before association"
|
54
54
|
|
55
|
-
|
56
|
-
if !app_group_exists?
|
55
|
+
args.each do |group_identifier|
|
56
|
+
if !app_group_exists?(group_identifier)
|
57
57
|
Helper.log.info "[DevCenter] App group '#{group_identifier}' does not exist, please create it first, skipping for now".red
|
58
58
|
else
|
59
59
|
new_groups.push(Spaceship.app_group.find(group_identifier))
|
@@ -14,7 +14,7 @@ module Produce
|
|
14
14
|
def create_new_app
|
15
15
|
application = fetch_application
|
16
16
|
if application
|
17
|
-
Helper.log.info "[iTC] App '#{Produce.config[:
|
17
|
+
Helper.log.info "[iTC] App '#{Produce.config[:app_identifier]}' already exists (#{application.apple_id}), nothing to do on iTunes Connect".green
|
18
18
|
# Nothing to do here
|
19
19
|
else
|
20
20
|
Helper.log.info "Creating new app '#{Produce.config[:app_name]}' on iTunes Connect".green
|
data/lib/produce/service.rb
CHANGED
@@ -38,6 +38,10 @@ module Produce
|
|
38
38
|
options.__hash__.select { |key, value| allowed_keys.include? key }
|
39
39
|
end
|
40
40
|
|
41
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
42
|
+
# rubocop:disable Metrics/MethodLength
|
43
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
44
|
+
# rubocop:disable Metrics/AbcSize
|
41
45
|
def update(on, app, options)
|
42
46
|
updated = valid_services_for(options).count
|
43
47
|
|
data/lib/produce/version.rb
CHANGED
data/lib/produce.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'produce/version'
|
3
3
|
require 'produce/manager'
|
4
|
-
require 'produce/
|
4
|
+
require 'produce/options'
|
5
5
|
require 'produce/developer_center'
|
6
6
|
require 'produce/itunes_connect'
|
7
7
|
require 'produce/available_default_languages'
|
@@ -17,6 +17,4 @@ module Produce
|
|
17
17
|
|
18
18
|
ENV['FASTLANE_TEAM_ID'] ||= ENV["PRODUCE_TEAM_ID"]
|
19
19
|
ENV['DELIVER_USER'] ||= ENV["PRODUCE_USERNAME"]
|
20
|
-
|
21
|
-
DependencyChecker.check_dependencies
|
22
20
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: produce
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.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: 2015-10-
|
11
|
+
date: 2015-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fastlane_core
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.22.3
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 1.0.0
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
29
|
+
version: 0.22.3
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.0.0
|
@@ -36,14 +36,14 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 0.
|
39
|
+
version: 0.12.0
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 0.
|
46
|
+
version: 0.12.0
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,7 +129,7 @@ dependencies:
|
|
129
129
|
- !ruby/object:Gem::Version
|
130
130
|
version: 1.19.0
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
|
-
name:
|
132
|
+
name: coveralls
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
135
|
- - ">="
|
@@ -142,6 +142,34 @@ dependencies:
|
|
142
142
|
- - ">="
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '0'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: fastlane
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: rubocop
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - "~>"
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0.34'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - "~>"
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0.34'
|
145
173
|
description: Create new iOS apps on iTunes Connect and Dev Portal using the command
|
146
174
|
line
|
147
175
|
email:
|
@@ -156,7 +184,6 @@ files:
|
|
156
184
|
- bin/produce
|
157
185
|
- lib/produce.rb
|
158
186
|
- lib/produce/available_default_languages.rb
|
159
|
-
- lib/produce/dependency_checker.rb
|
160
187
|
- lib/produce/developer_center.rb
|
161
188
|
- lib/produce/group.rb
|
162
189
|
- lib/produce/itunes_connect.rb
|
@@ -184,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
211
|
version: '0'
|
185
212
|
requirements: []
|
186
213
|
rubyforge_project:
|
187
|
-
rubygems_version: 2.4.
|
214
|
+
rubygems_version: 2.4.8
|
188
215
|
signing_key:
|
189
216
|
specification_version: 4
|
190
217
|
summary: Create new iOS apps on iTunes Connect and Dev Portal using the command line
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Produce
|
2
|
-
class DependencyChecker
|
3
|
-
def self.check_dependencies
|
4
|
-
self.check_xcode_select unless Helper.is_test?
|
5
|
-
end
|
6
|
-
|
7
|
-
def self.check_xcode_select
|
8
|
-
unless `xcode-select -v`.include? "xcode-select version "
|
9
|
-
Helper.log.fatal '#############################################################'
|
10
|
-
Helper.log.fatal "# You have to install the Xcode commdand line tools to use produce"
|
11
|
-
Helper.log.fatal "# Install the latest version of Xcode from the AppStore"
|
12
|
-
Helper.log.fatal "# Run xcode-select --install to install the developer tools"
|
13
|
-
Helper.log.fatal '#############################################################'
|
14
|
-
raise "Run 'xcode-select --install' and start produce again"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|