class FIR::Parser::Ipa::App
Public Class Methods
new(path, is_stored = false)
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 63 def initialize(path, is_stored = false) @path = path @is_stored = is_stored end
Public Instance Methods
basic_info()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 76 def basic_info @basic_info ||= { type: 'ios', identifier: identifier, name: name, display_name: display_name, build: version.to_s, version: short_version.to_s, devices: devices, release_type: release_type, distribution_name: distribution_name } end
devices()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 156 def devices mobileprovision['ProvisionedDevices'] if has_mobileprovision? end
display_name()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 103 def display_name info['CFBundleDisplayName'] end
distribution_name()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 160 def distribution_name "#{mobileprovision['Name']} - #{mobileprovision['TeamName']}" if has_mobileprovision? end
full_info(options)
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 68 def full_info(options) if options.fetch(:full_info, false) basic_info.merge!(icons: tmp_icons) end basic_info end
has_mobileprovision?()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 144 def has_mobileprovision? File.file? mobileprovision_path end
hide_developer_certificates()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 152 def hide_developer_certificates mobileprovision.delete('DeveloperCertificates') if has_mobileprovision? end
icons()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 119 def icons @icons ||= begin icons = [] info['CFBundleIcons']['CFBundlePrimaryIcon']['CFBundleIconFiles'].each do |name| icons << get_image(name) icons << get_image("#{name}@2x") end icons.delete_if &:! rescue NoMethodError [] end end
identifier()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 99 def identifier info['CFBundleIdentifier'] end
info()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 90 def info @info ||= CFPropertyList.native_types( CFPropertyList::List.new(file: File.join(@path, 'Info.plist')).value) end
mobileprovision()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 132 def mobileprovision return unless has_mobileprovision? return @mobileprovision if @mobileprovision cmd = "security cms -D -i \"#{mobileprovision_path}\"" begin @mobileprovision = CFPropertyList.native_types(CFPropertyList::List.new(data: `#{cmd}`).value) rescue CFFormatError @mobileprovision = {} end end
mobileprovision_path()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 148 def mobileprovision_path @mobileprovision_path ||= File.join(@path, 'embedded.mobileprovision') end
name()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 95 def name info['CFBundleName'] end
release_type()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 164 def release_type if @is_stored 'store' else if has_mobileprovision? if devices 'adhoc' else 'inhouse' end end end end
short_version()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 111 def short_version info['CFBundleShortVersionString'] end
tmp_icons()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 115 def tmp_icons icons.map { |data| generate_tmp_icon(data, :ipa) } end
version()
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 107 def version info['CFBundleVersion'] end
Private Instance Methods
get_image(name)
click to toggle source
# File lib/fir/util/parser/ipa.rb, line 180 def get_image(name) path = File.join(@path, "#{name}.png") return nil unless File.exist?(path) path end