Troubleshooting
Invalid API Key
API keys are specific to the bundle identifier of your app (e.g. com.example.myapp). If your bundle identifier changes you will need to contact us at support@zappar.com, supplying the new bundle identifier, in order to obtain a new key.
Linker Errors
C++ Standard Libraries
Xcode should automatically link the C++ standard libraries when it builds your project. If for some reason it does not, and you receive linker errors as a result, you can ensure the correct behavior by creating (and including in the project) an empty '.mm' file. This can be done through the usual iOS File->New File->Objective-C file and ensuring the file type is '.mm'.
Automatic Framework Linking
Certain configurations of Build Settings can lead to linker errors like this:
"_xmlHasProp", referenced from:
There are a number of ways to fix this issue. You can either;
- change the
Link Frameworks Automatically
build setting toYes
; or, - explicitly link against the necessary frameworks.
If you choose the later option, the following frameworks should be added to the Linked Frameworks and Libraries
section under the General
tab of your project's settings:
- Accelerate.framework
- AddressBook.framework
- AddressBookUI.framework
- ARKit.framework (mark as Optional)
- AudioToolbox.framework
- AVKit.framework
- AVFoundation.framework
- CFNetwork.framework
- CoreMedia.framework
- CoreMotion.framework
- CoreVideo.framework
- EventKit.framework
- EventKitUI.framework
- libsqlite.tbd
- libxml2.tbd
- libz.tbd
- MessageUI.framework
- MobileCoreServices.framework
- OpenAL.framework
- OpenGLES.framework
- QuartzCore.framework
- SystemConfiguration.framework
- Twitter.framework
- UIKit.framework
- WebKit.framework
Unrecognized Selector Runtime Error
You may receive an error like this when instantiating the Zappar component at runtime:
+[NSData erDataFromBase64String:]: unrecognized selector sent to class
To fix this issue add -ObjC
to your project's "Other Linker Flags" setting.