6

Gibt es eine Möglichkeit zu wissen, mit welcher Zertifikats App wurde unterzeichnet?Wie bekomme ich Zugriff auf iOS Developer Certificate von Code

Ich möchte App vor einem Rücktritt mit einem anderen Entwicklerzertifikat schützen.

Nehmen wir an, wir haben Client-Server-Anwendung. Und der Server behält den eindeutigen Schlüssel, der mit dem Entwicklerzertifikat verknüpft ist.

Also werden wir bei jeder Anfrage an den Server diesen Schlüssel weitergeben, und wenn die App mit einem anderen Entwicklerzertifikat zusammengebaut wird, wird der Server das wissen.

Dies ist möglich? Oder könnte es einen anderen Weg geben, vor dem Rücktritt zu schützen?

Antwort

1

Sie können das Zertifikat und das Bereitstellungsprofil zum Signieren der App kennen, indem Sie die Daten in der Datei embedded.mobileprovision, die im App-Bundle enthalten ist, manuell analysieren. Wenn Sie sich die Datei ansehen, werden Informationen zum Zertifikat und zum Bereitstellungsprofil angezeigt.

Hier ist ein Beispiel dafür, wie programmatisch aus Ihrer App eingebettet Profildaten zu erhalten:

NSString* bundleDirectory = [[NSBundle mainBundle] bundlePath]; 
NSString* db = [NSString stringWithFormat:@"%@/embedded.mobileprovision", bundleDirectory]; 
NSData* data = [NSData dataWithContentsOfFile:db]; 
// parse through the data to get your provisioning profile info. I'd recommend opening up the profile that is inside your .app to see how it is structured. 

JEDOCH:

Ich bin nicht sicher, warum diese kann da niemand tun bräuchten signieren Sie Ihre App erneut, sofern sie nicht über das richtige Zertifikat verfügen, das mit dem für die Paket-ID Ihrer App erstellten Bereitstellungsprofil übereinstimmt.

Die einzige Möglichkeit, das zu erhalten, besteht darin, Anmeldeinformationen für das Apple-Entwicklerkonto zu haben, das die Bundle-ID besitzt ODER wenn jemand Zugriff auf Ihr Zertifikat- und Bereitstellungsprofil hat.

Wenn letzteres aufgetreten ist, glaube ich, dass Sie dieses Provisioning-Profil innerhalb des Apple-Entwicklerkontos widerrufen und ein neues erstellen sollten, um die Sicherheitsverletzung zu umgehen. Auf diese Weise können Sie, solange Sie Zugriff auf das Entwicklerkonto haben, immer auf eine solche Sicherheitsverletzung stapfen, anstatt Code zwischen Client und Server zu schreiben, um danach zu suchen.

+0

was ist mit [dies] (https://gist.github.com/RichardBronosky/2878446) – wiruzx

+0

Ich habe das noch nie benutzt, aber ich bin mir nicht sicher, wie das es Vergangenheit Validierung und Einreichung durch Apple in den Laden zu machen es ist das Ziel, es in den Laden zu legen. Ich wäre definitiv interessiert zu wissen, ob das möglich ist, oder ob jemand eine App auf diese Weise aus erster Hand entführt hat. – foggzilla

Verwandte Themen