Class: Pliney::ProvisioningProfile

Inherits:
Object
  • Object
show all
Defined in:
lib/pliney/provisioning_profile.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(plist) ⇒ ProvisioningProfile

Returns a new instance of ProvisioningProfile.

Raises:

  • (ArgumentError)


36
37
38
39
# File 'lib/pliney/provisioning_profile.rb', line 36

def initialize(plist)
    raise ArgumentError.new("invalid plist") unless plist.is_a?(Hash)
    @plist = plist
end

Instance Attribute Details

#plistObject (readonly)

Returns the value of attribute plist.



34
35
36
# File 'lib/pliney/provisioning_profile.rb', line 34

def plist
  @plist
end

Class Method Details

.from_asn1(rawdat) ⇒ Object



26
27
28
# File 'lib/pliney/provisioning_profile.rb', line 26

def self.from_asn1(rawdat)
    new(plist_from_asn1(rawdat))
end

.from_file(path) ⇒ Object



30
31
32
# File 'lib/pliney/provisioning_profile.rb', line 30

def self.from_file(path)
    from_asn1(File.binread(path))
end

.plist_from_asn1(rawdat) ⇒ Object



20
21
22
23
24
# File 'lib/pliney/provisioning_profile.rb', line 20

def self.plist_from_asn1(rawdat)
    asn1 = OpenSSL::ASN1.decode(rawdat)
    plist_data = asn1.value[1].value[0].value[2].value[1].value[0].value
    return Pliney.parse_plist(plist_data)
end

Instance Method Details

#appid_nameObject



65
66
67
# File 'lib/pliney/provisioning_profile.rb', line 65

def appid_name
    plist["AppIDName"]
end

#appid_prefixObject



69
70
71
# File 'lib/pliney/provisioning_profile.rb', line 69

def appid_prefix
    plist["ApplicationIdentifierPrefix"]
end

#creation_dateObject



41
42
43
# File 'lib/pliney/provisioning_profile.rb', line 41

def creation_date
    plist["CreationDate"]
end

#developer_cert_sha1_digestsObject



61
62
63
# File 'lib/pliney/provisioning_profile.rb', line 61

def developer_cert_sha1_digests
    @dev_cert_digests ||= plist["DeveloperCertificates"].map{|cer| Digest::SHA1.hexdigest(cer)}
end

#developer_certificatesObject



57
58
59
# File 'lib/pliney/provisioning_profile.rb', line 57

def developer_certificates
    @developer_certs ||= plist["DeveloperCertificates"].map{|cer| OpenSSL::X509::Certificate.new(cer)}
end

#entitlementsObject



53
54
55
# File 'lib/pliney/provisioning_profile.rb', line 53

def entitlements
    @ents ||= EntitlementsMask.new(plist["Entitlements"])
end

#expiration_dateObject



45
46
47
# File 'lib/pliney/provisioning_profile.rb', line 45

def expiration_date
    plist["ExpirationDate"]
end

#expired?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/pliney/provisioning_profile.rb', line 49

def expired?
    not (creation_date.to_i .. expiration_date.to_i).include?(Time.now.to_i)
end

#nameObject



73
74
75
# File 'lib/pliney/provisioning_profile.rb', line 73

def name
    plist["Name"]
end

#provisioned_devicesObject



97
98
99
# File 'lib/pliney/provisioning_profile.rb', line 97

def provisioned_devices
    plist["ProvisionedDevices"]
end

#team_identifierObject



77
78
79
# File 'lib/pliney/provisioning_profile.rb', line 77

def team_identifier
    plist["TeamIdentifier"]
end

#team_nameObject



81
82
83
# File 'lib/pliney/provisioning_profile.rb', line 81

def team_name
    plist["TeamName"]
end

#ttlObject



85
86
87
# File 'lib/pliney/provisioning_profile.rb', line 85

def ttl
    plist["TimeToLive"]
end

#uuidObject



89
90
91
# File 'lib/pliney/provisioning_profile.rb', line 89

def uuid
    plist["UUID"]
end

#versionObject



93
94
95
# File 'lib/pliney/provisioning_profile.rb', line 93

def version
    plist["Version"]
end