Module: AnnFlavorCocoapods::PodfileHelper
- Defined in:
- lib/ann_flavor_cocoapods/podfile_helper.rb
Class Method Summary collapse
-
.bundle_id(flavor_key, project_root: Dir.pwd) ⇒ Object
Returns the bundle ID for a given flavor key, merging defaults.
-
.bundle_id_for_build_type(flavor_key, build_type, project_root: Dir.pwd) ⇒ Object
Returns the bundle ID for a given flavor key and build type (e.g. “debug”), applying build_types.id_suffix from either flavor or default.
-
.configure_firebase(installer_context, project_root: Dir.pwd) ⇒ Object
Call inside your Podfile to wire per-flavor Firebase GoogleService-Info.plist.
Class Method Details
.bundle_id(flavor_key, project_root: Dir.pwd) ⇒ Object
Returns the bundle ID for a given flavor key, merging defaults.
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/ann_flavor_cocoapods/podfile_helper.rb', line 29 def self.bundle_id(flavor_key, project_root: Dir.pwd) spec = SpecLoader.load(project_root) flavors = SpecLoader.ios_flavors(spec) default = SpecLoader.ios_default(spec) flavor_cfg = flavors[flavor_key.to_s] || {} merged = default.merge(flavor_cfg) base = merged['id'] || default['id'] || '' suffix = flavor_cfg['id_suffix'] || '' "#{base}#{suffix}" end |
.bundle_id_for_build_type(flavor_key, build_type, project_root: Dir.pwd) ⇒ Object
Returns the bundle ID for a given flavor key and build type (e.g. “debug”), applying build_types.id_suffix from either flavor or default.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/ann_flavor_cocoapods/podfile_helper.rb', line 44 def self.bundle_id_for_build_type(flavor_key, build_type, project_root: Dir.pwd) spec = SpecLoader.load(project_root) flavors = SpecLoader.ios_flavors(spec) default = SpecLoader.ios_default(spec) flavor_cfg = flavors[flavor_key.to_s] || {} merged = default.merge(flavor_cfg) # Merge build_types maps: flavor overrides default per key default_build_types = default.dig('build_types') || {} flavor_build_types = flavor_cfg.dig('build_types') || {} build_types = default_build_types.merge(flavor_build_types) base = merged['id'] || default['id'] || '' id_suffix = flavor_cfg['id_suffix'] || '' bt_suffix = build_types.dig(build_type.to_s, 'id_suffix') || '' "#{base}#{id_suffix}#{bt_suffix}" end |
.configure_firebase(installer_context, project_root: Dir.pwd) ⇒ Object
Call inside your Podfile to wire per-flavor Firebase GoogleService-Info.plist.
Example Podfile usage:
require 'ann_flavor_cocoapods'
AnnFlavorCocoapods::PodfileHelper.configure_firebase(self)
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/ann_flavor_cocoapods/podfile_helper.rb', line 11 def self.configure_firebase(installer_context, project_root: Dir.pwd) spec = SpecLoader.load(project_root) flavors = SpecLoader.ios_flavors(spec) default = SpecLoader.ios_default(spec) flavors.each do |flavor_key, flavor_cfg| merged = default.merge(flavor_cfg || {}) release_path = merged.dig('build_types', 'release', 'firebase', 'path') debug_path = merged.dig('build_types', 'debug', 'firebase', 'path') || release_path next unless release_path puts "ann-flavor-cocoapods: #{flavor_key} firebase release=#{release_path} debug=#{debug_path}" end end |