signoAPI iOS was built for the following platforms and can be used for the following devices:
-
ios-arm64 and ios-arm64_x86_64-simulator
-
iPad and iPhone with iOS 12 or later
The signoAPI iOS consists of two components that need to be used in a custom project:
To use the SignoPdfSigner component, the SignoPdfSigner.xcframework is required. For each platform (iOS and iOS Simulator), this framework contains a static libSignoPDFSigner_x_x_x.a library and the following header files (depending on the functionality used, only some of the header files listed may be needed):
-
STPDFACompliance.h
-
STLogger.h
To use the SignoSignatureCapture component, the SignoSignatureCapture.xcframework is required. For each platform (iOS and iOS Simulator), this framework contains a static library libSignoSignatureCapture_x_x_x.a and the following header files (depending on the functionality used, only some of the header files listed may be needed):
-
STLogger.h
The following options must be selected in both project settings:
-
Project > Build Settings > Linking > Other Linker Flags: –lc++ and -ObjC
The following library must be referenced for both components:
-
libiconv.tbd or libiconv.dylib
The CocoaLumberJack logging framework is used for logging in the signoAPI iOS. CocoaLumberJack is integrated in the demo project included in delivery as Cocoapod. To open the demo project, it is therefore necessary to use the xcworkspace file instead of the xcodeproj file. For more information on the CocoaLumberJack logging framework, visit the following link:
The images required for the user interface do not exist in the XCFrameworks. Instead, they must be compiled into the app. This facilitates the easy use of custom images. The supplied demo apps contain images in the folder Assets.xcassets, which can of course be used. The dimensions and file names of the custom images must correspond to those of the existing images.
General information
The coordinates are always based on the coordinate system used by the API. This always has a resolution of 72 dpi and the point 0/0 is located in the top left. The API converts the coordinates internally into the ‘user space’ of a PDF, in which the coordinate origin is located in the bottom left.
Bitcode support
The libraries are built with Bitcode support. Integrating Bitcode allows Apple to compile the app’s binary file even more efficiently for different device versions without having to upload a new version of the app to the App Store.
Bitcode support can be activated or deactivated in your app as follows:
-
Click ‘Build Settings’ in the top toolbar of ‘Project Navigator’.
-
Activate ‘All’ in the toolbar under it.
-
Set the ‘Enable Bitcode’ option in the ‘Build Options’ section to ‘YES’ or ‘NO’.
Checking Bitcode
Open a terminal, navigate to the signoAPI_iOS_x.x.x/signoAPI/ SignoPDFSigner.xcframework/ios-arm64 folder and check the available architectures that are supported by the SDK with the following CLI command.
$ lipo –info libSignoPDFSigner_x_x_x.a
Non-fat file: libSignoPDFSigner_x.x.x.a is a architecture: arm64
Check whether Bitcode support exists for a specific architecture by using the following command:
$ otool –arch arm64 –l libSignoPDFSigner_x_x_x.a | grep LLVM
segname __LLVM
or
$ otool –arch arm64 –l libSignoPDFSigner_x_x_x.a | grep bitcode
segname __bitcode
Removing Bitcode
A disadvantage of Bitcode support is that it makes the SDK larger. Xcode offers the ‘bitcode_strip’ CLI command to remove Bitcode and reduce the SDK size. This can be used as follows:
$ xcrun bitcode_strip –r libSignoPDFSigner_x_x_x.a –o libSignoPDFSigner _x_x_x.a
Whether Bitcode support has been successfully removed can be determined either by checking the SDK size or using the ‘otool’ CLI command as described above. The file size should be significantly smaller than the original file.