Delphi Mobile und iOS 8.1.3

Update: Wenn die in diesem Blog-Eintrag dargestellte Lösung nicht funktionieren sollte, empfiehlt sich ein Blick in das Blog von Sarina DuPont (Produktmanagerin Embarcadero). Sie hat noch einen alternativen Vorschlag parat, der dann zum Tragen kommt, wenn die App beispielsweise in einem Team entwickelt wird.

Gerade gestern wurde iOS 8.1.3 veröffentlicht und jeder, der sein mobiles Gerät (iPhone, iPad, iPod Touch) bereits aktualisiert hat und nun mit Delphi eine Anwendung installieren möchte, sieht sich mit folgender Fehlermeldung konfrontiert:

“Unable to install package. (e800003a)” … typischer Fall von “hm – gestern ging’s noch“. Ursache ist die Korrektur eines Fehlers in vorherigen Versionen von iOS, der es Angreifern unter gewissen Umständen ermöglichte, die Rechte anderer Anwendungen zu kapern (http://support.apple.com/en-us/HT204245). Apple hat also die Spielregeln geändert und in den Entitlements muss ein neuer Eintrag vermerkt werden. Diesen können wir per Hand anlegen und müssen das pro Projekt auch nur einmalig erledigen.

Im Projektverzeichnis findet sich die Datei “Entitlements.TemplateiOS.xml” (falls sie nicht da ist, einfach mal das Projekt speichern, neu erzeugen und versuchen zu starten). Diese Datei muss editiert werden – jedoch zwingend mit einem Editor, der die OSX-/Unix-kompatiblen Zeilenumbrüche beibehält. Notepad ist ausdrücklich nicht geeignet. Die Delphi-IDE taugt hierfür hervorragend – einfach per Drag&Drop o.g. XML-Datei in die IDE ziehen und dann dort editieren.

Der Datei fügen wir zwei Zeilen hinzu:

<plist version="1.0">
<dict>
	<%getTaskAllowKey%>
	<key>application-identifier</key>	<string>XXXXXXXXXX.$(ModuleName)</string>	<%applicationIdentifier%>
	<%pushNotificationKey%>
	<%keychainAccessGroups%>
</dict>
</plist>


Die Sequenz “XXXXXXXXXX” ist zu ersetzen mit dem persönlichen Application-Prefix, welches man entweder im Mitglieder-Bereich des Apple DevCenters findet oder aber auch in der Schlüsselbundverwaltung seines Macs beim jeweiligen Entwickler-Profil. Es geht um den Wert, der als “Organizational Unit” gelistet wird:

 

Danach lässt sich die Anwendung wieder wie gewohnt auf das Gerät spielen. Wir können davon ausgehen, dass dies auch bei iOS 8.2, welches in absehbarer Zeit erscheinen wird, erforderlich sein wird.

0
Daniel Wolf

About the Author:

Daniel Wolf ist als Software-Architekt im Miniatur Wunderland Hamburg tätig, war zuvor viele Jahre als technischer Berater tätig und spricht regelmäßig auf Konferenzen. Er betreibt das Forum "Delphi-PRAXiS". » Mehr Details zur Person
  Verwandte Blog-Einträge
  • No related posts found.