class MotionProvisioning::MobileProvision
Represents a .mobileprovision file on disk
Attributes
certificates[RW]
enabled_services[RW]
hash[RW]
Public Class Methods
new(path)
click to toggle source
@param path (String): Path to the .mobileprovision file
# File lib/motion-provisioning/mobileprovision.rb, line 7 def initialize(path) file = File.read(path) start_index = file.index("<?xml") end_index = file.index("</plist>") + 8 length = end_index - start_index self.hash = Plist::parse_xml(file.slice(start_index, length)) self.certificates = [] self.enabled_services = [] hash['DeveloperCertificates'].each do |certificate| self.certificates << certificate.read end end
Public Instance Methods
devices()
click to toggle source
# File lib/motion-provisioning/mobileprovision.rb, line 25 def devices hash['ProvisionedDevices'].map(&:downcase) end
name()
click to toggle source
# File lib/motion-provisioning/mobileprovision.rb, line 21 def name hash['Name'] end
valid?(certificate, app_entitlements)
click to toggle source
Checks wether the .mobileprovision file is valid by checking its expiration date, entitlements and certificates @param certificate (String): Path to the certificate file @param app_entitlements (Hash): A hash containing the app's entitlements @return Boolean
# File lib/motion-provisioning/mobileprovision.rb, line 34 def valid?(certificate, app_entitlements) return false if hash['ExpirationDate'] < DateTime.now if !certificates.include?(File.read(certificate)) Utils.log("Warning", "Your provisioning profile does not include your certificate. Repairing...") return false end true end