signoAPI iOS – Systemvoraussetzung und Dokumentation

Das signoAPI iOS wurde für folgende Plattformen gebaut und kann auf folgenden Geräten verwendet werden:

  • ios-arm64 und ios-arm64_x86_64-simulator

  • iPad und iPhone mit iOS 12 und neuer

Das signoAPI iOS besteht aus zwei Komponenten, die im eigenen Projekt verwendet werden müssen.

Um die Komponente SignoPdfSigner einzusetzen, wird das SignoPdfSigner.xcframework benötigt. Für jede Plattform (iOS und iOS-Simulator) enthält dieses Framework jeweils eine statische Bibliothek libSignoPDFSigner_x_x_x.a und die folgenden Header-Dateien (je nach verwendeter Funktionalität werden nicht alle aufgeführten Header-Dateien benötigt):

Um die Komponente SignoSignatureCapture einzusetzen, wird das SignoSignatureCapture.xcframework benötigt. Für jede Plattform (iOS und iOS-Simulator) enthält dieses Framework jeweils eine statische Bibliothek libSignoSignatureCapture_x_x_x.a und die folgenden Header-Dateien (je nach verwendeter Funktionalität werden nicht alle aufgeführten Header-Dateien benötigt):

In beiden Projekteinstellungen müssen folgende Optionen vorgenommen werden:

  • Projekt > Build Settings > Linking > Other Linker Flags: –lc++ und -ObjC

Für beide Komponenten muss folgende Bibliothek referenziert werden:

  • libiconv.tbd oder libiconv.dylib

Für das Logging im signoAPI iOS wird das CocoaLumberJack Logging-Framework eingesetzt. CocoaLumberJack wird ins mitgelieferte Demoprojekt als Cocoapod eingebunden. Daher ist zum Öffnen des Demoprojekts die xcworkspace-Datei anstelle der xcodeproj-Datei zu verwenden. Unter folgendem Link können weitere Informationen zum CocoaLumberJack Logging-Framework gefunden werden:

Die benötigten Bilder für die Benutzeroberfläche sind nicht in den XCFrameworks vorhanden, sondern müssen in die App kompiliert werden. Dadurch ist es einfach möglich, eigene Bilder zu verwenden. In den mitgelieferten Demo-Apps sind Bilder im Ordner Assets.xcassets enthalten, die selbstverständlich verwendet werden können. Eigene Bilder müssen in den Abmessungen und im Dateinamen den vorhandenen Bildern entsprechen.

Allgemeine Hinweise

Die Koordinaten beziehen sich immer auf das vom API verwendete Koordinatensystem. Dieses hat grundsätzlich die Auflösung von 72 dpi und der Punkt 0/0 ist oben links. Das API konvertiert die Koordinaten intern in den sog. „user space“ eines PDFs, bei dem der Koordinatenursprung unten links ist.

Bitcode-Unterstützung

Die Bibliotheken wurden mit Bitcode-Unterstützung gebaut. Die Einbindung von Bitcode ermöglicht Apple, die Binärdatei der App für die unterschiedlichen Gerät-Varianten noch mal effizienter kompilieren zu können, ohne dass eine neue Version der App in den App-Store hochgeladen werden muss.

Die Bitcode-Unterstützung kann in Ihrer App folgendermaßen aktiviert oder deaktiviert werden:

  • Klicken Sie im „Project Navigator” in der oberen Leiste auf „Build Settings”.

  • Aktivieren Sie in der darunter liegenden Leiste „All”.

  • Stellen Sie die Option „Enable Bitcode” im Bereich „Build Options” auf „YES” oder „NO”.

Bitcode überprüfen

Öffnen Sie ein Terminal und navigieren Sie zum Ordner signoAPI_iOS_x.x.x/signoAPI/ SignoPDFSigner.xcframework/ios-arm64 und überprüfen Sie durch den folgenden Kommandozeilenbefehl verfügbare Architekturen, die vom SDK unterstützt werden.

$ lipo –info libSignoPDFSigner_x_x_x.a

Non-fat file: libSignoPDFSigner_x.x.x.a is a architecture: arm64

Die Überprüfung, ob die Bitcode-Unterstützung für eine bestimmte Architektur existiert:

$ otool –arch arm64 –l libSignoPDFSigner_x_x_x.a | grep LLVM

  segname __LLVM

Oder

$ otool –arch arm64 –l libSignoPDFSigner_x_x_x.a | grep bitcode

  segname __bitcode

Bitcode entfernen

Ein Nachteil bei der Bitcode-Unterstützung ist, dass sie zur Vergrößerung des SDKs führt. Um den Bitcode zu entfernen und somit die Größe des SDKs zu reduzieren, bietet Xcode den Kommandozeilenbefehl „bitcode_strip”; dies kann z. B. folgendermaßen benutzt werden:

$ xcrun bitcode_strip –r libSignoPDFSigner_x_x_x.a –o libSignoPDFSigner _x_x_x.a

Ob die Bitcode-Unterstützung erfolgreich entfernt wurde, lässt sich entweder durch die Überprüfung der Größe des SDKs oder mit dem Kommandozeilenbefehl „otool”, wie oben beschrieben, feststellen. Die Dateigröße sollte erheblich kleiner als die ursprüngliche Datei sein.