produce 0.6.5 → 1.0.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/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
|