produce 0.2.1 → 0.3.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/bin/produce +1 -2
- data/lib/produce/config.rb +7 -5
- data/lib/produce/developer_center.rb +24 -38
- data/lib/produce/itunes_connect.rb +4 -1
- data/lib/produce/version.rb +1 -1
- metadata +19 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdd87fbc197ac08bfa19d4530ea62f6611a24d9f
|
4
|
+
data.tar.gz: 88863487d9583382d07d1152ff1c955241587b1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de9f3100f2ceeddb02a49bb039a99fbe7b20df43deffceb5ecabf977a4dd2a50fc376ff76d97fabd4ca3e8ec14985c0eb04c7974ea6bb22c5004a53fe766a573
|
7
|
+
data.tar.gz: 243616f71df1b02073ecdf9ae157a108310454ab313a2486e32fa3d8721a50647e1d590d4f773727c2a682edc86b9a85f69ccfe7024df0afe9d79b9142daadd9
|
data/bin/produce
CHANGED
@@ -4,7 +4,6 @@ $:.push File.expand_path("../../lib", __FILE__)
|
|
4
4
|
|
5
5
|
require 'produce'
|
6
6
|
require 'commander'
|
7
|
-
require 'credentials_manager/password_manager'
|
8
7
|
require 'credentials_manager/appfile_config'
|
9
8
|
|
10
9
|
HighLine.track_eof = false
|
@@ -18,7 +17,7 @@ class ProduceApplication
|
|
18
17
|
program :help, 'Author', 'Felix Krause <produce@krausefx.com>'
|
19
18
|
program :help, 'Website', 'https://fastlane.tools'
|
20
19
|
program :help, 'GitHub', 'https://github.com/krausefx/produce'
|
21
|
-
|
20
|
+
program :help_formatter, :compact
|
22
21
|
|
23
22
|
always_trace!
|
24
23
|
|
data/lib/produce/config.rb
CHANGED
@@ -6,7 +6,8 @@ module Produce
|
|
6
6
|
app_name: "App Name: ",
|
7
7
|
version: "Initial version number (e.g. '1.0'): ",
|
8
8
|
sku: "SKU Number (e.g. '1234'): ",
|
9
|
-
primary_language: "Primary Language (e.g. 'English', 'German'): "
|
9
|
+
primary_language: "Primary Language (e.g. 'English', 'German'): ",
|
10
|
+
company_name: "Company name (Leave blank to leave the current one): "
|
10
11
|
}
|
11
12
|
|
12
13
|
# Left to prevent fastlane from crashing. Should be removed upon version bump.
|
@@ -42,7 +43,7 @@ module Produce
|
|
42
43
|
q.validate = lambda { |val| is_valid_language?(val) }
|
43
44
|
q.responses[:not_valid] = "Please enter one of available languages: #{AvailableDefaultLanguages.all_languages}"
|
44
45
|
else
|
45
|
-
q.validate = lambda { |val| !val.empty? }
|
46
|
+
q.validate = lambda { |val| !val.empty? } unless key == :company_name
|
46
47
|
q.responses[:not_valid] = "#{key.to_s.gsub('_', ' ').capitalize} can't be blank"
|
47
48
|
end
|
48
49
|
end
|
@@ -67,11 +68,12 @@ module Produce
|
|
67
68
|
bundle_identifier_suffix: ENV['PRODUCE_APP_IDENTIFIER_SUFFIX'],
|
68
69
|
app_name: ENV['PRODUCE_APP_NAME'],
|
69
70
|
version: ENV['PRODUCE_VERSION'],
|
70
|
-
sku: ENV['PRODUCE_SKU'],
|
71
|
+
sku: ENV['PRODUCE_SKU'] || Time.now.to_i.to_s,
|
71
72
|
skip_itc: is_truthy?(ENV['PRODUCE_SKIP_ITC']),
|
72
73
|
skip_devcenter: is_truthy?(ENV['PRODUCE_SKIP_DEVCENTER']),
|
73
74
|
team_id: ENV['PRODUCE_TEAM_ID'],
|
74
|
-
team_name: ENV['PRODUCE_TEAM_NAME']
|
75
|
+
team_name: ENV['PRODUCE_TEAM_NAME'],
|
76
|
+
company_name: ENV['PRODUCE_COMPANY_NAME']
|
75
77
|
}
|
76
78
|
|
77
79
|
if ENV['PRODUCE_LANGUAGE']
|
@@ -113,4 +115,4 @@ module Produce
|
|
113
115
|
end
|
114
116
|
|
115
117
|
end
|
116
|
-
end
|
118
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require '
|
1
|
+
require 'spaceship'
|
2
|
+
require 'babosa'
|
2
3
|
|
3
4
|
module Produce
|
4
|
-
class DeveloperCenter
|
5
|
-
APPS_URL = "https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action"
|
6
|
-
CREATE_APP_URL = "https://developer.apple.com/account/ios/identifiers/bundle/bundleCreate.action"
|
5
|
+
class DeveloperCenter
|
7
6
|
|
8
7
|
def run(config)
|
9
8
|
@config = config
|
9
|
+
login
|
10
10
|
create_new_app
|
11
|
-
rescue => ex
|
12
|
-
error_occured(ex)
|
13
11
|
end
|
14
12
|
|
15
13
|
def create_new_app
|
14
|
+
ENV["CREATED_NEW_APP_ID"] = Time.now.to_i.to_s
|
15
|
+
|
16
16
|
if app_exists?
|
17
17
|
Helper.log.info "App '#{@config[:app_name]}' already exists, nothing to do on the Dev Center".green
|
18
18
|
ENV["CREATED_NEW_APP_ID"] = nil
|
@@ -20,29 +20,15 @@ module Produce
|
|
20
20
|
else
|
21
21
|
app_name = valid_name_for(@config[:app_name])
|
22
22
|
Helper.log.info "Creating new app '#{app_name}' on the Apple Dev Center".green
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
click_next
|
27
|
-
|
28
|
-
sleep 5 # sometimes this takes a while and we don't want to timeout
|
29
|
-
|
30
|
-
if all(".form-error").count > 0
|
31
|
-
error = all(".form-error").collect { |a| a.text }.join("\n")
|
32
|
-
raise error.red
|
33
|
-
end
|
34
|
-
|
35
|
-
wait_for_elements("form[name='bundleSubmit']") # this will show the summary of the given information
|
36
|
-
click_next
|
37
|
-
|
38
|
-
sleep 5 # sometimes this takes a while and we don't want to timeout
|
39
|
-
|
40
|
-
wait_for_elements(".ios.bundles.confirmForm.complete")
|
41
|
-
click_on "Done"
|
23
|
+
|
24
|
+
app = Spaceship.app.create!(bundle_id: @config[:bundle_identifier].to_s,
|
25
|
+
name: app_name)
|
42
26
|
|
43
|
-
|
27
|
+
Helper.log.info "Created app #{app}"
|
28
|
+
|
29
|
+
raise "Something went wrong when creating the new app - it's not listed in the apps list" unless app_exists?
|
44
30
|
|
45
|
-
ENV["CREATED_NEW_APP_ID"] = Time.now.to_s
|
31
|
+
ENV["CREATED_NEW_APP_ID"] = Time.now.to_i.to_s
|
46
32
|
|
47
33
|
Helper.log.info "Finished creating new app '#{app_name}' on the Dev Center".green
|
48
34
|
end
|
@@ -50,22 +36,22 @@ module Produce
|
|
50
36
|
return true
|
51
37
|
end
|
52
38
|
|
39
|
+
def valid_name_for(input)
|
40
|
+
latinazed = input.to_slug.transliterate.to_s # remove accents
|
41
|
+
latinazed.gsub(/[^0-9A-Za-z\d\s]/, '') # remove non-valid characters
|
42
|
+
end
|
53
43
|
|
54
44
|
private
|
55
45
|
def app_exists?
|
56
|
-
|
57
|
-
|
58
|
-
wait_for_elements("td[aria-describedby='grid-table_identifier']").each do |app|
|
59
|
-
identifier = app['title']
|
60
|
-
|
61
|
-
return true if identifier.to_s == @config[:bundle_identifier].to_s
|
62
|
-
end
|
63
|
-
|
64
|
-
false
|
46
|
+
Spaceship.app.find(@config[:bundle_identifier].to_s) != nil
|
65
47
|
end
|
66
48
|
|
67
|
-
def
|
68
|
-
|
49
|
+
def login
|
50
|
+
user = ENV["CERT_USERNAME"] || ENV["DELIVER_USER"] || CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
|
51
|
+
manager = CredentialsManager::PasswordManager.shared_manager(user)
|
52
|
+
|
53
|
+
Spaceship.login(user, manager.password)
|
54
|
+
Spaceship.select_team
|
69
55
|
end
|
70
56
|
end
|
71
57
|
end
|
@@ -74,11 +74,14 @@ module Produce
|
|
74
74
|
|
75
75
|
def initial_create
|
76
76
|
open_new_app_popup
|
77
|
-
|
77
|
+
|
78
78
|
# Fill out the initial information
|
79
79
|
wait_for_elements("input[ng-model='createAppDetails.newApp.name.value']").first.set @config[:app_name]
|
80
80
|
wait_for_elements("input[ng-model='createAppDetails.versionString.value']").first.set @config[:version]
|
81
81
|
wait_for_elements("input[ng-model='createAppDetails.newApp.vendorId.value']").first.set @config[:sku]
|
82
|
+
if not @config[:company_name].to_s.empty?
|
83
|
+
wait_for_elements("input[ng-model='createAppDetails.companyName.value']", true).first.set @config[:company_name]
|
84
|
+
end
|
82
85
|
|
83
86
|
all(:xpath, "//option[text()='#{@config[:primary_language]}']").first.select_option
|
84
87
|
wait_for_elements("option[value='#{@config[:bundle_identifier]}']").first.select_option
|
data/lib/produce/version.rb
CHANGED
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: 0.3.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-
|
11
|
+
date: 2015-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fastlane_core
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.7.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.7.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: spaceship
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.0.10
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.10
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
176
|
version: '0'
|
163
177
|
requirements: []
|
164
178
|
rubyforge_project:
|
165
|
-
rubygems_version: 2.
|
179
|
+
rubygems_version: 2.4.7
|
166
180
|
signing_key:
|
167
181
|
specification_version: 4
|
168
182
|
summary: Create new iOS apps on iTunes Connect and Dev Portal using the command line
|