fastlane: Action increment_version_number no longer works with Xcode 11's version string change

New Issue Checklist

Issue Description

With Xcode 11, Apple changed the version number (eg. 4.110.5) from being a Plist property to being a Project property. The Plist now references the project version by using $(MARKETING_VERSION).

This breaks the increment_version_number action given that it reads the $(MARKETING_VERSION) as a string. The only way around this is to revert the Plist change manually, but any subsequent changes to the version in Xcode will break this again.

Command executed

increment_version_number

Complete output when running fastlane, including the stack trace and command used
[12:15:12]: --------------------------------------
[12:15:12]: --- Step: increment_version_number ---
[12:15:12]: --------------------------------------
[12:15:13]: Before being able to increment and read the version number from your Xcode project, you first need to setup your project properly. Please follow the guide at https://developer.apple.com/library/content/qa/qa1827/_index.html
+-----------------------------+--------------------+
|                   Lane Context                   |
+-----------------------------+--------------------+
| DEFAULT_PLATFORM            | ios                |
| PLATFORM_NAME               | ios                |
| LANE_NAME                   | ios release_branch |
| GIT_REPO_WAS_CLEAN_ON_START | true               |
| VERSION_NUMBER              | 4.1.0              |
| BUILD_NUMBER                | 2                  |
+-----------------------------+--------------------+
[12:15:13]: Your current version ($(MARKETING_VERSION)) does not respect the format A or A.B or A.B.C

Environment

βœ… fastlane environment βœ…

Stack

Key Value
OS 10.14.6
Ruby 2.6.2
Bundler? true
Git git version 2.21.0
Installation Source ~/.rbenv/versions/2.6.2/bin/fastlane
Host Mac OS X 10.14.6 (18G87)
Ruby Lib Dir ~/.rbenv/versions/2.6.2/lib
OpenSSL Version OpenSSL 1.0.2r 26 Feb 2019
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode.app/Contents/Developer/
Xcode Version 11.0

System Locale

Variable Value
LANG en_CA.UTF-8 βœ…
LC_ALL
LANGUAGE

fastlane files:

`./fastlane/Fastfile`
default_platform :ios
fastlane_version '2.131.0'

fastlane_require 'json'

platform :ios do

  # --------------------------------------------------
  # Set Up & Tear Down
  # --------------------------------------------------

  before_all do |lane, options|
  end

  after_all do |lane, options|
  end

  # --------------------------------------------------
  # Lanes
  # --------------------------------------------------

  import 'utils/shared_utils.rb'
  import 'lanes/build.rb'
  import 'lanes/bump.rb'
  import 'lanes/cicd.rb'
  import 'lanes/codecoverage.rb'
  import 'lanes/config.rb'
  import 'lanes/install.rb'
  import 'lanes/release.rb'
  import 'lanes/symbols.rb'
  import 'lanes/testflight.rb'
  import 'lanes/tests.rb'

  # --------------------------------------------------
  # Error Handling
  # --------------------------------------------------

  error do |lane, exception, options|
   if ENV["SLACK_URL"]
     slack(
           message: exception.message,
           success: false
         )
   end
  end

end

`./fastlane/Appfile`
apple_id 'xxxxxx'
app_identifier 'xxxxxx'

for_lane :beta do
  app_identifier 'xxxxxx'
end

fastlane gems

Gem Version Update-Status
fastlane 2.131.0 βœ… Up-To-Date

Loaded fastlane plugins:

Plugin Version Update-Status
fastlane-plugin-appconfig 0.4.0 πŸ’₯ Check failed
fastlane-plugin-aws_s3 1.6.0 βœ… Up-To-Date
Loaded gems
Gem Version
did_you_mean 1.3.0
bundler 2.0.2
fileutils 1.1.0
etc 1.0.1
CFPropertyList 3.0.1
concurrent-ruby 1.1.5
i18n 0.9.5
minitest 5.11.3
thread_safe 0.3.6
tzinfo 1.2.5
activesupport 4.2.11.1
public_suffix 2.0.5
addressable 2.7.0
rubyzip 1.2.4
apktools 0.7.2
atomos 0.1.3
aws-eventstream 1.0.3
aws-sigv4 1.1.0
jmespath 1.4.0
aws-sdk-core 2.11.338
aws-sdk-resources 2.11.338
aws-sdk 2.11.338
babosa 1.0.3
byebug 11.0.1
claide 1.0.3
clamp 1.3.0
fuzzy_match 2.0.4
nap 1.1.0
cocoapods-core 1.7.5
cocoapods-deintegrate 1.0.4
cocoapods-downloader 1.2.2
cocoapods-plugins 1.0.0
cocoapods-search 1.0.0
cocoapods-stats 1.1.0
netrc 0.11.0
cocoapods-trunk 1.4.0
cocoapods-try 1.1.0
colored2 3.1.2
escape 0.0.4
fourflusher 2.3.1
gh_inspector 1.1.3
molinillo 0.6.6
ruby-macho 1.4.0
nanaimo 0.2.6
xcodeproj 1.12.0
cocoapods 1.7.5
coderay 1.1.2
colored 1.2
colorize 0.8.1
highline 1.7.10
commander-fastlane 4.4.6
declarative 0.0.10
declarative-option 0.1.0
digest-crc 0.4.1
unf_ext 0.0.7.6
unf 0.1.4
domain_name 0.5.20190701
dotenv 2.7.5
emoji_regex 1.0.1
excon 0.66.0
multipart-post 2.0.0
faraday 0.15.4
http-cookie 1.0.3
faraday-cookie_jar 0.0.6
faraday_middleware 0.13.1
fastimage 2.1.7
jwt 2.1.0
memoist 0.16.0
multi_json 1.13.1
os 1.0.1
signet 0.11.0
googleauth 0.6.7
httpclient 2.8.3
mime-types-data 3.2019.0904
mime-types 3.3
uber 0.1.0
representable 3.0.4
retriable 3.1.2
google-api-client 0.23.9
google-cloud-env 1.2.1
google-cloud-core 1.3.1
google-cloud-storage 1.16.0
json 2.2.0
mini_magick 4.9.5
multi_xml 0.6.0
plist 3.5.0
security 0.1.3
naturally 2.2.0
simctl 1.6.6
slack-notifier 2.3.2
terminal-notifier 2.0.0
unicode-display_width 1.6.0
terminal-table 1.8.0
tty-screen 0.7.0
tty-cursor 0.7.0
tty-spinner 0.9.1
word_wrap 1.0.0
rouge 2.0.7
xcpretty 0.3.0
xcpretty-travis-formatter 1.0.0
git 1.5.0
fastlane-plugin-appconfig 0.4.0
fastlane-plugin-aws_s3 1.6.0
oauth 0.5.4
jira-ruby 1.6.0
method_source 0.9.2
mini_portile2 2.4.0
nokogiri 1.10.3
pry 0.12.2
pry-byebug 3.7.0
slather 2.4.7

generated on: 2019-09-26

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 24
  • Comments: 24 (3 by maintainers)

Most upvoted comments

I use increment_version_number_in_xcodeproj action from Versioning fastlane Plugin. It works with MARKETING_VSERION

// Add plugin
fastlane add_plugin versioning
// Add action to your lane
increment_version_number_in_xcodeproj(bump_type: "patch", target: "your_target_name")

The get_version_number command has been updated to support Xcode 11 so we can taking this temp workaround for now:

version = get_version_number()
increment_version_number(version_number: version)
increment_version_number()

Be noted that this updates the default $MARKETING_VERSION to the actual version number string. Please make sure this won’t cause you any issue beforehand.