Class: Fastlane::Actions::HexsignProfilesDownloadByBundleIdAction
- Inherits:
-
Action
- Object
- Action
- Fastlane::Actions::HexsignProfilesDownloadByBundleIdAction
- Defined in:
- lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb
Class Method Summary collapse
- .authors ⇒ Object
- .available_options ⇒ Object
- .category ⇒ Object
- .description ⇒ Object
- .details ⇒ Object
- .example_code ⇒ Object
- .is_supported?(platform) ⇒ Boolean
- .return_value ⇒ Object
- .run(params) ⇒ Object
Class Method Details
.authors ⇒ Object
25 26 27 |
# File 'lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb', line 25 def self. ["HexSign"] end |
.available_options ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb', line 46 def self. [ FastlaneCore::ConfigItem.new( key: :bundle_id, env_name: "HEXSIGN_BUNDLE_ID", description: "App bundle identifier (exact match)", optional: false, type: String ), FastlaneCore::ConfigItem.new( key: :team_id, env_name: "HEXSIGN_TEAM_ID", description: "Apple Developer team identifier — scopes the download across linked accounts", optional: true, type: String ), FastlaneCore::ConfigItem.new( key: :output_dir, env_name: "HEXSIGN_PROFILE_OUTPUT_DIR", description: "Directory to write the .mobileprovision files into", optional: true, type: String ) ] end |
.category ⇒ Object
91 92 93 |
# File 'lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb', line 91 def self.category :code_signing end |
.description ⇒ Object
21 22 23 |
# File 'lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb', line 21 def self.description "Download every provisioning profile for a given bundle identifier via the HexSign CLI." end |
.details ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb', line 29 def self.details <<~DETAILS Wraps `hexsign profiles download --bundle-id <ID> [--team-id <TID>]`. Returns an array of absolute paths to the downloaded `.mobileprovision` files. Survives profile rotation: you point at a bundle identifier rather than the UUID of a specific provisioning profile. Pass `team_id` when the same bundle id exists in more than one linked Apple account to avoid pulling profiles from the wrong team. The hexsign binary must be on PATH — install via `brew install hexsign` or the hexsign/hexsign-cli GitHub Action. Set HEXSIGN_CLIENT_ID and HEXSIGN_CLIENT_SECRET so the CLI runs in machine mode. DETAILS end |
.example_code ⇒ Object
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb', line 80 def self.example_code [ 'paths = hexsign_profiles_download_by_bundle_id( bundle_id: "com.example.app", team_id: "ABCDE12345", output_dir: "build/sign" ) # => ["build/sign/foo.mobileprovision", "build/sign/bar.mobileprovision"]' ] end |
.is_supported?(platform) ⇒ Boolean
76 77 78 |
# File 'lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb', line 76 def self.is_supported?(platform) %i[ios mac tvos watchos visionos].include?(platform) end |
.return_value ⇒ Object
72 73 74 |
# File 'lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb', line 72 def self.return_value "Array of absolute paths to the downloaded .mobileprovision files." end |
.run(params) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fastlane/plugin/hexsign/actions/hexsign_profiles_download_by_bundle_id.rb', line 9 def self.run(params) args = ["profiles", "download", "--bundle-id", params[:bundle_id]] args.push("--team-id", params[:team_id]) if params[:team_id] args.push("--output-dir", params[:output_dir]) if params[:output_dir] stdout = Helper::HexsignHelper.run(args) paths = stdout.split("\n").map(&:strip).reject(&:empty?) UI.success("Downloaded #{paths.size} provisioning profile(s) for bundle #{params[:bundle_id]}") paths end |