如何解决使用 fastlane 在构建设置下按方案递增营销版本
我正在使用 fastlane 和 versioning plugin 尝试根据每个方案的 version number/marketing version
下的 marketing version
为不同的方案设置 build settings
。
get_version_number_from_plist
按预期工作并为每个方案检索 marketing version
。我的预期结果是 increment_version_number_in_plist
增加 marketing version
中的 build settings
并在构建应用程序时使用该值,但是它抛出此错误
错误
Traceback (most recent call last):
28: from /usr/local/Cellar/fastlane/2.181.0/libexec/bin/fastlane:23:in `<main>'
27: from /usr/local/Cellar/fastlane/2.181.0/libexec/bin/fastlane:23:in `load'
26: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/bin/fastlane:23:in `<top (required)>'
25: 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'
24: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
23: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
22: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
21: 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!'
20: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
19: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
18: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
17: 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'
16: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
15: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
14: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
13: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
12: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
11: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/lane.rb:33:in `call'
10: from Fastfile:28:in `block (2 levels) in parsing_binding'
9: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
8: 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'
7: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
6: from /usr/local/Cellar/fastlane/2.181.0/libexec/gems/fastlane-2.181.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
5: 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'
4: 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'
3: 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'
2: 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_plist.rb:53:in `run'
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:95:in `set_version_number_using_scheme':
目标
MyApp
相关方案
MyApp
Stg_MyApp
相关构建配置
Release
StgRelease
get_version_number_from_plist
工作正常并返回 3.3.0
get_version_number_from_plist(scheme: "MyApp",build_configuration_name: "Release",plist_build_setting_support: true); // returns 3.3.0
increment_version_number_in_plist
抛出一个错误,我从错误日志中不清楚导致错误的原因
increment_version_number_in_plist(scheme: "MyApp",plist_build_setting_support: true,version_number:'3.4.0') // Error
构建设置营销版本
信息.plist
编辑
我相信我已经在 increment_version_number_in_xcodeproj 中的函数 set_version_number_using_scheme_working
中将错误缩小到这一行,但我不确定是什么导致了错误
project.build_settings["MARKETING_VERSION"] = next_version_number
通过修改 set_all_xcodeproj_version_numbers 的代码并循环遍历每个配置并将其与我传入的 build_configuration_name param
进行比较,我能够使其按预期工作
def self.set_version_number_using_scheme_working(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
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)