fastlane-plugin-versioning 0.4.3 → 0.5.0

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
  SHA256:
3
- metadata.gz: '093488305066c34f3a186640498cbd4df2c8fdad45f48d711e567de850184fdd'
4
- data.tar.gz: c0ddd5bebec1799405c6c187f6860238032e1d3a78a64a72b7ce0214d43ae611
3
+ metadata.gz: 03aeb9f6626333091028495754b989bfa694844515ba302e4d0b35b19a87fd0a
4
+ data.tar.gz: d3bede186bf5e768f804b7ef557c02015b56d17e532bd1a89d042e9439287eb0
5
5
  SHA512:
6
- metadata.gz: df9706ed311057a90b40319eba7e128e18909667f234046b2760582fc3af543b272eed2bdfe81cbbc8bc442338cc138a377190cdf38a3dba5d35ac9ece89488d
7
- data.tar.gz: 1b987cafb2125d4a93f36f6dd495f2412ca7415b1cbc4c6f0ee8086f50669e4cd1849a17bf216b61f195a8795821d239a7b5defa713fff1e8a8a40b410667578
6
+ metadata.gz: caa6ec62dbab21b2e4c304b287798ba0b75040ba7ea443429484b34bb3420d395cd38349139f6f7139931abc33304a6c5d9a4aa1730c8c280aad8ee4503f9c60
7
+ data.tar.gz: 1d885526fe58a4930b1d37f9ade376cce2dac25445a00a3b645389cb17d20825521d10da2e1df49692e93999746755bcb77e62d7d7f3275c4c152a40c4ba89db
data/README.md CHANGED
@@ -57,6 +57,13 @@ increment_version_number_in_plist(
57
57
  # Automatically increment patch version number. Use App Store version number as a source.
58
58
  version_source: 'appstore'
59
59
  )
60
+ increment_version_number_in_plist(
61
+ # Automatically increment patch version number. Use App Store version number as a source.
62
+ version_source: 'appstore',
63
+ # optional two letter country code:
64
+ # specify if availability of your app is limited to a certain country
65
+ country: 'at'
66
+ )
60
67
 
61
68
  increment_version_number_in_plist(
62
69
  # specify specific version number (optional, omitting it increments patch version number)
@@ -108,13 +115,28 @@ version = get_version_number_from_plist(xcodeproj: 'Project.xcodeproj', # option
108
115
 
109
116
  ```ruby
110
117
  version = get_app_store_version_number(xcodeproj: 'Project.xcodeproj', # optional
111
- target: 'TestTarget', # optional, or `scheme`
112
- # optional, must be specified if you have different Info.plist build settings
113
- # for different build configurations
114
- build_configuration_name: 'Release')
115
- )
118
+ target: 'TestTarget', # optional, or `scheme`
119
+ # optional, must be specified if you have different Info.plist build settings
120
+ # for different build configurations
121
+ build_configuration_name: 'Release')
122
+
123
+ version = get_app_store_version_number(xcodeproj: 'Project.xcodeproj', # optional
124
+ target: 'TestTarget', # optional, or `scheme`
125
+ # optional, must be specified if you have different Info.plist build settings
126
+ # for different build configurations
127
+ build_configuration_name: 'Release',
128
+ # optional, must be specified for the lookup to succeed,
129
+ # if your app is only published to one country
130
+ # passed value must be a country code
131
+ country: 'at')
132
+
116
133
  version = get_app_store_version_number(bundle_id: 'com.apple.Numbers')
117
134
 
135
+ version = get_app_store_version_number(bundle_id: 'com.apple.Numbers',
136
+ # optional two letter country code:
137
+ # specify if availability of your app is limited to a certain country
138
+ country: 'at')
139
+
118
140
  ```
119
141
 
120
142
  ### get_version_number_from_git_branch
@@ -204,6 +226,13 @@ increment_version_number_in_xcodeproj(
204
226
  # Automatically increment patch version number. Use App Store version number as a source.
205
227
  version_source: 'appstore'
206
228
  )
229
+ increment_version_number_in_xcodeproj(
230
+ # Automatically increment patch version number. Use App Store version number as a source.
231
+ version_source: 'appstore',
232
+ # optional two letter country code:
233
+ # specify if availability of your app is limited to a certain country
234
+ country: 'at'
235
+ )
207
236
 
208
237
  increment_version_number_in_xcodeproj(
209
238
  # specify specific version number (optional, omitting it increments patch version number)
@@ -273,6 +302,14 @@ increment_build_number_in_plist(
273
302
 
274
303
  ## Issues and Feedback
275
304
 
305
+ ### SwiftPM
306
+
307
+ SwiftPM can be tedious when using this plugin, at least in terms of git history and `xcodeproj`s. Up until recently, there were a number of annoyances caused by this plugin (and a downstream dependency of it) because writing to a project file would clobber some of the comment metadata inside of the project file and replace them - leaving you with the actual version change, but a number of other, less desirable changes too to hand pick through (or give up this plugin for). The advice is, update to `>= 0.4.6` of this plugin, and follow [this advice](https://github.com/SiarheiFedartsou/fastlane-plugin-versioning/issues/59#issuecomment-878255057) - which is to make sure not to include the `.git` at the end of your SwiftPM dependency URLs.
308
+
309
+ ### New / Fresh projects
310
+
311
+ Note that you will need to set the build and version numbers through Xcode's UI at least once to use this plugin without weird `nil:NilClass` issues. See this [issue](https://github.com/SiarheiFedartsou/fastlane-plugin-versioning/issues/60) for context
312
+
276
313
  For any other issues and feedback about this plugin, please submit it to this repository.
277
314
 
278
315
  ## Troubleshooting
@@ -50,6 +50,10 @@ module Fastlane
50
50
  return ENV['APPVEYOR_BUILD_NUMBER']
51
51
  end
52
52
 
53
+ if ENV.key?('GITHUB_RUN_NUMBER')
54
+ return ENV['GITHUB_RUN_NUMBER']
55
+ end
56
+
53
57
  UI.error("Cannot detect current CI build number. Defaulting to \"1\".")
54
58
  "1"
55
59
  end
@@ -16,7 +16,11 @@ module Fastlane
16
16
  bundle_id = GetInfoPlistValueAction.run(path: plist, key: 'CFBundleIdentifier') # TODO: add same kind of flag to support build setting variables
17
17
  end
18
18
 
19
- uri = URI("http://itunes.apple.com/lookup?bundleId=#{bundle_id}")
19
+ if params[:country]
20
+ uri = URI("http://itunes.apple.com/lookup?bundleId=#{bundle_id}&country=#{params[:country]}")
21
+ else
22
+ uri = URI("http://itunes.apple.com/lookup?bundleId=#{bundle_id}")
23
+ end
20
24
  Net::HTTP.get(uri)
21
25
 
22
26
  response = Net::HTTP.get_response(uri)
@@ -66,7 +70,11 @@ module Fastlane
66
70
  FastlaneCore::ConfigItem.new(key: :build_configuration_name,
67
71
  optional: true,
68
72
  conflicting_options: [:bundle_id],
69
- description: "Specify a specific build configuration if you have different Info.plist build settings for each configuration")
73
+ description: "Specify a specific build configuration if you have different Info.plist build settings for each configuration"),
74
+ FastlaneCore::ConfigItem.new(key: :country,
75
+ optional: true,
76
+ description: "Pass an optional country code, if your app's availability is limited to specific countries",
77
+ is_string: true)
70
78
  ]
71
79
  end
72
80
 
@@ -41,7 +41,7 @@ module Fastlane
41
41
 
42
42
  if !(build_configuration_name = params[:build_configuration_name]).nil?
43
43
  version_number = version_number[build_configuration_name]
44
- UI.user_error! "Cannot resolve $(MARKETING_VERSION) build setting for #{build_configuration_name}." if plist.nil?
44
+ UI.user_error! "Cannot resolve $(MARKETING_VERSION) build setting for #{build_configuration_name}." if version_number.nil?
45
45
  else
46
46
  version_number = version_number.values.compact.uniq
47
47
  UI.user_error! 'Cannot accurately resolve $(MARKETING_VERSION) build setting, try specifying :build_configuration_name.' if version_number.count > 1
@@ -68,11 +68,12 @@ module Fastlane
68
68
  end
69
69
 
70
70
  def self.set_build_number_using_scheme(params, next_build_number)
71
- config = { project: params[:xcodeproj], scheme: params[:scheme], configuration: params[:build_configuration_name] }
72
- project = FastlaneCore::Project.new(config)
73
- project.select_scheme
74
-
75
- project.build_settings["CURRENT_PROJECT_VERSION"] = next_build_number
71
+ project = Xcodeproj::Project.open(params[:xcodeproj])
72
+ configs = project.objects.select { |obj| select_build_configuration_predicate(params[:build_configuration_name], obj) }
73
+ configs.each do |config|
74
+ config.build_settings["CURRENT_PROJECT_VERSION"] = next_build_number
75
+ end
76
+
76
77
  project.save
77
78
  end
78
79
 
@@ -115,7 +116,7 @@ module Fastlane
115
116
  end
116
117
 
117
118
  def self.authors
118
- ["jdouglas-nz"]
119
+ ["jdouglas-nz", "neilb01"]
119
120
  end
120
121
 
121
122
  def self.is_supported?(platform)
@@ -129,6 +129,10 @@ module Fastlane
129
129
  UI.user_error!("Available values are 'plist' and 'appstore'") unless ['plist', 'appstore'].include? value
130
130
  end,
131
131
  description: "Source version to increment. Available options: plist, appstore"),
132
+ FastlaneCore::ConfigItem.new(key: :country,
133
+ optional: true,
134
+ description: "Pass an optional country code, if your app's availability is limited to specific countries",
135
+ is_string: true),
132
136
  FastlaneCore::ConfigItem.new(key: :plist_build_setting_support,
133
137
  description: "support automatic resolution of build setting from xcodeproj if not a literal value in the plist",
134
138
  is_string: false,
@@ -88,12 +88,12 @@ module Fastlane
88
88
  end
89
89
 
90
90
  def self.set_version_number_using_scheme(params, next_version_number)
91
- config = { project: params[:xcodeproj], scheme: params[:scheme], configuration: params[:build_configuration_name] }
92
- project = FastlaneCore::Project.new(config)
93
- project.select_scheme
94
-
95
- project.build_settings["MARKETING_VERSION"] = next_version_number
96
- project.save
91
+ project = Xcodeproj::Project.open(params[:xcodeproj])
92
+ configs = project.objects.select { |obj| select_build_configuration_predicate(params[:build_configuration_name], obj) }
93
+ configs.each do |config|
94
+ config.build_settings["MARKETING_VERSION"] = next_version_number
95
+ end
96
+ project.save
97
97
  end
98
98
 
99
99
  #####################################################
@@ -159,6 +159,10 @@ module Fastlane
159
159
  UI.user_error!("Available values are 'xcodeproj' and 'appstore'") unless ['xcodeproj', 'appstore'].include? value
160
160
  end,
161
161
  description: "Source version to increment. Available options: xcodeproj, appstore"),
162
+ FastlaneCore::ConfigItem.new(key: :country,
163
+ optional: true,
164
+ description: "Pass an optional country code, if your app's availability is limited to specific countries",
165
+ is_string: true),
162
166
  FastlaneCore::ConfigItem.new(key: :plist_build_setting_support,
163
167
  description: "support automatic resolution of build setting from xcodeproj if not a literal value in the plist",
164
168
  is_string: false,
@@ -167,7 +171,7 @@ module Fastlane
167
171
  end
168
172
 
169
173
  def self.authors
170
- ["jdouglas-nz"]
174
+ ["jdouglas-nz", "neilb01"]
171
175
  end
172
176
 
173
177
  def self.is_supported?(platform)
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Versioning
3
- VERSION = "0.4.3"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-versioning
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Siarhei Fiedartsou
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-03-31 00:00:00.000000000 Z
12
+ date: 2021-07-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pry