Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xcodes does not allow "15.0 Beta 5" as version #21369

Closed
4 tasks done
apps4everyone opened this issue Jul 3, 2023 · 4 comments · Fixed by #21434
Closed
4 tasks done

xcodes does not allow "15.0 Beta 5" as version #21369

apps4everyone opened this issue Jul 3, 2023 · 4 comments · Fixed by #21434

Comments

@apps4everyone
Copy link
Contributor

apps4everyone commented Jul 3, 2023

New Issue Checklist

Issue Description

xcodes does not allow "15.0 Beta 2" as version

Command executed
xcodes(
  version: "15.0 Beta 2",
  select_for_current_build_only: true
)
Complete output when running fastlane, including the stack trace and command used

[✔] 🚀
+---------------------------+---------+---------------------------------------------------------------------------+
| Used plugins |
+---------------------------+---------+---------------------------------------------------------------------------+
| Plugin | Version | Action |
+---------------------------+---------+---------------------------------------------------------------------------+
| fastlane-plugin-appcenter | 2.1.0 | appcenter_codepush_release_react, appcenter_fetch_devices, |
| | | appcenter_fetch_version_number, appcenter_upload |
| fastlane-plugin-sentry | 1.15.0 | sentry_check_cli_installed, sentry_create_deploy, sentry_create_release, |
| | | sentry_finalize_release, sentry_set_commits, sentry_upload_dif, |
| | | sentry_upload_dsym, sentry_upload_file, sentry_upload_proguard, |
| | | sentry_upload_sourcemap |
| fastlane-plugin-lizard | 1.3.3 | lizard |
+---------------------------+---------+---------------------------------------------------------------------------+

[11:21:48]: 15.0 Beta 2
[11:21:48]: Error setting value '15.0 Beta 2' for option 'version'
[11:21:48]: You passed invalid parameters to 'xcodes'.
[11:21:48]: Check out the error below and available options by running fastlane action xcodes

[!] The requirement '15.0 Beta 2' is not a valid RubyGems style requirement

Environment

No Appfile found

fastlane gems

Gem Version Update-Status
fastlane 2.213.0 ✅ Up-To-Date

Loaded fastlane plugins:

Plugin Version Update-Status
fastlane-plugin-appcenter 2.1.0 ✅ Up-To-Date
fastlane-plugin-sentry 1.15.0 ✅ Up-To-Date
fastlane-plugin-lizard 1.3.3 ✅ Up-To-Date
Loaded gems
Gem Version
error_highlight 0.3.0
did_you_mean 1.6.1
atomos 0.1.3
rexml 3.2.5
CFPropertyList 3.0.6
claide 1.1.0
colored2 3.1.2
nanaimo 0.3.0
xcodeproj 1.22.0
rouge 2.0.7
xcpretty 0.3.0
terminal-notifier 2.0.0
unicode-display_width 1.8.0
terminal-table 1.8.0
plist 3.7.0
public_suffix 5.0.1
addressable 2.8.4
multipart-post 2.3.0
word_wrap 1.0.0
optparse 0.1.1
tty-screen 0.8.1
tty-cursor 0.7.1
tty-spinner 0.9.3
artifactory 3.0.15
babosa 1.0.4
colored 1.2
highline 2.0.3
commander 4.6.0
excon 0.99.0
faraday-em_http 1.0.0
faraday-em_synchrony 1.0.0
faraday-excon 1.1.0
faraday-httpclient 1.0.1
faraday-multipart 1.0.4
faraday-net_http 1.0.1
faraday-net_http_persistent 1.2.0
faraday-patron 1.0.0
faraday-rack 1.0.0
faraday-retry 1.0.3
ruby2_keywords 0.0.5
faraday 1.10.3
unf_ext 0.0.8.2
unf 0.1.4
domain_name 0.5.20190701
http-cookie 1.0.5
faraday-cookie_jar 0.0.7
faraday_middleware 1.2.0
fastimage 2.2.7
gh_inspector 1.1.3
json 2.6.1
mini_magick 4.12.0
naturally 2.2.1
rubyzip 2.3.2
security 0.1.3
xcpretty-travis-formatter 1.0.1
dotenv 2.8.1
simctl 1.6.10
uber 0.1.0
declarative 0.0.20
trailblazer-option 0.1.2
representable 3.2.0
retriable 3.1.2
mini_mime 1.1.2
memoist 0.16.2
multi_json 1.15.0
os 1.1.4
signet 0.17.0
googleauth 1.5.2
httpclient 2.8.3
webrick 1.8.1
google-apis-core 0.11.0
google-apis-playcustomapp_v1 0.13.0
google-apis-androidpublisher_v3 0.42.0
google-cloud-env 1.6.0
google-cloud-errors 1.3.1
google-cloud-core 1.6.0
google-apis-iamcredentials_v1 0.17.0
google-apis-storage_v1 0.19.0
rake 13.0.6
digest-crc 0.6.4
google-cloud-storage 1.44.0
emoji_regex 3.2.3
jmespath 1.6.2
aws-partitions 1.768.0
aws-eventstream 1.2.0
aws-sigv4 1.5.2
aws-sdk-core 3.173.0
aws-sdk-kms 1.64.0
aws-sdk-s3 1.122.0
set 1.0.2
bundler 2.4.15
jwt 2.7.1
forwardable 1.3.2
logger 1.5.0
pathname 0.2.0
shellwords 0.1.0
cgi 0.3.6
date 3.2.2
timeout 0.2.0
stringio 3.0.1
securerandom 0.2.0
uri 0.12.1
openssl 3.0.1
digest 3.1.0
io-nonblock 0.1.0
ipaddr 1.2.4
io-wait 0.2.1
zlib 2.1.1
resolv 0.2.1
time 0.2.2
open-uri 0.2.0
mutex_m 0.1.1
net-http 0.3.0
net-protocol 0.1.2
ostruct 0.5.2
english 0.7.1
erb 2.2.3
strscan 3.0.1
abbrev 0.1.0
io-console 0.5.11
tempfile 0.1.2
delegate 0.2.0
fileutils 1.6.0
tmpdir 0.1.2
base64 0.1.1
singleton 0.1.1
open3 0.1.1
nkf 0.1.1
prettyprint 0.1.1
pp 0.3.0
find 0.1.1
yaml 0.2.0
psych 4.0.4
fastlane-plugin-appcenter 2.1.0
csv 3.2.5
fastlane-plugin-sentry 1.15.0
coderay 1.1.3
method_source 1.0.0
pry 0.14.2
fastlane-plugin-lizard 1.3.3
@apps4everyone
Copy link
Contributor Author

Hey @mokagio do you know why there is the verify_block: Helper::XcodesHelper::Verify.method(:requirement)) in xcodes.rb ? if value.empty? would be enough?

like

verify_block: proc do |value|
UI.user_error!("Version has to be defined with version value or in .xcode-version file!") if value.empty?
end)

@mokagio
Copy link
Contributor

mokagio commented Jul 19, 2023

As the error suggests and the code confirms, the xcodes action expects the version parameter to be a valid RubyGems style version. "15.0 Beta 4" is not valid, "15.0-beta.4" would be.

For reference, the verify_block is here:

FastlaneCore::ConfigItem.new(key: :version,
env_name: "FL_XCODE_VERSION",
description: "The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file",
default_value: Helper::XcodesHelper.read_xcode_version_file,
default_value_dynamic: true,
verify_block: Helper::XcodesHelper::Verify.method(:requirement)),

And the implementation here:

module Verify
def self.requirement(req)
UI.user_error!("Version must be specified") if req.nil? || req.to_s.strip.size == 0
Gem::Requirement.new(req.to_s)
rescue Gem::Requirement::BadRequirementError
UI.user_error!("The requirement '#{req}' is not a valid RubyGems style requirement")
end
end

I don't know why the code was written in that fashion, but I think it's worth noting that the valid RubyGems style syntax doesn't seem to work in xcodes itself.

image image

@apps4everyone I think your suggestion makes sense under the assumption that xcodes does not require RubyGems style versions but uses whatever Apple set upstream to identify the binary to install. You should make a PR with the change and see what the more knowledgeable core team thinks 😄

@apps4everyone
Copy link
Contributor Author

Opened a PR, maybe someone can try to run and review ❤️
#21434

@apps4everyone
Copy link
Contributor Author

xcodes itself works for me (latest version)
xcodes install 15.0 Beta 4

@apps4everyone apps4everyone changed the title xcodes does not allow "15.0 Beta 2" as version xcodes does not allow "15.0 Beta 5" as version Aug 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants