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):
-
STPDFACompliance.h
-
STLogger.h
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):
-
STLogger.h
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.