FileMaker iOS SDK in Version 19 and MBS Plugin
When you try the FileMaker iOS SDK from FileMaker 19 and you like to use our plugin, you may need to follow some simple steps:
- You download the SDK in the Claris Community. Login and developer membership needed. For this blog post we use iOSAppSDKPackage in version 19.0.10088.
- After expanding, you may remove quarantine for the folder with Terminal and xattr command:
xattr -cr /Users/cs/Desktop/iOSAppSDKPackage_19.0.10088
- We run the "./makeprojdir test test de.monkeybreadsoftware.test" command in the Terminal in the folder to create the project files for our test project. Please change your identifier and project name.
- The project opens in Xcode and we can pick a target simulator and just run it.
- In project settings (click first item in the left side list), pick the tab "Signing & Capabilities" and select your bundle identifier and your team. Xcode may repair certificates if needed.
- We use plugins as frameworks (Requirement for iOS App Store), so we create a Frameworks folder in the project folder next to the Plug-Ins folder. Please copy the simulation version of the MBS.fmplugin.framework there, optionally for push notifications the MBSInit.framework one, too.
- Drag & Drop the Frameworks folder into the project items list in left side of the Xcode window. In the popup make sure the copy checkbox is cleared, add to target has your target name checked and create folder references is checked. The Frameworks folder appears in blue in the side list, not orange.
- After building you can right click on the app in the Product folder in the left side bar and show it in Finder. Then look inside the package and check if Frameworks folder has the MBS Plugin file.
- You can do code signing of our plugin before or while building. To do it while building, you can go to project settings (click first item in the left side list), then click Build Phases tab and there scroll down to "Install and Codesign Plugins" section. There edit the script by changing Plugins to Frameworks in the path used there:
find "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Frameworks" -depth 1 -print0 | while read -d $'\0' path; do codesign -f -s "${CODE_SIGN_IDENTITY}" "$path" done
- Now run it and the plugin should show as installed plugin.
- To make MBSInit.framework ask for notification, you go to the General tab of project settings. There is a section for "Frameworks, Libraries and, Embedded Content". There you can click plus button on the bottom and select the MBSInit framework. The Embed setting should be Embed & Sign. When this is done, the dialog shows up.
Trouble Shooting
- You may need to buy an Apple Developer membership. Please don't do this with your normal Apple ID, but make a newer one, e.g. developer@YourCompany.com
- MBS Plugin in version 10.4 for iOS is broken and won't load. Sorry, we made a linking error. Use older or newer version. 10.5pr1 should come early October.
- In Xcode preferences dialog, please login to your apple developer account. So the repair features can work in Xcode with all the certificates.
- The plugin will load unsigned in simulator, but device only loads signed plugins.
- For App Store the application and plugins need all be signed using the same certificate and provided as .framework in the Frameworks folder. If you have the plugin in Plugins folder, the automatic tests for App Store will reject the application.
- If compilation fails, just hit run again or please use Clean command first and build again. Often this repairs an issue.
- When quitting simulator, the iOS app may crash and break into debugger. Just ignore it and press stop button.
- Each version of the FileMaker SDK is built with a specific Xcode version. Best you use that version to build your app and you may not upgrade Xcode as that may break it.
See older blog posts and video:
- FileMaker based iOS App to the App Store
- Using MBS Plugin with FileMaker iOS SDK
- Push Notifications for FileMaker iOS SDK
- Document Camera Scan functions for FileMaker iOS SDK
- Video: FileMaker iOS SDK and MBS Plugin
Please do not hesitate to contact us with questions.