Permalink
Switch branches/tags
KrauseFx-patch-1 KrauseFx-patch-2 KrauseFx-patch-3 KrauseFx-patch-4 KrauseFx-patch-5 KrauseFx-patch-6 Tomoy-tomas_title_font_size add-context-for-scan-build-zip adding-changelog additional-options after-monogem app-icon-path before-monogem ci-test fastlane-janpio-managed_google_play fastlane-subfolder-match fix-adp-probs fix-fastlane-version human-readable-storage init janpio-circle_docs_artifact janpio-fix_coveralls janpio-fix_tunes2 janpio-is_compatible janpio-is_incompatible janpio-managed_google_play_extract_supply_client janpio-match_windows janpio-more_itunes_transporter_tests janpio-more_require_work janpio-path_nil_old janpio-path_nil janpio-slim_fastlane_core janpio-validate_play_store_json_key_2 joshdholtz-download_dsym-fix-build-id joshdholtz-fix-latest_testflight_build_number joshdholtz-frameit-ipad-pro-10_5-and-9_7 joshdholtz-get-and-filter-by-adb-device-name joshdholtz-make-gym-mac-again joshdholtz-no-spaces-in-ipa-name joshdholtz-remote-and-lint-configitem-is_string joshdholtz-snapshot-rows-by-screenshot json-api kms lane-warning master mgrebenets/swiftlint-quiet minuscorp-patch-1 more-require-work require-relative-best-require scorpion35-reviews_uptodate screen-grid select-scheme-on-setup setup-ci-match-readonly silence snatchev/inspect-circular-references swift-optionality swift-run-script-quotes swiftlint-quiet tablexi-webpush_certificates-rebase update-docs update-release-url updatedet version-bump-2.74.3 wip-pilot-submit-for-testers xcode9-snapshot-ready-for-config-item
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
259 lines (255 sloc) 17.3 KB
require 'fastlane_core/configuration/config_item'
require 'credentials_manager/appfile_config'
require_relative 'module'
module Gym
class Options
def self.available_options
return @options if @options
@options = plain_options
end
def self.plain_options
[
FastlaneCore::ConfigItem.new(key: :workspace,
short_option: "-w",
env_name: "GYM_WORKSPACE",
optional: true,
description: "Path to the workspace file",
verify_block: proc do |value|
v = File.expand_path(value.to_s)
UI.user_error!("Workspace file not found at path '#{v}'") unless File.exist?(v)
UI.user_error!("Workspace file invalid") unless File.directory?(v)
UI.user_error!("Workspace file is not a workspace, must end with .xcworkspace") unless v.include?(".xcworkspace")
end,
conflicting_options: [:project],
conflict_block: proc do |value|
UI.user_error!("You can only pass either a 'workspace' or a '#{value.key}', not both")
end),
FastlaneCore::ConfigItem.new(key: :project,
short_option: "-p",
optional: true,
env_name: "GYM_PROJECT",
description: "Path to the project file",
verify_block: proc do |value|
v = File.expand_path(value.to_s)
UI.user_error!("Project file not found at path '#{v}'") unless File.exist?(v)
UI.user_error!("Project file invalid") unless File.directory?(v)
UI.user_error!("Project file is not a project file, must end with .xcodeproj") unless v.include?(".xcodeproj")
end,
conflicting_options: [:workspace],
conflict_block: proc do |value|
UI.user_error!("You can only pass either a 'project' or a '#{value.key}', not both")
end),
FastlaneCore::ConfigItem.new(key: :scheme,
short_option: "-s",
optional: true,
env_name: "GYM_SCHEME",
description: "The project's scheme. Make sure it's marked as `Shared`"),
FastlaneCore::ConfigItem.new(key: :clean,
short_option: "-c",
env_name: "GYM_CLEAN",
description: "Should the project be cleaned before building it?",
is_string: false,
default_value: false),
FastlaneCore::ConfigItem.new(key: :output_directory,
short_option: "-o",
env_name: "GYM_OUTPUT_DIRECTORY",
description: "The directory in which the ipa file should be stored in",
default_value: "."),
FastlaneCore::ConfigItem.new(key: :output_name,
short_option: "-n",
env_name: "GYM_OUTPUT_NAME",
description: "The name of the resulting ipa file",
optional: true),
FastlaneCore::ConfigItem.new(key: :configuration,
short_option: "-q",
env_name: "GYM_CONFIGURATION",
description: "The configuration to use when building the app. Defaults to 'Release'",
default_value_dynamic: true,
optional: true),
FastlaneCore::ConfigItem.new(key: :silent,
short_option: "-a",
env_name: "GYM_SILENT",
description: "Hide all information that's not necessary while building",
default_value: false,
is_string: false),
FastlaneCore::ConfigItem.new(key: :codesigning_identity,
short_option: "-i",
env_name: "GYM_CODE_SIGNING_IDENTITY",
description: "The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'",
optional: true),
FastlaneCore::ConfigItem.new(key: :skip_package_ipa,
env_name: "GYM_SKIP_PACKAGE_IPA",
description: "Should we skip packaging the ipa?",
is_string: false,
default_value: false),
FastlaneCore::ConfigItem.new(key: :include_symbols,
short_option: "-m",
env_name: "GYM_INCLUDE_SYMBOLS",
description: "Should the ipa file include symbols?",
is_string: false,
type: Boolean,
optional: true),
FastlaneCore::ConfigItem.new(key: :include_bitcode,
short_option: "-z",
env_name: "GYM_INCLUDE_BITCODE",
description: "Should the ipa file include bitcode?",
is_string: false,
type: Boolean,
optional: true),
FastlaneCore::ConfigItem.new(key: :export_method,
short_option: "-j",
env_name: "GYM_EXPORT_METHOD",
description: "Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id",
is_string: true,
optional: true,
verify_block: proc do |value|
av = %w(app-store ad-hoc package enterprise development developer-id)
UI.user_error!("Unsupported export_method '#{value}', must be: #{av}") unless av.include?(value)
end),
FastlaneCore::ConfigItem.new(key: :export_options,
env_name: "GYM_EXPORT_OPTIONS",
description: "Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options",
is_string: false,
optional: true,
type: Hash,
skip_type_validation: true,
conflict_block: proc do |value|
UI.user_error!("'#{value.key}' must be false to use 'export_options'")
end),
FastlaneCore::ConfigItem.new(key: :export_xcargs,
env_name: "GYM_EXPORT_XCARGS",
description: "Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\"",
optional: true,
conflict_block: proc do |value|
UI.user_error!("'#{value.key}' must be false to use 'export_xcargs'")
end,
type: :shell_string),
FastlaneCore::ConfigItem.new(key: :skip_build_archive,
env_name: "GYM_SKIP_BUILD_ARCHIVE",
description: "Export ipa from previously built xarchive. Uses archive_path as source",
is_string: false,
type: Boolean,
optional: true),
FastlaneCore::ConfigItem.new(key: :skip_archive,
env_name: "GYM_SKIP_ARCHIVE",
description: "After building, don't archive, effectively not including -archivePath param",
is_string: false,
type: Boolean,
optional: true),
# Very optional
FastlaneCore::ConfigItem.new(key: :build_path,
env_name: "GYM_BUILD_PATH",
description: "The directory in which the archive should be stored in",
optional: true),
FastlaneCore::ConfigItem.new(key: :archive_path,
short_option: "-b",
env_name: "GYM_ARCHIVE_PATH",
description: "The path to the created archive",
optional: true),
FastlaneCore::ConfigItem.new(key: :derived_data_path,
short_option: "-f",
env_name: "GYM_DERIVED_DATA_PATH",
description: "The directory where built products and other derived data will go",
optional: true),
FastlaneCore::ConfigItem.new(key: :result_bundle,
short_option: "-u",
env_name: "GYM_RESULT_BUNDLE",
is_string: false,
description: "Should an Xcode result bundle be generated in the output directory",
default_value: false,
optional: true),
FastlaneCore::ConfigItem.new(key: :buildlog_path,
short_option: "-l",
env_name: "GYM_BUILDLOG_PATH",
description: "The directory where to store the build log",
default_value: "#{FastlaneCore::Helper.buildlog_path}/gym",
default_value_dynamic: true),
FastlaneCore::ConfigItem.new(key: :sdk,
short_option: "-k",
env_name: "GYM_SDK",
description: "The SDK that should be used for building the application",
optional: true),
FastlaneCore::ConfigItem.new(key: :toolchain,
env_name: "GYM_TOOLCHAIN",
description: "The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a)",
optional: true,
is_string: false),
FastlaneCore::ConfigItem.new(key: :destination,
short_option: "-d",
env_name: "GYM_DESTINATION",
description: "Use a custom destination for building the app",
optional: true),
FastlaneCore::ConfigItem.new(key: :export_team_id,
short_option: "-g",
env_name: "GYM_EXPORT_TEAM_ID",
description: "Optional: Sometimes you need to specify a team id when exporting the ipa file",
optional: true),
FastlaneCore::ConfigItem.new(key: :xcargs,
short_option: "-x",
env_name: "GYM_XCARGS",
description: "Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\"",
optional: true,
type: :shell_string),
FastlaneCore::ConfigItem.new(key: :xcconfig,
short_option: "-y",
env_name: "GYM_XCCONFIG",
description: "Use an extra XCCONFIG file to build your app",
optional: true,
verify_block: proc do |value|
UI.user_error!("File not found at path '#{File.expand_path(value)}'") unless File.exist?(value)
end),
FastlaneCore::ConfigItem.new(key: :suppress_xcode_output,
short_option: "-r",
env_name: "SUPPRESS_OUTPUT",
description: "Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path",
optional: true,
is_string: false),
FastlaneCore::ConfigItem.new(key: :disable_xcpretty,
env_name: "DISABLE_XCPRETTY",
description: "Disable xcpretty formatting of build output",
optional: true,
is_string: false),
FastlaneCore::ConfigItem.new(key: :xcpretty_test_format,
env_name: "XCPRETTY_TEST_FORMAT",
description: "Use the test (RSpec style) format for build output",
optional: true,
is_string: false),
FastlaneCore::ConfigItem.new(key: :xcpretty_formatter,
env_name: "XCPRETTY_FORMATTER",
description: "A custom xcpretty formatter to use",
optional: true,
verify_block: proc do |value|
UI.user_error!("Formatter file not found at path '#{File.expand_path(value)}'") unless File.exist?(value)
end),
FastlaneCore::ConfigItem.new(key: :xcpretty_report_junit,
env_name: "XCPRETTY_REPORT_JUNIT",
description: "Have xcpretty create a JUnit-style XML report at the provided path",
optional: true),
FastlaneCore::ConfigItem.new(key: :xcpretty_report_html,
env_name: "XCPRETTY_REPORT_HTML",
description: "Have xcpretty create a simple HTML report at the provided path",
optional: true),
FastlaneCore::ConfigItem.new(key: :xcpretty_report_json,
env_name: "XCPRETTY_REPORT_JSON",
description: "Have xcpretty create a JSON compilation database at the provided path",
optional: true),
FastlaneCore::ConfigItem.new(key: :analyze_build_time,
env_name: "GYM_ANALYZE_BUILD_TIME",
description: "Analyze the project build time and store the output in 'culprits.txt' file",
optional: true,
is_string: false),
FastlaneCore::ConfigItem.new(key: :xcpretty_utf,
env_name: "XCPRETTY_UTF",
description: "Have xcpretty use unicode encoding when reporting builds",
optional: true,
is_string: false),
FastlaneCore::ConfigItem.new(key: :skip_profile_detection,
env_name: "GYM_SKIP_PROFILE_DETECTION",
description: "Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used",
optional: true,
is_string: false,
default_value: false)
]
end
end
end