apprepo 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ac2808072cad819af871a257b85448c8d76645d
4
- data.tar.gz: 2ba4d48bcf6063feebc6bbc8055bc24572389b47
3
+ metadata.gz: 4df104a9102694794cd681b6fcc02166d26e8c1c
4
+ data.tar.gz: 47bc5b2d1ff9b4cfa45f47d7eeb861a4e37d2f7b
5
5
  SHA512:
6
- metadata.gz: 2786029914e35e0ee85cdcf0f284798663759d472bf995e897a8cf36c1c269d5250fe4ac586882334228ea740318d3ec04cb0699690109fb0d705e687b0999be
7
- data.tar.gz: da794c44e80a59c549eca53140c1e7b483e78ad5aef98dc841ecafb6e518edeb0707a481080cfd46395fa2e129c2d961c076930e340fa7125776074a0fb84d7c
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 now in preparation phase. It is secure, therefore none of it works except for tests against test server with sample account & shared public key.**
35
+ **This project is a preparation phase for fastlane-plugin-apprepo and will eventually deprecate.**
36
36
 
37
37
  [![Twitter: @igraczech](https://img.shields.io/badge/contact-%40igraczech-green.svg?style=flat)](https://twitter.com/igraczech)
38
38
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/deliver/LICENSE)
39
39
  [![Gem](https://img.shields.io/gem/v/apprepo.svg?style=flat)](http://rubygems.org/gems/apprepo)
40
40
  [![Build Status](https://img.shields.io/circleci/project/suculent/apprepo.svg?style=flat)](https://circleci.com/gh/suculent/apprepo)
41
+ [![Coverage Status](https://coveralls.io/repos/github/suculent/apprepo/badge.svg?branch=master)](https://coveralls.io/github/suculent/apprepo?branch=master)
42
+ ![Fastlane](https://img.shields.io/badge/_status_-_waiting--for--fastlane--plugins--manager_-yellow.svg)
41
43
 
42
- ###### Deliver IPAs, icons & metadata to AppRepo (or any other SFTP server) using a single command.
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 metadata to your Enterprise iOS distribution site from the command line.
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 metadata locally and push changes to AppRepo
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 metadata.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.
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 metadata.json format instead of default plist manifest [future todo]).
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 metadata and icons.
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 iTunes Connect and Dev Portal using the command line
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 iTunes Connect
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
@@ -4,49 +4,36 @@
4
4
 
5
5
  require 'json'
6
6
 
7
- require_relative 'apprepo/version'
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/loader'
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
- # Generate options (simulates commands_generator.rb)
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.show_update_status('apprepo', AppRepo::VERSION)
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.generate(AppRepo::Options.available_options)
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
- options = FastlaneCore::Configuration.create(AppRepo::Options.available_options, options.__hash__)
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 "[AppRepo::CommandsGenerator] configuration file not loaded"
45
- if UI.confirm('No AppRepo configuration found in the current directory. Do you want to setup apprepo?')
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 "[AppRepo::CommandsGenerator] exiting."
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 :submit_build do |c|
58
- c.syntax = 'apprepo submit_build'
59
- c.description = 'Submit a specific build-nr for review, use latest for the latest build'
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
- options = FastlaneCore::Configuration.create(AppRepo::Options.available_options, options.__hash__)
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 based on an existing app'
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 in this directory')
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
- options = FastlaneCore::Configuration.create(AppRepo::Options.available_options, options.__hash__)
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
- # find_app_identifier(options
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 = FastlaneCore::IpaFileAnalyser.fetch_app_identifier(options[:ipa])
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
- options[:app_identifier] = identifier if identifier.to_s.length > 0
19
- options[:app_identifier] ||= UI.input('The Bundle Identifier of your App: ')
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
- options[:app_version] ||= FastlaneCore::IpaFileAnalyser.fetch_app_version(options[:ipa])
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
@@ -1,10 +1,12 @@
1
1
  require 'fastlane_core/languages'
2
2
 
3
- module Deliver
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
- File.directory?(path) && ALL_LANGUAGES.include?(File.basename(path).downcase)
8
+ all = ALL_LANGUAGES.include?(File.basename(path).downcase)
9
+ File.directory?(path) && all
8
10
  end.sort
9
11
  end
10
12
  end
@@ -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 "AppRepo:Manifest requies at least APPCODE :"' + self.appcode)
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 getJSON
28
+ def manifest_as_json
22
29
  structure = {
23
30
  appcode: appcode,
24
31
  filename: filename,
@@ -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
- env_name: 'APPREPO_DESCRIPTION',
51
- description: 'Long description for your Apprepo server'),
52
- FastlaneCore::ConfigItem.new(key: :metadata_path,
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: :meta_title,
72
+ FastlaneCore::ConfigItem.new(key: :repo_title,
57
73
  short_option: '-a',
58
- description: 'Name of the app',
59
- optional: true),
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 pkg to iTunes Connect',
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: :skip_metadata,
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, :pkg],
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),