siarheifedartsou / fastlane-plugin-versioning Goto Github PK
View Code? Open in Web Editor NEWExtends fastlane versioning actions. Allows to set/get versions without using agvtool and do some other small tricks.
License: MIT License
Extends fastlane versioning actions. Allows to set/get versions without using agvtool and do some other small tricks.
License: MIT License
I'm receiving the following error when trying to use increment_build_number_in_plist
in combination with the fastlane function latest_testflight_build_number
. It's saying:
[!] 'build_number' value must be a String! Found Integer instead.
I was under the impression that I'd be able to use the two in combination the same way as fastlane's native increment_build_number
, as documented here: https://docs.fastlane.tools/actions/latest_testflight_build_number/#2-examples
What's strange is that in your docs you show the build_number
value as using an integer, so why is it telling me its expecting a string?
Has anyone had luck with this? Thanks!
Please add country parameter to the function get_app_store_version_number.
For app`s with country restriction addition parameter should be set in the url.
http://itunes.apple.com/lookup?bundleId=#{bundle_id}&country=#{countryCode}
I get an error saying `Couldn't find specified scheme'. I believe this is an issue when your specified scheme and target have different names.
The get_info_plist_path seems to want a scheme but the option for it is named target, as you can see on this line
https://github.com/SiarheiFedartsou/fastlane-plugin-versioning/blob/master/lib/fastlane/plugin/versioning/actions/get_info_plist_path.rb#L16
The target parameter should be renamed to scheme
Keep getting this error
An error occurred while installing unf_ext (0.0.7.4), and Bundler cannot continue.
Make sure that gem install unf_ext -v '0.0.7.4'
succeeds before bundling.
Hi,
since fastlane 2.57 i get the following error with increment_build_number_in_plist.
This is how i call it in Fastfile:
increment_build_number_in_plist( build_number: ENV["BUILD_NUMBER"], scheme:betaAppScheme )
/Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane_core/lib/fastlane_core/project.rb:81:in expand_path': �[31m[!] no implicit conversion of nil into String�[0m (TypeError) from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane_core/lib/fastlane_core/project.rb:81:in
initialize'
from /usr/local/lib/ruby/gems/2.5.0/gems/fastlane-plugin-versioning-0.3.3/lib/fastlane/plugin/versioning/actions/get_info_plist_path.rb:58:in new' from /usr/local/lib/ruby/gems/2.5.0/gems/fastlane-plugin-versioning-0.3.3/lib/fastlane/plugin/versioning/actions/get_info_plist_path.rb:58:in
find_path_using_scheme'
from /usr/local/lib/ruby/gems/2.5.0/gems/fastlane-plugin-versioning-0.3.3/lib/fastlane/plugin/versioning/actions/get_info_plist_path.rb:20:in run' from /usr/local/lib/ruby/gems/2.5.0/gems/fastlane-plugin-versioning-0.3.3/lib/fastlane/plugin/versioning/actions/increment_build_number_in_plist.rb:17:in
run'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:253:in block (2 levels) in execute_action' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/actions/actions_helper.rb:50:in
execute_action'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:231:in block in execute_action' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:227:in
chdir'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:227:in execute_action' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:148:in
trigger_action_by_name'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/fast_file.rb:148:in method_missing' from Fastfile:24:in
block in parsing_binding'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/lane.rb:33:in call' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:201:in
try_switch_to_lane'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:156:in trigger_action_by_name' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/fast_file.rb:148:in
method_missing'
from Fastfile:63:in block in parsing_binding' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/lane.rb:33:in
call'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:49:in block in execute' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:45:in
chdir'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/runner.rb:45:in execute' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/lane_manager.rb:56:in
cruise_lane'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/command_line_handler.rb:34:in handle' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/commands_generator.rb:107:in
block (2 levels) in run'
from /usr/local/lib/ruby/gems/2.5.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:178:in call' from /usr/local/lib/ruby/gems/2.5.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:153:in
run'
from /usr/local/lib/ruby/gems/2.5.0/gems/commander-fastlane-4.4.5/lib/commander/runner.rb:476:in run_active_command' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:75:in
run!'
from /usr/local/lib/ruby/gems/2.5.0/gems/commander-fastlane-4.4.5/lib/commander/delegates.rb:15:in run!' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/commands_generator.rb:336:in
run'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/commands_generator.rb:42:in start' from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/fastlane/lib/fastlane/cli_tools_distributor.rb:94:in
take_off'
from /Users/jenkins/.gem/ruby/2.5.0/gems/fastlane-2.75.1/bin/fastlane:20:in <top (required)>' from /usr/local/bin/fastlane:23:in
load'
from /usr/local/bin/fastlane:23:in `
I've tried lot of things. I've updated fastlane, i've updated ruby, but nothing works.
Thanks Bernhard
When I run e.g. increment_version_number_in_xcodeproj
:
increment_version_number_in_xcodeproj(
xcodeproj: PROJECT_PATH,
bump_type: options[:bump_type],
scheme: SCHEME_PROD
)
It runs xcodebuild with a -resolvePackageDependencies
flag, and then it replaces all the SPM specific names in the project file with generic things like RemoteSwiftPackageReference
SwiftPackageProductDependency
and BuildFile
. Running regular fastlane actions does not do this. The project still compiles and runs though, since I guess these names are just commented out labels, but it would still be preferable for this not to happen (because those labels are helpful and because I don't want to have to discard git changes every time I run fastlane with this plugin).
For example:
B2CC9E5525647C9C00AC7158 /* Sentry in Frameworks */ = {isa = PBXBuildFile; productRef = B2CC9E5425647C9C00AC7158 /* Sentry */; };
becomes:
B2CC9E5525647C9C00AC7158 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; productRef = B2CC9E5425647C9C00AC7158 /* SwiftPackageProductDependency */; };
This SO issue is similar but it is talking about SwiftLint and has no solution yet.
Also, if you add / remove files within your Xcode project (in the Xcode application) the project file reverts all these changes.
I need to increase the versionCode and versionName for all of my productFlavors in my gradle file. Would nice to have a plugin like this.
I'm getting this error message "wrong number of arguments (given 0, expected 1)" whether I add in the pattern
argument or not. Any ideas @SiarheiFedartsou?
Hi, I have a project where these values are set with $(MARKETING_VERSION)
for bundle version string and $(CURRENT_PROJECT_VERSION)
for bundle version.
I am getting this error:
[23:04:04]: ----------------------------------------
[23:04:04]: --- Step: Verifying fastlane version ---
[23:04:04]: ----------------------------------------
[23:04:04]: Your fastlane version 2.144.0 matches the minimum requirement of 1.109.0 ✅
[23:04:04]: ------------------------------
[23:04:04]: --- Step: default_platform ---
[23:04:04]: ------------------------------
[23:04:04]: The `generated_fastfile_id` action was deprecated, you can remove the line from your `Fastfile`
[23:04:04]: Driving the lane 'bla' 🚀
[23:04:04]: -----------------------------------------------
[23:04:04]: --- Step: get_version_number_from_xcodeproj ---
[23:04:04]: -----------------------------------------------
[23:04:05]: Unknown method 'plist'
+------------------+-----+
| Lane Context |
+------------------+-----+
| DEFAULT_PLATFORM | ios |
| PLATFORM_NAME | |
| LANE_NAME | bla |
+------------------+-----+
[23:04:05]: To call another action from an action use `other_action.plist` instead
By removing build_configuration_name: 'Release'
it's working now. But it still a bug, no?
Could you please provide a changelog or annotate the releases accordingly? It would be nice to know what changed when updating this plugin.
Thanks!
Thank you very much for your plugin. But I have trouble and want to fix it. I have project with multiple targets and each of them has different build number. I want to get current build number of the target and increment it. This is my example:
project = './CoreFrameworkApp/CoreFrameworkApp.xcodeproj'
target = 'Demo'
version = get_build_number_from_plist(xcodeproj: project,
target: target,
build_configuration_name: 'Release').to_i + 1
###################################
platform :ios do
desc "Builds, achieves and uploads ipa to TestFlight"
lane :testflight_lane do
cert
sigh
increment_build_number_in_plist(
build_number: version.to_s,
target: target,
)
gym(
workspace: "MyProject.xcworkspace",
scheme: "Demo",
configuration: "Release",
clean: true,
output_directory: "./build",
output_name: "#{target}.ipa",
)
upload_to_testflight(
skip_submission: true,
skip_waiting_for_build_processing: true
)
end
end
I have error message: 'no implicit conversion of nil into String'. What does it mean?
Thank you very much for help.
When running with the following parameters:
increment_build_number_in_xcodeproj(
scheme: "Development",
build_configuration_name: "Development",
xcodeproj: "myapp.xcodeproj"
)
I get the following error:
27: from /usr/local/bin/fastlane:23:in `<main>'
26: from /usr/local/bin/fastlane:23:in `load'
25: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/bin/fastlane:23:in `<top (required)>'
24: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in `take_off'
23: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
22: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
21: from /Library/Ruby/Gems/2.6.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
20: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
19: from /Library/Ruby/Gems/2.6.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
18: from /Library/Ruby/Gems/2.6.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
17: from /Library/Ruby/Gems/2.6.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
16: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
15: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
14: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
13: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
12: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
11: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
10: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/lane.rb:33:in `call'
9: from Fastfile:21:in `block (2 levels) in parsing_binding'
8: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
7: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
6: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
5: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
4: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
3: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
2: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.168.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
1: from /Library/Ruby/Gems/2.6.0/gems/fastlane-plugin-versioning-0.4.4/lib/fastlane/plugin/versioning/actions/increment_build_number_in_xcodeproj.rb:25:in `run'
/Library/Ruby/Gems/2.6.0/gems/fastlane-plugin-versioning-0.4.4/lib/fastlane/plugin/versioning/actions/increment_build_number_in_xcodeproj.rb:77:in `set_build_number_using_scheme': [!] undefined method `[]=' for nil:NilClass (NoMethodError)
Looking at the source code for set_build_number_using_scheme
it has this line:
project.build_settings["CURRENT_PROJECT_VERSION"] = next_build_number
It looks like project.build_settings
is a getter that returns the value for a given key. Unfortunately, it's not a setter for the build settings.
Please advise and thank you for putting this plugin together.
sorry, I don't know that what happened。
I can some target, but some not.Are all calling the same method。
Here is an error。
[20:41:43]: --- Step: increment_build_number_in_plist ---
[20:41:43]: ---------------------------------------------
[20:41:43]: undefined method `[]' for nil:NilClass
[20:41:43]: Unable to find plist file at '/Users/laiyoung_/Documents/QT/QingTui_iPhone/${SRCROOT}/QingTui_iPhone/QingTui_Distribution/QingTui_Distribution.plist'
+------------------+-------------+
| Lane Context |
+------------------+-------------+
| DEFAULT_PLATFORM | ios |
| PLATFORM_NAME | ios |
| LANE_NAME | ios Archive |
| BUILD_NUMBER | true |
+------------------+-------------+
[20:41:43]: undefined method `split' for true:TrueClass
my method
private_lane :UpdateBuild_number do |options|
qt_target_name = options[:qt_target_name]
increment_build_number_in_plist(target: "QingTui_#{qt_target_name}")
increment_build_number_in_plist(target: "Share_#{qt_target_name}")
build_number = get_info_plist_value(path: "./QingTui_iPhone/QingTui_#{qt_target_name}/QingTui_#{qt_target_name}.plist", key: "CFBundleVersion")
# git_commit(path: "./QingTui_iPhone", message: "update build_number to #{build_number}")
# push_to_git_remote
puts build_number
build_number
end
thank you!
Im getting the following error when trying to run increment_version_number_in_xcodeproj
[17:36:14]: Unknown method 'set_version_number_using_target'
[17:36:14]: To call another action from an action use `other_action.set_version_number_using_target` instead
What I'm currently doing:
increment_version_number_in_xcodeproj(version_number: "3.8.2", xcodeproj: "./path/Proj.xcodeproj", target: "MyApp")
Versions installed:
Using commander-fastlane 4.4.6
Using fastlane 2.134.0
Using fastlane-plugin-versioning 0.4.0
Any thoughts? Thanks.
It would be great if we could make increment_build_number_in_xcodeproj
and increment_version_number_in_xcodeproj
modify the CURRENT_PROJECT_VERSION
and MARKETING_VERSION
values at the project level instead of at an individual target level.
This is especially useful when you are releasing an application that includes multiple targets:
In my scenario, our application currently has 16 framework targets. I do not want to manually specify the exact same version information for all targets - instead I would prefer to define this information at the shared project level and let it be inherited by all project targets.
It is very rare in my opinion that you would actually genuinely want your CURRENT_PROJECT_VERSION
to be set at a target-level.
Hi,
When I execute:
increment_version_number_in_xcodeproj( bump_type: bumpType, scheme: scheme )
It's changing all the configurations to the new value calculated from the correct scheme.
So basically I have 4 schemes:
Marketing versions:
A: 1.1.1
B: 2.2.2
C: 3.3.3
D: 4.4.4
When I do
increment_version_number_in_xcodeproj( bump_type: patch, scheme: D )
It executes:
xcodebuild -showBuildSettings -scheme D -project MyProject.xcodeproj
And then the configurations get updated to:
A: 4.4.5
B: 4.4.5
C: 4.4.5
D: 4.4.5
If I add build_configuration_name
The command fails with:
Unknown method 'set_version_number_using_scheme'
Incrementing minor version number should create a version number of the following format: x.x
instead of x.x.0
.
This is probably a question of style, but would be great to be able to specify this behaviour.
get_version_number_from_xcodeproj target: target, build_configuration_name: "Release"
results in
INFO [2020-08-17 15:47:34.10]: -----------------------------------------------
INFO [2020-08-17 15:47:34.10]: --- Step: get_version_number_from_xcodeproj ---
INFO [2020-08-17 15:47:34.10]: -----------------------------------------------
ERROR [2020-08-17 15:47:34.55]: Unknown method 'plist'
get_version_number_from_xcodeproj.rb:44
UI.user_error! "Cannot resolve $(MARKETING_VERSION) build setting for #{build_configuration_name}." if plist.nil?
should be
UI.user_error! "Cannot resolve $(MARKETING_VERSION) build setting for #{build_configuration_name}." if version_number.nil?
Hi,
in my info.plist file after the change of version, I have the l'option
of text because in French but saved with the l'option
cordially
When trying to execute the action increment_build_number_in_plist(target: "name") it is failing with undefined method `resolved_build_setting' for nil:NilClass
I am new to fastlane so let me know what you need to help debug this.
Dear Sir:
My code like :
increment_build_number_in_plist(target: 'XXX')
increment_version_number_in_plist(
target: 'XXX',
version_number: '1.0'
)
but fastlane run with an error:Could not find action, lane or variable 'increment_build_number_in_plist'. Check out the documentation for more details: https://docs.fastlane.tools/actions
I find the new action for fastlane named: increment_build_number.
Should I use 'increment_build_number'?
Why I can't use your plugin?
CI_PIPELINE_ID
is shared between all projects and will increase very rapidly if you have lots of projects and builds, whereas CI_PIPELINE_IID
is:
The unique id of the current pipeline scoped to project
Some caveats:
CI_PIPELINE_IID
is only available for gitlab v11.0 and higherCI_PIPELINE_ID
will be unable to just switch over because that would cause the build number to decrease.I am trying to fetch the list of builds version
and build_number
using Fastlane pilot builds but I keep getting this error: [pilot] Fix TypeError in
list by ignoring nil counts
.
I want something like this:
+-----------+---------+----------+
| Great App Builds |
+-----------+---------+----------+
| Version # | Build # | Installs |
+-----------+---------+----------+
| 0.9.13 | 1 | 0 |
| 0.9.13 | 2 | 0 |
| 0.9.20 | 3 | 0 |
| 0.9.20 | 4 | 3 |
+-----------+---------+----------+
Hello!
Xcode has changed its version key for build version. It is now $(MARKETING_VERSION).
Any update soon?
Thanks!
In my project there are multiple targets, and even though action get_build_number_from_plist(target: target, plist_build_setting_support: true)
retrieves correct build number,
increment_build_number_in_plist(target: target, plist_build_setting_support: true)
fails with error:
ArgumentError: [!] wrong number of arguments (given 0, expected 1)
/usr/local/lib/ruby/gems/2.4.0/gems/xcodeproj-1.13.0/lib/xcodeproj/project.rb:654:in `build_settings'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-plugin-versioning-0.4.0/lib/fastlane/plugin/versioning/actions/increment_build_number_in_xcodeproj.rb:62:in `set_build_number_using_target'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-plugin-versioning-0.4.0/lib/fastlane/plugin/versioning/actions/increment_build_number_in_xcodeproj.rb:23:in `run'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-plugin-versioning-0.4.0/lib/fastlane/plugin/versioning/actions/increment_build_number_in_plist.rb:25:in `run'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/runner.rb:256:in `block (2 levels) in execute_action'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/runner.rb:235:in `block in execute_action'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/runner.rb:227:in `chdir'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/runner.rb:227:in `execute_action'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
Fastfile:77:in `block (2 levels) in parsing_binding'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/lane.rb:33:in `call'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/runner.rb:45:in `chdir'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/runner.rb:45:in `execute'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/lane_manager.rb:56:in `cruise_lane'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
/usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
/usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
/usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
/usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/commands_generator.rb:349:in `run'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in `take_off'
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.135.2/bin/fastlane:23:in `<top (required)>'
/usr/local/bin/fastlane:23:in `load'
/usr/local/bin/fastlane:23:in `<top (required)>'
I have 2 targets, and I only would like one of them to be changed, so I set the target
option on increment_version_number_in_xcodeproj
but it appears to be ignored, my other target is still updated.
Traceback:
Traceback (most recent call last):
31: from /Users/robotex/.rbenv/versions/2.5.3/bin/fastlane:23:in `<main>'
30: from /Users/robotex/.rbenv/versions/2.5.3/bin/fastlane:23:in `load'
29: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/bin/fastlane:23:in `<top (required)>'
28: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in `take_off'
27: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
26: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/commands_generator.rb:349:in `run'
25: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
24: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
23: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
22: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
21: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
20: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
19: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
18: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/lane_manager.rb:56:in `cruise_lane'
17: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
16: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
15: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
14: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/lane.rb:33:in `call'
13: from Fastfile:25:in `block (2 levels) in parsing_binding'
12: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
11: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:146:in `trigger_action_by_name'
10: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:204:in `try_switch_to_lane'
9: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/lane.rb:33:in `call'
8: from Fastfile:4281:in `block (2 levels) in parsing_binding'
7: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
6: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
5: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:227:in `execute_action'
4: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:227:in `chdir'
3: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:235:in `block in execute_action'
2: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
1: from /Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-2.136.0/fastlane/lib/fastlane/runner.rb:256:in `block (2 levels) in execute_action'
/Users/robotex/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/fastlane-plugin-versioning-0.4.2/lib/fastlane/plugin/versioning/actions/increment_build_number_in_plist.rb:9:in `run': [!] undefined method `split' for nil:NilClass (NoMethodError)
Code:
increment_build_number_in_plist(target: target, plist_build_setting_support: true)
Edit: we use a incremental integer as build number, maybe the plugin doesn't support it?
Command used: fastlane add_plugin versioning
user@computer:~$ system_profiler SPSoftwareDataType
Software:
System Software Overview:
System Version: macOS 10.12.4 (16E195)
Kernel Version: Darwin 16.5.0
Boot Volume: Mac
Boot Mode: Normal
Computer Name: computer
User Name: <redacted>
Secure Virtual Memory: Enabled
System Integrity Protection: Enabled
Time since boot: 1 day 15:41
I'm encountering an error installing this extension due to a Gem requirement.
user@computer:~/Downloads/wkd-native-master$ fastlane add_plugin versioning
+----------------------------+---------+------------------------------------+
| Used plugins |
+----------------------------+---------+------------------------------------+
| Plugin | Version | Action |
+----------------------------+---------+------------------------------------+
| fastlane-plugin-versioning | 0.2.6 | get_app_store_version_number |
| | | get_build_number_from_plist |
| | | get_info_plist_path |
| | | get_version_number_from_git_branch |
| | | get_version_number_from_plist |
| | | increment_build_number_in_plist |
| | | increment_version_number_in_plist |
+----------------------------+---------+------------------------------------+
[18:20:07]: Make sure to commit your Gemfile, Gemfile.lock and Pluginfile to version control
Installing plugin dependencies...
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /Users/user/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/unf_ext-0.0.7.3/ext/unf_ext
/Users/user/.fastlane/bin/bundle/bin/ruby -r ./siteconf20170414-18783-16bj6os.rb extconf.rb
checking for main() in -lstdc++... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/user/.fastlane/bin/bundle/bin/$(RUBY_BASE_NAME)
--with-static-libstdc++
--without-static-libstdc++
--with-stdc++lib
--without-stdc++lib
/Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable
file. (RuntimeError)
You have to install development tools first.
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:541:in `try_link0'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:556:in `try_link'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:735:in `try_func'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:966:in `block in have_library'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:911:in `block in checking_for'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:351:in `block (2 levels) in postpone'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:321:in `open'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:351:in `block in postpone'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:321:in `open'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:347:in `postpone'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:910:in `checking_for'
from /Users/user/.fastlane/bin/bundle/lib/ruby/2.2.0/mkmf.rb:961:in `have_library'
from extconf.rb:6:in `<main>'
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/Users/user/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/unf_ext-0.0.7.3/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /Users/user/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/unf_ext-0.0.7.3 for
inspection.
Results logged to
/Users/user/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/unf_ext-0.0.7.3/gem_make.out
An error occurred while installing unf_ext (0.0.7.3), and Bundler cannot continue.
Make sure that `gem install unf_ext -v '0.0.7.3'` succeeds before bundling.
Logs:
user@computer:~/Downloads/wkd-native-master$ cat /Users/user/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/unf_ext-0.0.7.3/mkmf.log
"/usr/bin/clang -o conftest -I/Users/user/.fastlane/bin/bundle/include/ruby-2.2.0/x86_64-darwin15 -I/Users/user/.fastlane/bin/bundle/include/ruby-2.2.0/ruby/backward -I/Users/user/.fastlane/bin/bundle/include/ruby-2.2.0 -I. -I/Users/crashlytics/buildAgent/work/2484be8b71880c21/bundle-2.13.0/fastlane_lib/dependencies/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -mmacosx-version-min=10.10 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -pipe conftest.c -L. -L/Users/user/.fastlane/bin/bundle/lib -L. -L/Users/crashlytics/buildAgent/work/2484be8b71880c21/bundle-2.13.0/fastlane_lib/dependencies/lib -fstack-protector -lruby-static -framework CoreFoundation -lpthread -ldl -lobjc "
clang: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk' [-Wmissing-sysroot]
In file included from conftest.c:1:
In file included from /Users/user/.fastlane/bin/bundle/include/ruby-2.2.0/ruby.h:33:
In file included from /Users/user/.fastlane/bin/bundle/include/ruby-2.2.0/ruby/ruby.h:29:
/Users/user/.fastlane/bin/bundle/include/ruby-2.2.0/ruby/defines.h:26:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5: return 0;
6: }
/* end */
I don't have MacOSX10.11.sdk but i do have:
user@computer:~/Downloads/wkd-native-master$ ls '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk'
SDKSettings.plist System usr
When I execute increment_version_number_in_xcodeproj(scheme: "MyApp", build_configuration_name: "Release", bump_type: 'minor')
I get the error
`set_version_number_using_scheme': \e[31m[!] undefined method `[]=' for nil:NilClass\e[0m (NoMethodError)
get_version_number_from_xcodeproj(scheme: "MyApp", build_configuration_name: "Release")
works and returns 3.3.0
Error
Traceback (most recent call last):
27: from /usr/local/Cellar/fastlane/2.181.0/libexec/bin/fastlane:23:in `<main>'
26: from /usr/local/Cellar/fastlane/2.181.0/libexec/bin/fastlane:23:in `load'
25: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/bin/fastlane:23:in `<top (required)>'
24: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/cli_tools_distributor.rb:122:in `take_off'
23: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
22: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
21: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
20: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
19: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
18: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
17: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
16: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
15: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
14: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
13: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
12: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
11: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
10: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane.rb:33:in `call'
9: from Fastfile:28:in `block (2 levels) in parsing_binding'
8: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
7: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
6: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
5: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
4: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
3: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
2: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
1: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-plugin-versioning-0.4.4/lib/fastlane/plugin/versioning/actions/increment_version_number_in_xcodeproj.rb:44:in `run'
/usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-plugin-versioning-0.4.4/lib/fastlane/plugin/versioning/actions/increment_version_number_in_xcodeproj.rb:71:in `set_version_number_using_scheme': undefined method `[]=' for nil:NilClass (NoMethodError)
27: from /usr/local/Cellar/fastlane/2.181.0/libexec/bin/fastlane:23:in `<main>'
26: from /usr/local/Cellar/fastlane/2.181.0/libexec/bin/fastlane:23:in `load'
25: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/bin/fastlane:23:in `<top (required)>'
24: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/cli_tools_distributor.rb:122:in `take_off'
23: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
22: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
21: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
20: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
19: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
18: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
17: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
16: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
15: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
14: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
13: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
12: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
11: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
10: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane.rb:33:in `call'
9: from Fastfile:28:in `block (2 levels) in parsing_binding'
8: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
7: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
6: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
5: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
4: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
3: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
2: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
1: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-plugin-versioning-0.4.4/lib/fastlane/plugin/versioning/actions/increment_version_number_in_xcodeproj.rb:44:in `run'
/usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-plugin-versioning-0.4.4/lib/fastlane/plugin/versioning/actions/increment_version_number_in_xcodeproj.rb:71:in `set_version_number_using_scheme': \e[31m[!] undefined method `[]=' for nil:NilClass\e[0m (NoMethodError)
I believe I have narrowed the error down to this line in increment_version_number_in_xcodeproj
but I'm not sure whats causing the error
project.build_settings["MARKETING_VERSION"] = next_version_number
I was able to get it working as intended by modifying the code for set_all_xcodeproj_version_numbers
and looping through each config and comparing it with the build_configuration_name
param I pass in
def self.set_version_number_using_scheme(params, next_version_number)
project = Xcodeproj::Project.open(params[:xcodeproj])
configs = project.objects.select { |obj| select_build_configuration_predicate(nil, obj) }
configs.each do |config|
if config.to_s === params[:build_configuration_name]
config.build_settings["MARKETING_VERSION"] = next_version_number
end
end
project.save
end
Targets
MyApp
Relevant Schemes
MyApp
Stg_MyApp
Relevant Build configurations
Release
StgRelease
Build Settings Marketing Version
info.plist
My setup
OSX 10.15.7
XCode 12.2
Fastlane 2.181.0
Versioning 0.4.4
I have a project with INFOPLIST_FILE
containing variables inside of it and apparently Xcodeproj doesn't support interpolation, so I'm getting this:
[01:34:14]: undefined method `[]' for nil:NilClass
[01:34:14]: Unable to find plist file at '…/$(inherited)/Project.plist'
On the other hand FastlaneCore::Project::build_settings
uses the suggested approach in the above issue and provides correctly interpolated results. Can you please consider using that instead?
mac-04:tools gelldur$ sudo fastlane add_plugin versioning
[14:48:35]: Plugin 'fastlane-plugin-versioning' was added to './fastlane/Pluginfile'
[14:48:35]: It looks like fastlane plugins are not yet set up for this project.
[14:48:35]: fastlane will create a new Gemfile at path 'Gemfile'
[14:48:35]: This change is necessary for fastlane plugins to work
[14:48:35]: Should fastlane modify the Gemfile at path 'Gemfile' for you? (y/n)
y
[14:48:47]: Successfully modified 'Gemfile'
[14:48:47]: Make sure to commit your Gemfile, Gemfile.lock and Pluginfile to version control
Installing plugin dependencies...
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /Users/gelldur/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/json-2.1.0/ext/json/ext/generator
/Users/gelldur/.fastlane/bin/bundle/bin/ruby -r ./siteconf20170613-66909-f3jt6o.rb extconf.rb
creating Makefile
current directory: /Users/gelldur/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/json-2.1.0/ext/json/ext/generator
make "DESTDIR=" clean
current directory: /Users/gelldur/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/json-2.1.0/ext/json/ext/generator
make "DESTDIR="
compiling generator.c
clang: warning: no such sysroot directory: '/Applications/Xcode-7.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk'
[-Wmissing-sysroot]
In file included from generator.c:1:
In file included from ./../fbuffer/fbuffer.h:5:
In file included from /Users/gelldur/.fastlane/bin/bundle/include/ruby-2.2.0/ruby.h:33:
In file included from /Users/gelldur/.fastlane/bin/bundle/include/ruby-2.2.0/ruby/ruby.h:29:
/Users/gelldur/.fastlane/bin/bundle/include/ruby-2.2.0/ruby/defines.h:26:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^
1 error generated.
make: *** [generator.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/gelldur/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/json-2.1.0 for inspection.
Results logged to /Users/gelldur/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/json-2.1.0/gem_make.out
An error occurred while installing json (2.1.0), and Bundler cannot continue.
Make sure that `gem install json -v '2.1.0'` succeeds before bundling.
mac-04:tools gelldur$ sudo gem install json -v '2.1.0'
Building native extensions. This could take a while...
Successfully installed json-2.1.0
Parsing documentation for json-2.1.0
unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/json/ext/generator.bundle, skipping
unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/json/ext/parser.bundle, skipping
1 gem installed
<details><summary>✅ fastlane environment ✅</summary>
### Stack
| Key | Value |
| --------------------------- | ------------------------------------------- |
| OS | 10.12.5 |
| Ruby | 2.2.4 |
| Bundler? | false |
| Git | git version 2.13.0 |
| Installation Source | ~/.fastlane/bin/bundle/bin/fastlane |
| Host | Mac OS X 10.12.5 (16F73) |
| Ruby Lib Dir | ~/.fastlane/bin/bundle/lib |
| OpenSSL Version | OpenSSL 1.0.2g 1 Mar 2016 |
| Is contained | false |
| Is homebrew | true |
| Is installed via Fabric.app | false |
| Xcode Path | /Applications/Xcode.app/Contents/Developer/ |
| Xcode Version | 8.3.3 |
### System Locale
| Variable | Value | |
| -------- | ----------- | - |
| LANG | en_US.UTF-8 | ✅ |
| LC_ALL | en_US.UTF-8 | ✅ |
| LANGUAGE | en_US.UTF-8 | ✅ |
### fastlane files:
<details><summary>`./fastlane/Appfile`</summary>
```ruby
# The Appfile can be used to specify information that's used across all fastlane
# tools, like your username or the app's bundle identifier.
#
# For more details, check out the documentation at:
# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md
# app_identifier "com.your.app" # the bundle identifier of your app
# apple_id "[email protected]" # Your Apple ID
# json_key_file "/path/to/your/downloaded/key.json" # GooglePlay
Gem | Version | Update-Status |
---|---|---|
fastlane | 2.38.1 | ✅ Up-To-Date |
Plugin | Version | Update-Status |
---|---|---|
fastlane-plugin-versioning | 0.2.7 | ✅ Up-To-Date |
Gem | Version |
---|---|
slack-notifier | 1.5.1 |
CFPropertyList | 2.3.5 |
colored2 | 3.1.2 |
nanaimo | 0.2.3 |
xcodeproj | 1.4.4 |
rouge | 1.11.1 |
xcpretty | 0.2.6 |
unicode-display_width | 1.1.3 |
terminal-table | 1.7.3 |
public_suffix | 2.0.5 |
addressable | 2.5.1 |
multipart-post | 2.0.0 |
word_wrap | 1.0.0 |
tty-screen | 0.5.0 |
babosa | 1.0.2 |
colored | 1.2 |
highline | 1.7.8 |
commander-fastlane | 4.4.4 |
faraday | 0.12.1 |
unf_ext | 0.0.7.4 |
unf | 0.1.4 |
domain_name | 0.5.20170404 |
http-cookie | 1.0.3 |
faraday-cookie_jar | 0.0.6 |
fastimage | 2.1.0 |
gh_inspector | 1.0.3 |
uber | 0.0.15 |
representable | 2.3.0 |
retriable | 2.1.0 |
mime-types-data | 3.2016.0521 |
mime-types | 3.1 |
hurley | 0.2 |
little-plugger | 1.1.4 |
multi_json | 1.12.1 |
logging | 2.2.2 |
jwt | 1.5.6 |
memoist | 0.15.0 |
os | 0.9.6 |
signet | 0.7.3 |
googleauth | 0.5.1 |
httpclient | 2.8.3 |
google-api-client | 0.9.28 |
json | 1.8.1 |
mini_magick | 4.5.1 |
multi_xml | 0.6.0 |
rubyzip | 1.2.1 |
security | 0.1.3 |
xcpretty-travis-formatter | 0.0.4 |
bundler | 1.14.6 |
faraday_middleware | 0.11.0.1 |
excon | 0.56.0 |
plist | 3.3.0 |
claide | 1.0.2 |
fastlane-plugin-versioning | 0.2.7 |
generated on: 2017-06-13
```I get an error whenever I try and do a sort on the array of environment variables prior to doing the rest of my work. Driving me crazy trying to figure out what is wrong.
schemeList = Dir.glob(".env.*")
schemeList = schemeList.sort
schemeList.each do |file|
Dotenv.overload(file)
yield
end
if ENV['SCHEME'] != nil
puts(ENV['SCHEME'])
build_number = get_build_number_from_xcodeproj(
target: ENV['SCHEME']
)
else
end
The "schemeList = schemeList.sort" causes it to error when trying to get the build number with the following:
bundler: failed to load command: fastlane (/usr/local/bin/fastlane)
NoMethodError: [!] undefined method resolved_build_setting' for nil:NilClass /Library/Ruby/Gems/2.3.0/gems/fastlane-plugin-versioning-0.4.2/lib/fastlane/plugin/versioning/actions/get_build_number_from_xcodeproj.rb:55:in
get_build_number_using_target'
/Library/Ruby/Gems/2.3.0/gems/fastlane-plugin-versioning-0.4.2/lib/fastlane/plugin/versioning/actions/get_build_number_from_xcodeproj.rb:17:in run' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:261:in
block (2 levels) in execute_action'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in execute_action' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:253:in
block in execute_action'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:227:in chdir' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:227:in
execute_action'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:157:in trigger_action_by_name' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/fast_file.rb:159:in
method_missing'
Fastfile:378:in block (2 levels) in parsing_binding' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/lane.rb:33:in
call'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:204:in try_switch_to_lane' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:146:in
trigger_action_by_name'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/fast_file.rb:159:in method_missing' Fastfile:391:in
block (3 levels) in parsing_binding'
Fastfile:368:in block in execute_for_all_envs' Fastfile:366:in
each'
Fastfile:366:in execute_for_all_envs' Fastfile:391:in
block (2 levels) in parsing_binding'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/lane.rb:33:in call' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:49:in
block in execute'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:45:in chdir' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/runner.rb:45:in
execute'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/lane_manager.rb:56:in cruise_lane' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/command_line_handler.rb:36:in
handle'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/commands_generator.rb:108:in block (2 levels) in run' /Library/Ruby/Gems/2.3.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in
call'
/Library/Ruby/Gems/2.3.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in run' /Library/Ruby/Gems/2.3.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in
run_active_command'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in run!' /Library/Ruby/Gems/2.3.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in
run!'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/commands_generator.rb:349:in run' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/commands_generator.rb:41:in
start'
/Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in take_off' /Library/Ruby/Gems/2.3.0/gems/fastlane-2.143.0/bin/fastlane:23:in
<top (required)>'
/usr/local/bin/fastlane:22:in load' /usr/local/bin/fastlane:22:in
<top (required)>'
If I remove the sort line, everything works. Everything else I run with the sort line in there seems to be perfectly fine, like using Gym, etc. I can also print the ENV['SCHEME'] and the ordered array with no problem. In addition, if I pass it just a hardcoded string as the target in:
build_number = get_build_number_from_xcodeproj(
target: ENV['SCHEME']
)
it works fine. Even though I can print out (put) that variable correctly so I know it is not nil.
Any help would be greatly appreciated.
Up until this past week or so, increment_build_number_in_plist has been working well. However, in the past few days I'm getting the following errors when attempting to increment:
[19:20:44]: --------------------------------------------
[19:20:44]: --- Step: latest_testflight_build_number ---
[19:20:44]: --------------------------------------------
[19:20:44]: Login to App Store Connect (USER_EMAIL)
[19:20:46]: Login successful
[19:20:50]: Fetching the latest build number for any version
[19:20:52]: Latest upload for version 0.6 on ios platform is build: 9
[19:20:52]: You passed invalid parameters to 'increment_build_number_in_plist'.
[19:20:52]: Check out the error below and available options by running `fastlane action increment_build_number_in_plist`
[19:20:52]: Failure incrementing build number, using project base value.
I haven't changed my fastlane actions in the interim; these are the relevant lines of code (simplified slightly):
latest_tf = latest_testflight_build_number(
platform: options[:platform]
)
build_num = latest_tf + CUSTOM_VAL
increment_build_number_in_plist({
build_number: build_num,
xcodeproj: proj
})
I've confirmed that build_num
does get set to a valid integer. If I comment out the build_number
parameter, then the command seems to work, though obviously it doesn't apply the desired custom build number, which is required in our CI/CD system.
I'm wondering if maybe this was just an update to Xcode & its agvtool
that may have caused this error.
Hi
When i call the following code:
version = get_build_number_from_plist(
target: scheme_name,
build_configuration_name: 'Release'
)
increment_build_number_in_plist(
target: scheme_name,
build_number: version + 1
)
I get the error:
undefined method `build_settings' for nil:NilClass
bundler: failed to load command: fastlane (/usr/local/bin/fastlane)
NoMethodError: [!] undefined method `build_settings' for nil:NilClass
Any idea of the cause is it to do with this plugin as my script works with this code commented out?
Right now, there's a fastlane action app_store_build_number
that can be used to fetch the build number that is live in the App Store, and there's a get_app_store_version_number
action in this plugin to fetch the version number. It seems unnecessary to have to call two different methods for what is essentially related information. I'd love if I could reduce this to one call in my Fastfile instead of two.
The setup is a library (specifically a private pod).
We have at the root directory the _Pods.xcodeproj, the fastlane dir and the Example folder (which contains the workspace and other files).
When trying to increment my library target, fastlane gives me the error :
increment_version_number_in_plist(
bump_type: type, # Automatically increment minor version number
xcodeproj: "_Pods.xcodeproj",
target: 'TEST' # orscheme
)
No such file or directory @ rb_sysopen - /Users/tnoah/Code/toto/Target Support Files/TEST/TEST-Info.plist
The path should be
/Users/tnoah/Code/toto/Example/Pods/Target Support Files/TEST/TEST-Info.plist
I assume it comes from the fact that the plugin does not support by default incrementing the version of a pod.
Is there a quickfix for this?
Thanks
I am using xcode 9
As part of the ci_build_number, is there a plan to get bitbucket pipeline build number. It is available as env variable $BITBUCKET_BUILD_NUMBER
Hi, I've just wonder how can I update major build number depending on the lane that is being run?
I have 3 different lanes, and I want override major number when gym the app.
I am trying to do so to change all targets version or build number at once:
def prepare_version(version)
increment_version_number_in_plist(
# specify specific version number (optional, omitting it increments patch version number)
version_number: version,
target: ['A', 'B', 'C']
)
end
What I have to do now:
def prepare_version(version)
increment_version_number_in_plist(
# specify specific version number (optional, omitting it increments patch version number)
version_number: version,
target: 'A'
)
increment_version_number_in_plist(
# specify specific version number (optional, omitting it increments patch version number)
version_number: version,
target: 'B'
)
increment_version_number_in_plist(
# specify specific version number (optional, omitting it increments patch version number)
version_number: version,
target: 'C'
)
end
Is there any proper way to do this?
Hey there, wondering if it's possible to just explicitly set the plist_path using this plugin? Problem I am facing is that the build number is updating my app target but can't find my notification target. Would be much simpler for me if I could just specify the paths to each of the info plists instead.
Thanks for the help!
Since version 0.2.6 I'm getting this exception with macOS target. It used to happen with 0.2.7 and I remember coming across a similar issue somewhere, apparently it was different. When I revert to 0.2.6, everything works.
/usr/local/opt/gem/gems/fastlane-plugin-versioning-0.2.8/lib/fastlane/plugin/versioning/actions/get_info_plist_path.rb:49:in `find_path_using_target': [!] undefined method `gsub' for nil:NilClass (NoMethodError)
from /usr/local/opt/gem/gems/fastlane-plugin-versioning-0.2.8/lib/fastlane/plugin/versioning/actions/get_info_plist_path.rb:18:in `run'
from /usr/local/opt/gem/gems/fastlane-plugin-versioning-0.2.8/lib/fastlane/plugin/versioning/actions/get_build_number_from_plist.rb:8:in `run'
from /Users/ianbytchek/Development/gifox/build/fastlane/actions/abstract.rb:66:in `get_build'
from /Users/ianbytchek/Development/gifox/build/fastlane/actions/abstract.rb:74:in `get_version_with_build'
from /Users/ianbytchek/Development/gifox/build/fastlane/actions/abstract.rb:30:in `get_archive_path'
from /Users/ianbytchek/Development/gifox/build/fastlane/actions/xcode_archive.rb:14:in `run'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/runner.rb:252:in `block (2 levels) in execute_action'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/runner.rb:230:in `block in execute_action'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/runner.rb:226:in `chdir'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/runner.rb:226:in `execute_action'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/runner.rb:148:in `trigger_action_by_name'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/fast_file.rb:146:in `method_missing'
from lanes/main.rb:5:in `block (2 levels) in parsing_binding'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/lane.rb:33:in `call'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/lane_manager.rb:52:in `cruise_lane'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/command_line_handler.rb:30:in `handle'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/commands_generator.rb:104:in `block (2 levels) in run'
from /usr/local/opt/gem/gems/commander-fastlane-4.4.5/lib/commander/command.rb:178:in `call'
from /usr/local/opt/gem/gems/commander-fastlane-4.4.5/lib/commander/command.rb:153:in `run'
from /usr/local/opt/gem/gems/commander-fastlane-4.4.5/lib/commander/runner.rb:476:in `run_active_command'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:64:in `run!'
from /usr/local/opt/gem/gems/commander-fastlane-4.4.5/lib/commander/delegates.rb:15:in `run!'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/commands_generator.rb:303:in `run'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/commands_generator.rb:42:in `start'
from /usr/local/opt/gem/gems/fastlane-2.58.0/fastlane/lib/fastlane/cli_tools_distributor.rb:66:in `take_off'
from /usr/local/opt/gem/gems/fastlane-2.58.0/bin/fastlane:20:in `<top (required)>'
from /usr/local/opt/gem/bin/fastlane:22:in `load'
from /usr/local/opt/gem/bin/fastlane:22:in `<main>'
[12:51:07]: ERROR: Asset validation failed (90062) This bundle is invalid. The value for key CFBundleShortVersionString [5.32.1] in the Info.plist file must contain a higher version than that of the previously approved version [5.32.1]. Please find more information about CFBundleShortVersionString at ...
It would be nice to fetch version before archive app.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.