apprepo 0.0.6 → 0.0.8
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 +11 -9
- data/lib/apprepo.rb +12 -25
- data/lib/apprepo/analyser.rb +26 -0
- data/lib/apprepo/commands_generator.rb +50 -39
- data/lib/apprepo/detect_values.rb +8 -20
- data/lib/apprepo/loader.rb +4 -2
- data/lib/apprepo/manifest.rb +9 -2
- data/lib/apprepo/options.rb +34 -14
- data/lib/apprepo/runner.rb +20 -19
- data/lib/apprepo/setup.rb +8 -9
- data/lib/apprepo/uploader.rb +208 -124
- data/lib/apprepo/version.rb +3 -3
- metadata +5 -28
- data/lib/apprepo/download_metadata.rb +0 -44
- data/lib/apprepo/upload_assets.rb +0 -22
- data/lib/apprepo/upload_descriptor.rb +0 -12
- data/lib/apprepo/upload_metadata.rb +0 -192
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4df104a9102694794cd681b6fcc02166d26e8c1c
|
4
|
+
data.tar.gz: 47bc5b2d1ff9b4cfa45f47d7eeb861a4e37d2f7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69193ee567b1ca06c2aedcc3aeadfe5308aa14fc3c8cb929a3ad3fc484baa1470eb512ea2d22bbe7e6e17636d07e7f6536eb36a133469290e7c2d731bf53dd63
|
7
|
+
data.tar.gz: 8d5d2927717947b29245057c67cd73c1348bea3d099b9ee323bf5230d01af307edeb47415f518678258221125861692908e91b85c5a6dc84a473144295690ba3
|
data/README.md
CHANGED
@@ -32,16 +32,18 @@
|
|
32
32
|
apprepo
|
33
33
|
============
|
34
34
|
|
35
|
-
**This project is
|
35
|
+
**This project is a preparation phase for fastlane-plugin-apprepo and will eventually deprecate.**
|
36
36
|
|
37
37
|
[](https://twitter.com/igraczech)
|
38
38
|
[](https://github.com/fastlane/fastlane/blob/master/deliver/LICENSE)
|
39
39
|
[](http://rubygems.org/gems/apprepo)
|
40
40
|
[](https://circleci.com/gh/suculent/apprepo)
|
41
|
+
[](https://coveralls.io/github/suculent/apprepo?branch=master)
|
42
|
+

|
41
43
|
|
42
|
-
###### Deliver IPAs, icons &
|
44
|
+
###### Deliver IPAs, icons & manifest.json to AppRepo (or any other SFTP server) using a single command.
|
43
45
|
|
44
|
-
`apprepo` can upload ipa files, app icons and
|
46
|
+
`apprepo` can upload ipa files, app icons and manifest.json to your Enterprise iOS distribution site from the command line.
|
45
47
|
|
46
48
|
You can vote for Android support as well, Michal.
|
47
49
|
|
@@ -64,7 +66,7 @@ Get in contact with the developer on Twitter: [@igraczech](https://twitter.com/i
|
|
64
66
|
# Future Features
|
65
67
|
- Submit to AppRepo completely automatically
|
66
68
|
- Upload a new ipa file to AppRepo without Xcode from any Mac
|
67
|
-
- Maintain your app
|
69
|
+
- Maintain your app manifest locally and push changes to AppRepo
|
68
70
|
- Easily implement a real Continuous Deployment process using [fastlane](https://fastlane.tools)
|
69
71
|
- Store the configuration in git to easily deploy from **any** Mac, including your Continuous Integration server
|
70
72
|
|
@@ -85,9 +87,9 @@ Make sure, you have the latest version of the Xcode command line tools installed
|
|
85
87
|
|
86
88
|
# Quick Start
|
87
89
|
|
88
|
-
The guide will create all the necessary files for you, [in future also] using the existing app
|
90
|
+
The guide will create all the necessary files for you, [in future also] using the existing app manifest.json from AppRepo (if any). AppRepo on-premise service has nothing to do with iTunesConnect or AppStore Distribution. Its purpose is solely for Enterprise In-House distribution and can leverage your Apple Developer Account credentials to fetch currently valid applications and their bundle identifiers.
|
89
91
|
|
90
|
-
Delivery module for your custom SFTP server (e.g. AppRepo, where it specifically supports custom
|
92
|
+
Delivery module for your custom SFTP server (e.g. AppRepo, where it specifically supports custom manifest.json format instead of default plist manifest [future todo]).
|
91
93
|
|
92
94
|
- ```cd [your_project_folder]```
|
93
95
|
- ```apprepo init```
|
@@ -95,7 +97,7 @@ Delivery module for your custom SFTP server (e.g. AppRepo, where it specifically
|
|
95
97
|
- Enter your `APPREPO` APPCODE for this application in AppRepo, you can omit this for own SFTP server (or expect it to be a directory at your SFTP home path as we don't want to limit your creativity).
|
96
98
|
- Enjoy a good drink, while the computer does all the work for you
|
97
99
|
|
98
|
-
From now on, you can run `apprepo` to deploy a new update, or just upload new app
|
100
|
+
From now on, you can run `apprepo` to deploy a new update, or just upload new app manifest.json and icons.
|
99
101
|
|
100
102
|
|
101
103
|
# Usage
|
@@ -116,9 +118,9 @@ From now on, you can run `apprepo` to deploy a new update, or just upload new ap
|
|
116
118
|
- [`frameit`](https://github.com/fastlane/fastlane/tree/master/frameit): Quickly put your screenshots into the right device frames
|
117
119
|
- [`pem`](https://github.com/fastlane/fastlane/tree/master/pem): Automatically generate and renew your push notification profiles
|
118
120
|
- [`sigh`](https://github.com/fastlane/fastlane/tree/master/sigh): Because you would rather spend your time building stuff than fighting provisioning
|
119
|
-
- [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on
|
121
|
+
- [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on AppRepo and Dev Portal using the command line
|
120
122
|
- [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
|
121
|
-
- [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and
|
123
|
+
- [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and AppRepo
|
122
124
|
- [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot): The best way to manage your TestFlight testers and builds from your terminal
|
123
125
|
- [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
|
124
126
|
- [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
|
data/lib/apprepo.rb
CHANGED
@@ -4,49 +4,36 @@
|
|
4
4
|
|
5
5
|
require 'json'
|
6
6
|
|
7
|
-
require_relative 'apprepo/
|
8
|
-
require_relative 'apprepo/options'
|
9
|
-
|
10
|
-
require_relative 'apprepo/uploader'
|
11
|
-
require_relative 'apprepo/upload_metadata'
|
12
|
-
require_relative 'apprepo/upload_assets'
|
7
|
+
require_relative 'apprepo/analyser'
|
13
8
|
require_relative 'apprepo/commands_generator'
|
14
|
-
|
15
9
|
require_relative 'apprepo/detect_values'
|
10
|
+
require_relative 'apprepo/loader'
|
11
|
+
require_relative 'apprepo/manifest'
|
12
|
+
require_relative 'apprepo/options'
|
16
13
|
require_relative 'apprepo/runner'
|
17
14
|
require_relative 'apprepo/setup'
|
18
|
-
require_relative 'apprepo/
|
19
|
-
|
20
|
-
require_relative 'apprepo/upload_descriptor' # will deprecate or replace :app info
|
15
|
+
require_relative 'apprepo/uploader'
|
16
|
+
require_relative 'apprepo/version'
|
21
17
|
|
22
18
|
require 'fastlane_core'
|
23
19
|
|
20
|
+
# Root class of the AppRepo SFTP Uploader
|
24
21
|
module AppRepo
|
25
22
|
class << self
|
26
23
|
def initialize
|
27
24
|
UI.message('[AppRepo] Initializing...')
|
28
25
|
end
|
26
|
+
|
27
|
+
def new
|
28
|
+
UI.message('[AppRepo] New...')
|
29
|
+
end
|
29
30
|
end
|
30
31
|
|
31
32
|
Encoding.default_external = Encoding::UTF_8
|
32
33
|
Encoding.default_internal = Encoding::UTF_8
|
33
34
|
|
34
|
-
|
35
|
-
Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
|
35
|
+
Helper = FastlaneCore::Helper
|
36
36
|
UI = FastlaneCore::UI
|
37
37
|
|
38
|
-
appcode = 'ruby-test'
|
39
|
-
|
40
|
-
# Setup descriptor (appcode, ipa, metadata - from repofile)!
|
41
|
-
UI.message('[AppRepoTest] UploadDescriptor.new')
|
42
|
-
uploadDescriptor = UploadDescriptor.new(appcode) # not used yet
|
43
|
-
uploadDescriptor.appcode = appcode
|
44
|
-
|
45
|
-
# Test Uploader (OK)
|
46
|
-
# UI.message('[AppRepoTest] Uploader.new')
|
47
|
-
# upload = Uploader.new('repo.teacloud.net', 'circle', File.dirname(__FILE__) + '/../assets/circle.key', appcode)
|
48
|
-
# upload.run
|
49
|
-
|
50
|
-
UI.message('[AppRepoTest] AppRepo::CommandsGenerator.new.run')
|
51
38
|
CommandsGenerator.new.run
|
52
39
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative 'uploader'
|
2
|
+
require 'fastlane_core'
|
3
|
+
|
4
|
+
module AppRepo
|
5
|
+
# Should provide metadata for current appcode
|
6
|
+
class Analyser
|
7
|
+
attr_accessor :options
|
8
|
+
|
9
|
+
def initialize(options)
|
10
|
+
self.options = options
|
11
|
+
end
|
12
|
+
|
13
|
+
# Fetches remote app version from metadata
|
14
|
+
def fetch_app_version(options)
|
15
|
+
metadata = AppRepo::Uploader.new(options).download_metadata
|
16
|
+
FastlaneCore::UI.user_error!('TODO: Parse version out from metadata')
|
17
|
+
'0.0'
|
18
|
+
end
|
19
|
+
|
20
|
+
# only for testing, should be empty
|
21
|
+
def run
|
22
|
+
FastlaneCore::UI.message('AppRepo:Analyser.run for test...')
|
23
|
+
fetch_app_version(options)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -3,6 +3,7 @@ require 'commander'
|
|
3
3
|
HighLine.track_eof = false
|
4
4
|
|
5
5
|
module AppRepo
|
6
|
+
# This class is responsible for providing commands with respective actions
|
6
7
|
class CommandsGenerator
|
7
8
|
include Commander::Methods
|
8
9
|
|
@@ -10,15 +11,16 @@ module AppRepo
|
|
10
11
|
FastlaneCore::UpdateChecker.start_looking_for_update('apprepo')
|
11
12
|
new.run
|
12
13
|
ensure
|
13
|
-
FastlaneCore::UpdateChecker
|
14
|
+
checker = FastlaneCore::UpdateChecker
|
15
|
+
checker.show_update_status('apprepo', AppRepo::VERSION)
|
14
16
|
end
|
15
17
|
|
16
18
|
# rubocop:disable Metrics/AbcSize
|
17
19
|
# rubocop:disable Metrics/MethodLength
|
20
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
21
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
22
|
+
# rubocop:disable Style/GlobalVars
|
18
23
|
def run
|
19
|
-
|
20
|
-
puts "[AppRepo::CommandsGenerator] run"
|
21
|
-
|
22
24
|
program :version, AppRepo::VERSION
|
23
25
|
program :description, AppRepo::DESCRIPTION
|
24
26
|
program :help, 'Author', 'Matej Sychra <suculent@me.com>'
|
@@ -26,7 +28,8 @@ module AppRepo
|
|
26
28
|
program :help, 'GitHub', 'https://github.com/suculent/apprepo/tree/master/apprepo'
|
27
29
|
program :help_formatter, :compact
|
28
30
|
|
29
|
-
FastlaneCore::CommanderGenerator.new
|
31
|
+
generator = FastlaneCore::CommanderGenerator.new
|
32
|
+
generator.generate(AppRepo::Options.available_options)
|
30
33
|
|
31
34
|
global_option('--verbose') { $verbose = true }
|
32
35
|
|
@@ -36,16 +39,18 @@ module AppRepo
|
|
36
39
|
c.syntax = 'apprepo'
|
37
40
|
c.description = 'Upload IPA and metadata to SFTP (e.g. AppRepo)'
|
38
41
|
c.action do |_args, options|
|
39
|
-
|
42
|
+
config = FastlaneCore::Configuration
|
43
|
+
available_opts = AppRepo::Options.available_options
|
44
|
+
options = config.create(available_opts, options.__hash__)
|
40
45
|
loaded = options.load_configuration_file('Repofile')
|
41
46
|
loaded = true if options[:repo_description] || options[:ipa]
|
42
47
|
|
43
48
|
unless loaded
|
44
|
-
puts
|
45
|
-
if UI.confirm('No
|
46
|
-
require 'apprepo/setup'
|
49
|
+
puts '[AppRepo::CommandsGenerator] configuration file not loaded'
|
50
|
+
if UI.confirm('No Repofile found. Do you want to setup apprepo?')
|
51
|
+
require 'apprepo/setup'
|
47
52
|
AppRepo::Setup.new.run(options)
|
48
|
-
puts
|
53
|
+
puts '[AppRepo::CommandsGenerator] exiting.'
|
49
54
|
return 0
|
50
55
|
end
|
51
56
|
end
|
@@ -54,11 +59,37 @@ module AppRepo
|
|
54
59
|
end
|
55
60
|
end
|
56
61
|
|
57
|
-
command :
|
58
|
-
c.syntax = 'apprepo
|
59
|
-
c.description = '
|
62
|
+
command :download_manifest do |c|
|
63
|
+
c.syntax = 'apprepo download manifest'
|
64
|
+
c.description = 'Downloads existing metadata and stores it locally.
|
65
|
+
This overwrites the local files.'
|
66
|
+
|
67
|
+
c.action do |_args, options|
|
68
|
+
config = FastlaneCore::Configuration
|
69
|
+
available_opts = AppRepo::Options.available_options
|
70
|
+
options = config.create(available_opts, options.__hash__)
|
71
|
+
options.load_configuration_file('Repofile')
|
72
|
+
AppRepo::Runner.new(options) # to login...
|
73
|
+
cont = FastlaneCore::Helper.fastlane_enabled? ? './fastlane' : '.'
|
74
|
+
path = options[:manifest_path] || File.join(cont, 'metadata')
|
75
|
+
res = ENV['APPREPO_FORCE_OVERWRITE']
|
76
|
+
msg = 'Do you want to overwrite existing metadata on path '
|
77
|
+
res ||= UI.confirm(msg + '#{File.expand_path(path)}' + '?')
|
78
|
+
return 0 if res.nil?
|
79
|
+
require 'apprepo/setup'
|
80
|
+
# TODO: Fetch version from IPA or else
|
81
|
+
v = options[:app_version].latest_version
|
82
|
+
AppRepo::Setup.new.generate_metadata_files(v, path)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
command :submit do |c|
|
87
|
+
c.syntax = 'apprepo submit'
|
88
|
+
c.description = 'Submit a specific build-nr, use latest.'
|
60
89
|
c.action do |_args, options|
|
61
|
-
|
90
|
+
config = FastlaneCore::Configuration
|
91
|
+
available_opts = AppRepo::Options.available_options
|
92
|
+
options = config.create(available_opts, options.__hash__)
|
62
93
|
options.load_configuration_file('Repofile')
|
63
94
|
options[:submit_for_review] = true
|
64
95
|
options[:build_number] = 'latest' unless options[:build_number]
|
@@ -68,42 +99,22 @@ module AppRepo
|
|
68
99
|
|
69
100
|
command :init do |c|
|
70
101
|
c.syntax = 'apprepo init'
|
71
|
-
c.description = 'Create the initial `apprepo` configuration
|
102
|
+
c.description = 'Create the initial `apprepo` configuration'
|
72
103
|
c.action do |_args, options|
|
73
104
|
if File.exist?('Repofile') || File.exist?('fastlane/Repofile')
|
74
|
-
UI.important('You already got a running apprepo setup
|
105
|
+
UI.important('You already got a running apprepo setup.')
|
75
106
|
return 0
|
76
107
|
end
|
77
108
|
|
78
109
|
require 'apprepo/setup'
|
79
|
-
|
110
|
+
config = FastlaneCore::Configuration
|
111
|
+
available_opts = AppRepo::Options.available_options
|
112
|
+
options = config.create(available_opts, options.__hash__)
|
80
113
|
AppRepo::Runner.new(options) # to login...
|
81
114
|
AppRepo::Setup.new.run(options)
|
82
115
|
end
|
83
116
|
end
|
84
117
|
|
85
|
-
command :download_metadata do |c|
|
86
|
-
c.syntax = 'apprepo download_metadata'
|
87
|
-
c.description = 'Downloads existing metadata and stores it locally. This overwrites the local files.'
|
88
|
-
|
89
|
-
c.action do |_args, options|
|
90
|
-
options = FastlaneCore::Configuration.create(AppRepo::Options.available_options, options.__hash__)
|
91
|
-
options.load_configuration_file('Repofile')
|
92
|
-
AppRepo::Runner.new(options) # to login...
|
93
|
-
containing = FastlaneCore::Helper.fastlane_enabled? ? './fastlane' : '.'
|
94
|
-
path = options[:metadata_path] || File.join(containing, 'metadata')
|
95
|
-
res = ENV['APPREPO_FORCE_OVERWRITE']
|
96
|
-
res ||= UI.confirm("Do you want to overwrite existing metadata on path '#{File.expand_path(path)}'?")
|
97
|
-
if res
|
98
|
-
require 'apprepo/setup'
|
99
|
-
# TODO: Fetch version from IPA or else
|
100
|
-
v = options[:app_version].latest_version
|
101
|
-
AppRepo::Setup.new.generate_metadata_files(v, path)
|
102
|
-
else
|
103
|
-
return 0
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
118
|
# rubocop:enable Metrics/AbcSize
|
108
119
|
# rubocop:enable Metrics/MethodLength
|
109
120
|
|
@@ -1,37 +1,25 @@
|
|
1
1
|
module AppRepo
|
2
|
+
# This class is responsible for detecting values from IPA.
|
2
3
|
class DetectValues
|
3
4
|
def run!(options)
|
4
|
-
|
5
|
-
find_folders(options)
|
5
|
+
find_app_identifier(options)
|
6
6
|
find_version(options)
|
7
7
|
end
|
8
8
|
|
9
9
|
def find_app_identifier(options)
|
10
10
|
return if options[:app_identifier]
|
11
|
-
|
12
11
|
if options[:ipa]
|
13
|
-
identifier =
|
14
|
-
elsif options[:pkg]
|
15
|
-
identifier = FastlaneCore::PkgFileAnalyser.fetch_app_identifier(options[:pkg])
|
12
|
+
# identifier = AppRepo::Analyser.fetch_app_identifier(options[:ipa])
|
16
13
|
end
|
17
|
-
|
18
|
-
|
19
|
-
options[:app_identifier] ||= UI.input(
|
20
|
-
end
|
21
|
-
|
22
|
-
def find_folders(options)
|
23
|
-
containing = Helper.fastlane_enabled? ? './fastlane' : '.'
|
24
|
-
unless options[:metadata_path].nil?
|
25
|
-
puts "Containing: '" + options[:metadata_path] + "' folder for TODO RENAME example_manifest.json"
|
26
|
-
options[:metadata_path] ||= File.join(containing, '/../manifest.json')
|
27
|
-
puts "Options: '" + options[:metadata_path] + "'"
|
28
|
-
FileUtils.mkdir_p(options[:metadata_path])
|
29
|
-
end
|
14
|
+
options[:app_identifier] = identifier unless identifier.to_s.empty?
|
15
|
+
input_message = 'The Bundle Identifier of your App: '
|
16
|
+
options[:app_identifier] ||= UI.input(input_message)
|
30
17
|
end
|
31
18
|
|
32
19
|
def find_version(options)
|
33
20
|
unless options[:ipa].nil?
|
34
|
-
|
21
|
+
opt = AppRepo::Analyser.new(options)
|
22
|
+
options[:app_version] ||= opt.fetch_app_version(options[:ipa])
|
35
23
|
end
|
36
24
|
end
|
37
25
|
end
|
data/lib/apprepo/loader.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
require 'fastlane_core/languages'
|
2
2
|
|
3
|
-
module
|
3
|
+
module AppRepo
|
4
|
+
# Responsible for loading language folders
|
4
5
|
module Loader
|
5
6
|
def self.language_folders(root)
|
6
7
|
Dir.glob(File.join(root, '*')).select do |path|
|
7
|
-
|
8
|
+
all = ALL_LANGUAGES.include?(File.basename(path).downcase)
|
9
|
+
File.directory?(path) && all
|
8
10
|
end.sort
|
9
11
|
end
|
10
12
|
end
|
data/lib/apprepo/manifest.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
1
3
|
module AppRepo
|
4
|
+
# Responsible for parsing and providing manifest.json
|
2
5
|
class Manifest
|
3
6
|
#
|
4
7
|
# Translated internal key names from Fastlane to AppRepo
|
@@ -14,11 +17,15 @@ module AppRepo
|
|
14
17
|
|
15
18
|
def initialize(appcode)
|
16
19
|
self.appcode = appcode
|
17
|
-
UI.message('Initializing
|
20
|
+
UI.message('Initializing requires APPCODE. ' + self.appcode)
|
21
|
+
end
|
22
|
+
|
23
|
+
def parse_json(json)
|
24
|
+
# TODO: load values from JSON
|
18
25
|
end
|
19
26
|
|
20
27
|
# Provide JSON serialized data
|
21
|
-
def
|
28
|
+
def manifest_as_json
|
22
29
|
structure = {
|
23
30
|
appcode: appcode,
|
24
31
|
filename: filename,
|
data/lib/apprepo/options.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'fastlane_core'
|
2
2
|
|
3
3
|
module AppRepo
|
4
|
+
# Provides available options for the commands generator
|
4
5
|
class Options
|
6
|
+
# rubocop:disable Metrics/AbcSize
|
5
7
|
def self.available_options
|
6
8
|
[
|
7
9
|
FastlaneCore::ConfigItem.new(key: :ipa,
|
@@ -13,10 +15,6 @@ module AppRepo
|
|
13
15
|
verify_block: proc do |value|
|
14
16
|
UI.user_error!("Could not find ipa file at path '#{value}'") unless File.exist?(value)
|
15
17
|
UI.user_error!("'#{value}' doesn't seem to be an ipa file") unless value.end_with?('.ipa')
|
16
|
-
end,
|
17
|
-
conflicting_options: [:pkg],
|
18
|
-
conflict_block: proc do |value|
|
19
|
-
UI.user_error!("You can't use 'ipa' and '#{value.key}' options in one run.")
|
20
18
|
end),
|
21
19
|
FastlaneCore::ConfigItem.new(key: :app_identifier,
|
22
20
|
short_option: '-b',
|
@@ -39,33 +37,55 @@ module AppRepo
|
|
39
37
|
optional: false,
|
40
38
|
env_name: 'APPREPO_USER',
|
41
39
|
description: 'USER of your Apprepo server'),
|
40
|
+
FastlaneCore::ConfigItem.new(key: :repo_password,
|
41
|
+
short_option: '-p',
|
42
|
+
optional: true,
|
43
|
+
env_name: 'APPREPO_PASSWORD',
|
44
|
+
description: 'PASSWORD for your Apprepo server (not for production)',
|
45
|
+
conflicting_options: [:repo_key],
|
46
|
+
conflict_block: proc do |value|
|
47
|
+
UI.user_error!("You can't use 'password' and '#{value.key}' options in one run.")
|
48
|
+
end),
|
42
49
|
FastlaneCore::ConfigItem.new(key: :repo_key,
|
43
50
|
short_option: '-k',
|
44
51
|
optional: false,
|
45
52
|
env_name: 'APPREPO_KEY',
|
46
|
-
description: 'RSA key for your Apprepo server'
|
53
|
+
description: 'RSA key for your Apprepo server',
|
54
|
+
conflicting_options: [:repo_password],
|
55
|
+
conflict_block: proc do |value|
|
56
|
+
UI.user_error!("You can't use 'repo_key' and '#{value.key}' options in one run.")
|
57
|
+
end),
|
47
58
|
FastlaneCore::ConfigItem.new(key: :repo_description,
|
48
59
|
short_option: '-d',
|
49
60
|
optional: true,
|
50
|
-
|
51
|
-
|
52
|
-
FastlaneCore::ConfigItem.new(key: :
|
61
|
+
description: 'Long detailed description for your Apprepo server',
|
62
|
+
default_value: ''),
|
63
|
+
FastlaneCore::ConfigItem.new(key: :repo_summary,
|
64
|
+
short_option: '-s',
|
65
|
+
optional: true,
|
66
|
+
description: 'Short description for your Apprepo server',
|
67
|
+
default_value: ''),
|
68
|
+
FastlaneCore::ConfigItem.new(key: :manifest_path,
|
53
69
|
short_option: '-m',
|
54
70
|
description: 'Path to the folder containing the metadata files',
|
55
71
|
optional: true),
|
56
|
-
FastlaneCore::ConfigItem.new(key: :
|
72
|
+
FastlaneCore::ConfigItem.new(key: :repo_title,
|
57
73
|
short_option: '-a',
|
58
|
-
description: '
|
59
|
-
optional:
|
74
|
+
description: 'Title of the app',
|
75
|
+
optional: false),
|
76
|
+
FastlaneCore::ConfigItem.new(key: :appcode,
|
77
|
+
short_option: '-o',
|
78
|
+
description: 'Name of the app on AppRepo',
|
79
|
+
optional: false),
|
60
80
|
FastlaneCore::ConfigItem.new(key: :skip_binary_upload,
|
61
|
-
description: 'Skip uploading an ipa or
|
81
|
+
description: 'Skip uploading an ipa or to AppRepo',
|
62
82
|
is_string: false,
|
63
83
|
default_value: false),
|
64
84
|
FastlaneCore::ConfigItem.new(key: :app_version,
|
65
85
|
short_option: '-z',
|
66
86
|
description: 'The version that should be edited or created',
|
67
87
|
optional: true),
|
68
|
-
FastlaneCore::ConfigItem.new(key: :
|
88
|
+
FastlaneCore::ConfigItem.new(key: :skip_manifest,
|
69
89
|
description: "Don't upload the metadata (e.g. title, description), this will still upload screenshots",
|
70
90
|
is_string: false,
|
71
91
|
default_value: false),
|
@@ -77,7 +97,7 @@ module AppRepo
|
|
77
97
|
short_option: '-n',
|
78
98
|
description: 'If set the given build number (already uploaded to iTC) will be used instead of the current built one',
|
79
99
|
optional: true,
|
80
|
-
conflicting_options: [:ipa
|
100
|
+
conflicting_options: [:ipa],
|
81
101
|
conflict_block: proc do |value|
|
82
102
|
UI.user_error!("You can't use 'build_number' and '#{value.key}' options in one run.")
|
83
103
|
end),
|