Class: ProvisionParser

Inherits:
Object
  • Object
show all
Defined in:
lib/ipa_utilities/Parsers.rb

Instance Method Summary collapse

Constructor Details

#initialize(provisionPath) ⇒ ProvisionParser



51
52
53
54
# File 'lib/ipa_utilities/Parsers.rb', line 51

def initialize provisionPath
  @provisionPath = provisionPath
  parse
end

Instance Method Details

#apnsEnviromentObject



119
120
121
# File 'lib/ipa_utilities/Parsers.rb', line 119

def apnsEnviroment
  isAPNSProduction ? "Production" : "Development (Sandbox)"
end

#appBundleIDObject



105
106
107
108
109
# File 'lib/ipa_utilities/Parsers.rb', line 105

def appBundleID
  var = @data["Entitlements"]["application-identifier"]
  var.slice!(@data["TeamIdentifier"].first + ".")
  var
end

#buildEnviromentObject



123
124
125
126
127
128
129
# File 'lib/ipa_utilities/Parsers.rb', line 123

def buildEnviroment
  if isBuildRelease
    isBuildDistro ? "Distribution" : "AdHoc"
  else
    "Development"
  end
end

#certificatesObject



81
82
83
# File 'lib/ipa_utilities/Parsers.rb', line 81

def certificates
  @data["DeveloperCertificates"]
end

#entitlementForSigningObject



131
132
133
134
135
136
# File 'lib/ipa_utilities/Parsers.rb', line 131

def entitlementForSigning
  filePath = File.expand_path "#{__FILE__}/../../resources/Original.Entitlements.plist"
  file = File.read filePath
  file.sub! "BUNDLE_ID", "#{teamIdentifier}.#{appBundleID}"
  file.sub! "GET_TASK_ALLOW", isBuildRelease ? "false" : "true"
end

#isAPNSandAppSameEnviromentObject



101
102
103
# File 'lib/ipa_utilities/Parsers.rb', line 101

def isAPNSandAppSameEnviroment
  isBuildRelease == isAPNSProduction
end

#isAPNSProductionObject



89
90
91
# File 'lib/ipa_utilities/Parsers.rb', line 89

def isAPNSProduction
  @data["Entitlements"]["aps-environment"] == "production"
end

#isBuildDistroObject



97
98
99
# File 'lib/ipa_utilities/Parsers.rb', line 97

def isBuildDistro
  @data["ProvisionedDevices"].nil?
end

#isBuildReleaseObject



93
94
95
# File 'lib/ipa_utilities/Parsers.rb', line 93

def isBuildRelease
  @data["Entitlements"]["get-task-allow"] == false
end

#parseObject



56
57
58
59
60
61
62
63
64
# File 'lib/ipa_utilities/Parsers.rb', line 56

def parse
  # read mobileprovision and convert it to plist
  `security cms -D -i #{@provisionPath} > tmp.plist`

  # Get info from plist
  plist = CFPropertyList::List.new
  plist = CFPropertyList::List.new(:file => "tmp.plist")
  @data = CFPropertyList.native_types(plist.value)
end

#provisionedDevicesObject



85
86
87
# File 'lib/ipa_utilities/Parsers.rb', line 85

def provisionedDevices
  @data["ProvisionedDevices"]
end

#signingIdentitiesObject



70
71
72
73
74
75
76
77
78
79
# File 'lib/ipa_utilities/Parsers.rb', line 70

def signingIdentities

  arr = []

  certificates.each do |var|
    arr << PemParser.signingIdentitiesWithBase64(Base64.encode64(var))
  end

  arr
end

#teamIdentifierObject



115
116
117
# File 'lib/ipa_utilities/Parsers.rb', line 115

def teamIdentifier
  @data["Entitlements"]["com.apple.developer.team-identifier"]
end

#teamNameObject



111
112
113
# File 'lib/ipa_utilities/Parsers.rb', line 111

def teamName
  @data["TeamName"]
end

#uuidObject



66
67
68
# File 'lib/ipa_utilities/Parsers.rb', line 66

def uuid
  @data["UUID"]
end