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)


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

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.



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

def plist
  @plist
end

Class Method Details

.from_asn1(rawdat) ⇒ Object



17
18
19
# File 'lib/pliney/provisioning_profile.rb', line 17

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

.from_file(path) ⇒ Object



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

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

.plist_from_asn1(rawdat) ⇒ Object



11
12
13
14
15
# File 'lib/pliney/provisioning_profile.rb', line 11

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



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

def appid_name
    plist["AppIDName"]
end

#appid_prefixObject



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

def appid_prefix
    plist["ApplicationIdentifierPrefix"]
end

#creation_dateObject



32
33
34
# File 'lib/pliney/provisioning_profile.rb', line 32

def creation_date
    plist["CreationDate"]
end

#developer_cert_sha1_digestsObject



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

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

#developer_certificatesObject



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

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

#entitlementsObject



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

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

#expiration_dateObject



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

def expiration_date
    plist["ExpirationDate"]
end

#expired?Boolean

Returns:

  • (Boolean)


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

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

#nameObject



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

def name
    plist["Name"]
end

#provisioned_devicesObject



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

def provisioned_devices
    plist["ProvisionedDevices"]
end

#team_identifierObject



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

def team_identifier
    plist["TeamIdentifier"]
end

#team_nameObject



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

def team_name
    plist["TeamName"]
end

#ttlObject



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

def ttl
    plist["TimeToLive"]
end

#uuidObject



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

def uuid
    plist["UUID"]
end

#versionObject



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

def version
    plist["Version"]
end