produce 0.4.0 → 0.4.1
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 +10 -7
- data/lib/produce/developer_center.rb +6 -2
- data/lib/produce/itunes_connect.rb +11 -7
- data/lib/produce/options.rb +25 -6
- data/lib/produce/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 924d63e36bfea7f361256328ea281c4f20aea426
|
|
4
|
+
data.tar.gz: 8615920b97de8b01d9a526224bba9cc16be958d5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 512bf0e5c45e7ba11fdd0fda494e26feff2d94a2a49523d09bb0c4f820d3f66b76f833d639b70f65b80df57f296f22524f06baaafd85e4d528875ddcb4a34a96
|
|
7
|
+
data.tar.gz: 7e7de9f95aca28999360a8025130ed85e69fce7b9c26fb8a482d8c7d6e8fc5e507b5cd392f95f244af51cd084c3bf7601942302116122770bf5b402300a606a7
|
data/README.md
CHANGED
|
@@ -73,15 +73,18 @@ Get the latest list of all available parameters;
|
|
|
73
73
|
|
|
74
74
|
```
|
|
75
75
|
-u, --username STRING Your Apple ID Username (PRODUCE_USERNAME)
|
|
76
|
-
-
|
|
76
|
+
-a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER)
|
|
77
77
|
-b, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX)
|
|
78
|
-
-a, --app_name STRING App Name (
|
|
79
|
-
-
|
|
80
|
-
-s, --sku
|
|
81
|
-
-
|
|
78
|
+
-a, --app_name STRING App Name (PRODUCE_APP_NAME)
|
|
79
|
+
-v, --version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION)
|
|
80
|
+
-s, --sku SKU Number (e.g. '1234') (PRODUCE_SKU)
|
|
81
|
+
-l, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE)
|
|
82
82
|
-i, --skip_itc Skip the creation of the app on iTunes Connect (PRODUCE_SKIP_ITC)
|
|
83
83
|
-d, --skip_devcenter Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER)
|
|
84
|
+
-t, --team_id STRING The ID of your team if you're in multiple teams (PRODUCE_TEAM_ID)
|
|
85
|
+
-l, --team_name STRING The name of your team if you're in multiple teams (PRODUCE_TEAM_NAME)
|
|
84
86
|
-h, --help Display help documentation
|
|
87
|
+
-v, --version Display version information
|
|
85
88
|
```
|
|
86
89
|
|
|
87
90
|
## Environment Variables
|
|
@@ -95,8 +98,8 @@ In case you want to pass more information to `produce` using environment variabl
|
|
|
95
98
|
- `PRODUCE_SKU` (the SKU you want to use, which must be a unique number)
|
|
96
99
|
- `PRODUCE_SKIP_ITC` (should iTunes Connect app be created)
|
|
97
100
|
- `PRODUCE_SKIP_DEVCENTER` (should Apple Developer Portal app be created)
|
|
98
|
-
- `
|
|
99
|
-
- `
|
|
101
|
+
- `PRODUCE_TEAM_ID` (the Team ID, e.g. `Q2CBPK58CA`)
|
|
102
|
+
- `PRODUCE_TEAM_NAME` (the Team Name, e.g. `Felix Krause`)
|
|
100
103
|
|
|
101
104
|
|
|
102
105
|
## [`fastlane`](https://github.com/KrauseFx/fastlane) Integration
|
|
@@ -20,7 +20,7 @@ module Produce
|
|
|
20
20
|
app_name = valid_name_for(Produce.config[:app_name])
|
|
21
21
|
Helper.log.info "Creating new app '#{app_name}' on the Apple Dev Center".green
|
|
22
22
|
|
|
23
|
-
app = Spaceship.app.create!(bundle_id:
|
|
23
|
+
app = Spaceship.app.create!(bundle_id: app_identifier,
|
|
24
24
|
name: app_name)
|
|
25
25
|
|
|
26
26
|
Helper.log.info "Created app #{app.app_id}"
|
|
@@ -40,9 +40,13 @@ module Produce
|
|
|
40
40
|
latinazed.gsub(/[^0-9A-Za-z\d\s]/, '') # remove non-valid characters
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
+
def app_identifier
|
|
44
|
+
Produce.config[:app_identifier].to_s
|
|
45
|
+
end
|
|
46
|
+
|
|
43
47
|
private
|
|
44
48
|
def app_exists?
|
|
45
|
-
Spaceship.app.find(
|
|
49
|
+
Spaceship.app.find(app_identifier) != nil
|
|
46
50
|
end
|
|
47
51
|
|
|
48
52
|
def login
|
|
@@ -4,7 +4,7 @@ module Produce
|
|
|
4
4
|
class ItunesConnect
|
|
5
5
|
|
|
6
6
|
def run
|
|
7
|
-
@full_bundle_identifier =
|
|
7
|
+
@full_bundle_identifier = app_identifier
|
|
8
8
|
@full_bundle_identifier.gsub!('*', Produce.config[:bundle_identifier_suffix].to_s) if wildcard_bundle?
|
|
9
9
|
|
|
10
10
|
Spaceship::Tunes.login(Produce.config[:username], nil)
|
|
@@ -15,7 +15,7 @@ module Produce
|
|
|
15
15
|
def create_new_app
|
|
16
16
|
application = fetch_application
|
|
17
17
|
if application
|
|
18
|
-
Helper.log.info "App '#{Produce.config[:app_name]}' exists
|
|
18
|
+
Helper.log.info "App '#{Produce.config[:app_name]}' already exists (#{application.apple_id}), nothing to do on iTunes Connect".green
|
|
19
19
|
# Nothing to do here
|
|
20
20
|
else
|
|
21
21
|
Helper.log.info "Creating new app '#{Produce.config[:app_name]}' on iTunes Connect".green
|
|
@@ -23,10 +23,10 @@ module Produce
|
|
|
23
23
|
Produce.config[:bundle_identifier_suffix] = '' unless wildcard_bundle?
|
|
24
24
|
|
|
25
25
|
Spaceship::Tunes::Application.create!(name: Produce.config[:app_name],
|
|
26
|
-
primary_language: Produce.config[:
|
|
27
|
-
version: Produce.config[:
|
|
28
|
-
sku: Produce.config[:sku],
|
|
29
|
-
bundle_id:
|
|
26
|
+
primary_language: Produce.config[:language],
|
|
27
|
+
version: Produce.config[:version],
|
|
28
|
+
sku: Produce.config[:sku].to_s, # might be an int
|
|
29
|
+
bundle_id: app_identifier,
|
|
30
30
|
bundle_id_suffix: Produce.config[:bundle_identifier_suffix])
|
|
31
31
|
application = fetch_application
|
|
32
32
|
raise "Something went wrong when creating the new app - it's not listed in the App's list" unless application
|
|
@@ -43,7 +43,11 @@ module Produce
|
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
def wildcard_bundle?
|
|
46
|
-
return
|
|
46
|
+
return app_identifier.end_with?("*")
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def app_identifier
|
|
50
|
+
Produce.config[:app_identifier].to_s
|
|
47
51
|
end
|
|
48
52
|
end
|
|
49
53
|
end
|
data/lib/produce/options.rb
CHANGED
|
@@ -13,7 +13,7 @@ module Produce
|
|
|
13
13
|
verify_block: Proc.new do |value|
|
|
14
14
|
CredentialsManager::PasswordManager.shared_manager(value)
|
|
15
15
|
end),
|
|
16
|
-
FastlaneCore::ConfigItem.new(key: :
|
|
16
|
+
FastlaneCore::ConfigItem.new(key: :app_identifier,
|
|
17
17
|
env_name: "PRODUCE_APP_IDENTIFIER",
|
|
18
18
|
description: "App Identifier (Bundle ID, e.g. com.krausefx.app)",
|
|
19
19
|
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)),
|
|
@@ -21,16 +21,17 @@ module Produce
|
|
|
21
21
|
env_name: "PRODUCE_APP_IDENTIFIER_SUFFIX",
|
|
22
22
|
description: "App Identifier Suffix (Ignored if App Identifier does not ends with .*)"),
|
|
23
23
|
FastlaneCore::ConfigItem.new(key: :app_name,
|
|
24
|
-
env_name: "
|
|
24
|
+
env_name: "PRODUCE_APP_NAME",
|
|
25
25
|
description: "App Name"),
|
|
26
|
-
FastlaneCore::ConfigItem.new(key: :
|
|
26
|
+
FastlaneCore::ConfigItem.new(key: :version,
|
|
27
27
|
env_name: "PRODUCE_VERSION",
|
|
28
28
|
description: "Initial version number (e.g. '1.0')"),
|
|
29
29
|
FastlaneCore::ConfigItem.new(key: :sku,
|
|
30
30
|
env_name: "PRODUCE_SKU",
|
|
31
31
|
description: "SKU Number (e.g. '1234')",
|
|
32
|
-
default_value: Time.now.to_i.to_s
|
|
33
|
-
|
|
32
|
+
default_value: Time.now.to_i.to_s,
|
|
33
|
+
is_string: false), # false, as we also allow integers
|
|
34
|
+
FastlaneCore::ConfigItem.new(key: :language,
|
|
34
35
|
env_name: "PRODUCE_LANGUAGE",
|
|
35
36
|
description: "Primary Language (e.g. 'English', 'German')",
|
|
36
37
|
default_value: "English",
|
|
@@ -48,7 +49,25 @@ module Produce
|
|
|
48
49
|
env_name: "PRODUCE_SKIP_DEVCENTER",
|
|
49
50
|
description: "Skip the creation of the app on the Apple Developer Portal",
|
|
50
51
|
is_string: false,
|
|
51
|
-
default_value: false)
|
|
52
|
+
default_value: false),
|
|
53
|
+
FastlaneCore::ConfigItem.new(key: :team_id,
|
|
54
|
+
short_option: "-t",
|
|
55
|
+
env_name: "PRODUCE_TEAM_ID",
|
|
56
|
+
description: "The ID of your team if you're in multiple teams",
|
|
57
|
+
optional: true,
|
|
58
|
+
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id),
|
|
59
|
+
verify_block: Proc.new do |value|
|
|
60
|
+
ENV["FASTLANE_TEAM_ID"] = value
|
|
61
|
+
end),
|
|
62
|
+
FastlaneCore::ConfigItem.new(key: :team_name,
|
|
63
|
+
short_option: "-l",
|
|
64
|
+
env_name: "PRODUCE_TEAM_NAME",
|
|
65
|
+
description: "The name of your team if you're in multiple teams",
|
|
66
|
+
optional: true,
|
|
67
|
+
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_name),
|
|
68
|
+
verify_block: Proc.new do |value|
|
|
69
|
+
ENV["FASTLANE_TEAM_NAME"] = value
|
|
70
|
+
end),
|
|
52
71
|
|
|
53
72
|
]
|
|
54
73
|
end
|
data/lib/produce/version.rb
CHANGED