如何使用 fastlane 获取应用程序名称及其实时版本

How to get apps names and its live versions using fastlane

我需要用应用程序名称和它的实时版本做一个报告。 我的 apple id 在多个团队中被指定为管理员,我需要遍历每个应用商店团队中的所有应用并获取其名称和实时版本。

我只能使用以下脚本为一个开发团队获取应用程序名称和版本,现在我需要为我的 apple id 分配给的所有开发团队获取它。

lane :get_apps_names_and_versions do |options|
  require "spaceship" 
  all_apps = ""
  Spaceship::Tunes::Application.all.collect do |app|
  all_apps << "#{app.name} #{app.live_version.version} \n"
  end
  File.write('all_apps', all_apps[0..-3])
end 

我只是通过获取所有团队并遍历它们然后为每个团队获取应用程序来做到这一点。

lane :get_apps_names_and_versions do |options|
  require "spaceship" 
  clientTunes = Spaceship::Tunes.login(options[:appleID],options[:password])
  all_apps = ""
    clientTunes.teams.each do |team|
      ENV['FASTLANE_ITC_TEAM_ID'] = "#{team['contentProvider']['contentProviderId']}"
      Spaceship::Tunes.select_team
      Spaceship::Tunes::Application.all.collect do |app| 
        begin
          live_version = app.live_version.version 
          all_apps << "#{app.name} #{live_version} #{app.bundle_id}\n"
          UI.message "#{app.name} #{live_version} #{app.bundle_id}\n"
          rescue
            all_apps << "#{app.name} NO Live Version \n"
            UI.message "#{app.name} NO Live Version \n"
          end
        end
      end 
  File.write('all_apps', all_apps[0..-3])
  end

如果你像我一样想获得实时版本而不必使用 Spacehip 登录(例如在 CI/CD 管道中),并使用 API 键,你可以这样做它像这样:

app_store_build_number
live_version = lane_context[SharedValues::LATEST_VERSION]

检查“泳道变量”部分:https://docs.fastlane.tools/actions/app_store_build_number/