LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I...

74
LCFM Native User Guide LCFM Native User Guide LCFM Native Introduction Preparation - Important Notes FileMaker Server Prerequisites Android iOS License Agreement Build Process Choose Project Choose Solution Choose Layouts Choose Tables Sync Deploy Server Deploy Standalone Report Advanced Settings Troubleshooting Feature Support Script Steps - Account AddAccount ChangePassword DeleteAccount EnableAccount ReLogin ResetAccountPassword Script Steps - Control AllowUserAbort InstallOnTimerScript PauseScript PerformScriptOnServer ResumeScript SetErrorCapture Script Steps - Editing Clear Copy LCFM Native User Guide 3/11/19 1

Transcript of LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I...

Page 1: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

LCFM Native User GuideLCFM Native User GuideLCFM Native

IntroductionPreparation - Important Notes

FileMaker Server

Prerequisites

AndroidiOS

License AgreementBuild Process

Choose ProjectChoose SolutionChoose LayoutsChoose TablesSyncDeploy ServerDeploy StandaloneReport

Advanced SettingsTroubleshootingFeature Support

Script Steps - Account

AddAccountChangePasswordDeleteAccountEnableAccountReLoginResetAccountPassword

Script Steps - Control

AllowUserAbortInstallOnTimerScriptPauseScriptPerformScriptOnServerResumeScriptSetErrorCapture

Script Steps - Editing

ClearCopy

LCFM Native User Guide 3/11/19

1

Page 2: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

CutPastePerformFindReplaceSelectAllUndoRedo

Script Steps - Fields

ExportFieldContentsExportFieldContentsToFileInsertFileIntoVariableInsertFromDeviceBarCodeFromCameraInsertFromDeviceBarCodeFromFieldInsertFromDeviceMusicLibraryInsertFromDevicePhotoLibraryInsertFromIndexInsertFromLastVisitedInsertObjectRelookupFieldContentsReplaceFieldContentsWithSerialNumbersSetNextSerialValueUpdateLink

Script Steps - Files

CloseFileCloseODBCDataSourceConvertFileNewFileOpenFileOpenFileWithDialogOpenODBCDataSourceRecoverFileSaveACopyAsSaveACopyAsToFileSetMultiUserSetUseSystemFormats

Script Steps - Foundsets

OmitMultipleRecordsSortRecords

Script Steps - Menus

OpenEditSavedFindsOpenFileOptionsOpenFindReplaceOpenHelpOpenHostsOpenManageContainersOpenManageDatabaseOpenManageDataSources

LCFM Native User Guide 3/11/19

2

Page 3: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

OpenManageLayoutsOpenManageThemesOpenManageValueListsOpenMyAppsOpenPreferencesOpenScriptWorkspaceOpenSharingUploadtoFileMakerServer

Script Steps - Miscellaneous

AllowFormattingBarAVPlayerPlayFieldAVPlayerPlayObjectAVPlayerPlayURLAVPlayerSetOptionsAVPlayerSetPlaybackStateClearLocalNotificationConfigureLocalNotificationConfigureRegionMonitorScriptGeolocationConfigureRegionMonitorScriptIbeaconDialPhoneExecuteSQLFlushCacheToDiskGet (Directory)InstallMenuSetOpenURLPerformAppleScriptRefreshObjectRefreshPortalSendDDEExecuteFileSendDDEExecuteTopicSendEventWithFileSendEventWithMessageSendMailSetLayoutObjectAnimationSetWebViewer

Script Steps - Navigation

ClosePopoverEnterPreviewModeGoToFirstPortalRowGoToLastPortalRowGoToLayoutGoToNextPortalRowGoToPortalRowNumberGoToPreviousPortalRowGoToRecordRequestPageNumberGoToRelatedRecord

Script Steps - Print

LCFM Native User Guide 3/11/19

3

Page 4: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

PrintPrintSetup

Script Steps - Records

CommitRecordsRequestsCopyAllRecordsDeleteAllRecordsDeletePortalRowDeleteRecordRequestDuplicateRecordRequestExportRecordsImportRecordsRevertRecordRequestSaveRecordsAsExcelSaveRecordsAsPDFSaveRecordsAsSnapshotLinkTruncateTable

Script Steps - Spelling

CheckCurrentFieldSelectionCheckFoundSetCheckRecordCheckSelectionCorrectWordEditUserDictionarySelectDictionariesSpellingOptions

Script Steps - Windows

AdjustWindowArrangeAllWindowsCloseWindowEnableTouchKeyboardMoveResizeWindowNewWindowRefreshWindowScrollWindowSetAllowedOrientationsSetZoomLevelShowHideMenubarShowHideTextRulerShowHideToolbarsViewAs

Functions - Aggregate

ExtendGet (Summary)Last

LCFM Native User Guide 3/11/19

4

Page 5: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Functions - Container

CryptAuthCodeCryptDecryptCryptDecryptBase64CryptDigestCryptEncryptCryptEncryptBase64Get (ContainerAttribute)Get (Height)Get (Thumbnail)Get (Width)VerifyContainer

Functions - Context

Get (AccountExtendedPrivileges)Get (AccountGroupName)Get (AccountPrivilegeSetName)Get (ActiveModifierKeys)Get (AllowFormattingBarState)Get (ApplicationLanguage)Get (ConnectionAttributes)Get (ConnectionState)Get (CurrentExtendedPrivileges)Get (CurrentMenuSetName)Get (CurrentPrivilegeSetName)Get (DocumentsPathListing)Get (EncryptionState)Get (FileMakerPath)Get (HighConstrastState)Get (HighContrastColor)Get (HostApplicationVersion)Get (HostIPAddress)Get (HostName)Get (InstalledFMPlugins)Get (LayoutAccess)Get (MenubarState)Get (ModifiedFields)Get (MultiUserState)Get (NetworkProtocol)Get (NetworkType)Get (PageNumber)Get (PersistentID)Get (PreferencesPath)Get (PrinterName)Get (QuickFindText)Get (RecordAccess)Get (RegionMonitorEvents)Get (ScreenDepth)Get (ScreenHeight)

LCFM Native User Guide 3/11/19

5

Page 6: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Get (ScreenScaleFactor)Get (ScriptAnimationState)Get (StatusAreaState)Get (SystemDrive)Get (SystemIPAddress)Get (SystemLanguage)Get (SystemNICAddress)Get (TextRulerVisible)Get (TouchKeyboardState)Get (TriggerCurrentPanel)Get (TriggerExternalEvent)Get (TriggerGestureInfo)Get (TriggerKeystroke)Get (TriggerModifierKeys)Get (TriggerTargetPanel)Get (UserCount)Get (UseSystemFormatsState)Get (WindowContentHeight)Get (WindowContentWidth)Get (WindowStyle)Get (WindowZoomLevel)

Functions - Design

FieldBoundsFieldCommentFieldIDsFieldNamesFieldRepetitionsFieldStyleGet (NextSerialValue)

Functions - Logical

EvaluateExecuteSQLGet (LayoutObjectAttribute)Get (NthRecord)IsValidIsValidExpressionLookupLookupNext

Functions - Mobile

Get (Sensor)LocationLocationValuesRangeBeacons

Functions - Number

Combination

LCFM Native User Guide 3/11/19

6

Page 7: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Factorial

Functions - Text

FuriganaHiraganaJSONDeleteElementJSONFormatElementsJSONGetElementJSONListKeysJSONListValuesJSONSetElementKanaHankakuKanaZenkakuKanjiNumeralKatakanaNumToJTextPositionRomanHankakuRomanZenkakuSortValuesTextColorRemoveUniqueValues

FilesFind Request Query OperatorsLayout Objects

ButtonButton BarButton Bar ButtonButton Bar Popover ButtonCalendar FieldChartCheck Box FieldContainer FieldEdit Box FieldGroup ButtonImageLineList FieldMenu FieldOvalPopoverPopover ButtonPortalRadio FieldRectangleRounded RectangleSlide ControlTab ControlText

LCFM Native User Guide 3/11/19

7

Page 8: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Webviewer

Layout PartsLayoutsTables, Fields and RelationshipsValuelists

LCFM NativeLCFM Native

LCFM Native User Guide 3/11/19

8

Page 9: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

LCFM NativeLCFM Native

IntroductionIntroductionThe LCFM Native tool allows you to convert your FileMaker solutions to native standalone applications.Initially, the supported deployment platforms are Mac, iOS and Android.

This guide will provide detailed instructions with screenshots for each step you have to take in order toconvert your FileMaker solutions to native Mac, Android and iOS standalones.

Important: This build of the LCFM Native tool will timeout on 2019-04-07.

Preparation - Important NotesPreparation - Important NotesThe tool opens FileMaker Pro Advanced 17 (FMP17) and performs various tasks. While FMP17 is open, itdoes NOT require user interaction. In fact, touching any of the FMP17 windows or responding to dialogs willlikely cause the process to fail. So just step back and wait for the process to complete. The more complexyour solution, the longer the process will take. The tool does require user input at various stages, soremember to check back occasionally to see if it has reached a new stage. As a rough guide:

The interface building stage may take about 15 seconds per accessible table in your solutionThe scraping stage may take about 20 seconds per included layout (only layouts which will bedisplayed need to be included in the scraping stage)

As the tool uses the Accessibility API, you need to add this app ( LCFM Native.app ) to the list of appsthat are allowed to control your computer. To do so, go to System Preferences > Security & Privacy , select the Privacy tab, select Accessibility in the left pane, and allow LCFM Native.app to control your computer.

LCFM Native User Guide 3/11/19

9

Page 10: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Open FMP17 and choose FileMaker Pro Advanced > Preferences... , go to the General taband select Use advanced tools . This is needed for the LCFM Native tool.

LCFM Native User Guide 3/11/19

10

Page 11: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Make sure you are using English US or UK keyboard input, otherwise the tool may fail when using aparticular keyboard shortcut if it is mapped differently. If you need a particular keyboard input for usernameor password entry, ensure you revert to a standard English keyboard after entry.

If an unexpected FileMaker window opens (for example a dialog asking you if you want to update to themost recent FileMaker version), the tool will fail. This is unlikely to happen, however please make sure yourFileMaker Pro Advanced is up to date.

FileMaker ServerFileMaker Server

If you intend to make online apps or extract data from your solution to use in your apps, you will needFileMaker Server 17 to be installed and running on your machine. Ensure the FileMaker Data API is enabledin the Connectors tab of the FileMaker Server Admin console:

LCFM Native User Guide 3/11/19

11

Page 12: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

PrerequisitesPrerequisites

AndroidAndroid

If you want to create a standalone application for Android, you need to have the Android SDK Tools and theJava JDK installed. You can download them from these links:

Android SDK Tools v25.2.5: http://dl-ssl.google.com/android/repository/tools_r25.2.5-macosx.zipJava JDK version 8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Note: LCFM Native currently requires Java 8 to be installed rather than the latest version 10. If you alreadyhave Java 10 installed, you'll need to uninstall it.

Here's how to uninstall Java 10 and install Java 8:

1. Open Finder and in the top Finder menubar choose Go -> Go to Folder2. Type /Library/Java/JavaVirtualMachines/ and press Go3. You are now in /Library/Java/JavaVirtualMachines/ and you should see a folder "jdk-10.0.2.jdk" .

Delete this folder4. Download and install "JDK 8u181" from the link above (file "jdk-8u181-macosx-x64.dmg")

Once you download the Android SDK Tools .zip file, extract it and place it in a folder android-sdk-v25.2.5 . This folder should now only contain a tools folder. You need to launch the

LCFM Native User Guide 3/11/19

12

Page 13: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Android SDK Manager, and download the latest version of build tools and platform tools . Youalso need to download the SDK Platform from Android 8.0.0 (API 26) :

First double click on ... android-sdk-v25.2.5/tools/android file. This will launch the AndroidSDK Manager:

In the Android SDK Manager check Android SDK Platform-tools and Android SDK Build-tools on the top. Uncheck any other package that might have been chosenautomatically, and click on Install 2 packages... .

LCFM Native User Guide 3/11/19

13

Page 14: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Accept the License and click Install

LCFM Native User Guide 3/11/19

14

Page 15: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Once these 2 packages are installed, click Close .

Go back to the Android SDK Manager and check SDK Platform under Android 8.0.0 (API 26) .Then click Install 1 package... :

LCFM Native User Guide 3/11/19

15

Page 16: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Accept the License and click Install

LCFM Native User Guide 3/11/19

16

Page 17: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Once the installation finishes, close the Android SDK Manager. Now your android-sdk-v25.2.5 foldershould look like this:

iOSiOS

If you want to deploy iOS applications you will need Xcode (for simulator deployment) and additionally avalid provisioning profile for the app (for device deployment). You can find more info on how to create aprovisioning profile in LiveCode's documentation:

(a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile for iOS?

License AgreementLicense AgreementOn first run of the LCFM Native tool you will be presented with the License Agreement. If you do not accept,LCFM Native will close.

Build ProcessBuild ProcessThe build process consists of 7 stages:

Choose ProjectChoose SolutionChoose LayoutsChoose Tables

LCFM Native User Guide 3/11/19

17

Page 18: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Choose Sync OptionsDeploy ServerDeploy Standalone

and a report stage.

Each stage is shown in a separate screen. You have to go through each screen one by one, until you reachthe final stage.

Choose ProjectChoose Project

You can either create a new project, or open an existing one. The flow is quite similar for each case, so let'ssee an example for creating a new project.

If you choose to create a new project, you need to choose a parent folder for the project folder:

LCFM Native User Guide 3/11/19

18

Page 19: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

and then a name for the project folder that will be created:

LCFM Native User Guide 3/11/19

19

Page 20: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

After that, you will be taken to next card.

Choose SolutionChoose Solution

LCFM Native User Guide 3/11/19

20

Page 21: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

You can drag your solutions (.fmp12 files) and drop them in the rectangular area. Alternatively, choose yoursolution files one by one using the + button:

LCFM Native User Guide 3/11/19

21

Page 22: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

When a solution file is chosen, its file path is shown in the field.

Then, click on a solution file to select it in the field. Fill in the username and the password of the chosensolution file.

Important: Ensure the username and password you set is an account with full access.

You can add more solution files to the project. If you want to remove a solution, click on its filename in thefield to select it, and then click on the - button.

LCFM Native User Guide 3/11/19

22

Page 23: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Now click on the Next button. At this point LCFM Native will import the Database Design Reports (DDRs)for each solution file in your project. Do NOT interact with other programs while the tool is driving FileMakeras this can cause it to fail.

When this process is complete, the tool will advance to the next screen.

Important: Deployment is not yet supported for multi-solution projects. You will be informed ofthis when proceeding from this screen. However we encourage you to complete the processanyway so the tool can be improved.

Choose LayoutsChoose Layouts

LCFM Native User Guide 3/11/19

23

Page 24: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

LCFM Native uses the data from the DDRs to show the available layouts for inclusion in your app. Use theAdd/Remove buttons to add all the layouts that are needed in your app (even if they are only used for datamanipulation and never displayed to the user). Adding more will not prevent the app from running, but willcause the following step to take extra time.

LCFM Native User Guide 3/11/19

24

Page 25: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Click Next . This will cause each solution file in your project to be opened, and extra information from eachlayout will be obtained by LCFM Native. If you have a large amount of layouts included, this may take along time. Again, do NOT interact with other programs while the tool is driving FileMaker as this can cause itto fail.

LCFM Native User Guide 3/11/19

25

Page 26: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

When this process is complete, the tool will advance to the next screen.

Choose TablesChoose Tables

LCFM Native User Guide 3/11/19

26

Page 27: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

LCFM Native uses the data from the DDRs to show the available tables for inclusion in your app. Use theAdd/Remove buttons to add all the tables that contain data that will be accessed by your app. Adding morewill not prevent the app from running, but will cause unnecessary additional data transfer during initial dataseed, and running of the app.

Click Next .

SyncSync

LCFM Native User Guide 3/11/19

27

Page 28: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

The Sync screen allows you to control how data is transferred between the app and the server (if at all). Youcan choose whether to extract data from the server to be built in to the app, and whether the app will runonline or offline.

A description of the app's functionality will appear based on the combination of the 'Extract data' and 'Online'check boxes:

Extract and online: The app will run online, syncing any changes from the server on first runDon't extract and online: The app will run online, syncing all initial data down from the server on firstrunExtract and offline: The app will run offline with initial data extracted from the serverDon't extract and offline: The app will run offline without any initial data

On this screen you can also modify the minimum interval between checks for remote changes to sync, andthe number of times to retry connecting to the server if the connection drops whilst syncing.

Click Next . If the app is set to offline without extraction, communication with the server is not needed andthe tool will advance to the Deploy Standalone screen. Otherwise the tool will advance to the Deploy Server

LCFM Native User Guide 3/11/19

28

Page 29: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

screen.

Deploy ServerDeploy Server

The LCFM Native tool requires access to a solution which provides an interface to all the database tables inyour project. This is done automatically, again by driving the FileMaker UI.

In order to export the interface solution, choose a name for it. The default name given is of the form <original_solution_name>-interface .

Then choose a folder to export the interface solution into, and click on the Export button.

LCFM Native User Guide 3/11/19

29

Page 30: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

This will cause the interface solution to be created. Once again, do NOT interact with other programs whilethe tool is driving FileMaker as this can cause it to fail. This step will take a long time if you have a lot oftables in your databases.

When the interface solution is exported, open it in FileMaker. You can use the arrow icon here to launch it.

Select File > Manage > Security... and add a username and password for a full access account to theinterface solution, and ensure it has fmrest access enabled for this account - select the select the ExtendedPrivileges tab, highlight the fmrest privilege and click the Edit... button. Then turn Access on for full accessaccounts.

LCFM Native User Guide 3/11/19

30

Page 31: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

LCFM Native User Guide 3/11/19

31

Page 32: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

LCFM Native User Guide 3/11/19

32

Page 33: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Important: Both the original solution and the generated interface solution must be uploaded to

LCFM Native User Guide 3/11/19

33

Page 34: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

FMS, with the fmrest privilege enabled for the full access accounts, and with the sameusername and password. If your original solution is already uploaded, ensure the fmrestprivilege is enabled for the full access account of the hosted solution.

Fill in the details of the account created in your interface solution in the server config fields, and fill in thehost address of your FMS instance. Press the Set Server Config button.

Now press the Next button.

Deploy StandaloneDeploy Standalone

Upon navigating to the Deploy Standalone screen, all the information gathered thus far will be parsed andcompiled. Moreover all the data in the included tables will be downloaded, and used to seed the initialdatastore of the app. Once this is done, you will be ready to configure and deploy the app.

LCFM Native User Guide 3/11/19

34

Page 35: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Note: If your solution has a very large amount of data, this step may take a long time.

Select the target platform to deploy to, and fill in the relevant info. Some settings are pre-populated.

General settings:

LCFM Native User Guide 3/11/19

35

Page 36: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

On the general settings screen, you can select the initial file to launch, as well as various 'overrides'.

The 'Initial File' setting controls which of the files in your solution is opened when the app starts up. If thereis an initial layout setting in the file options for that file, then the app will go to that layout on startup.Otherwise it will go to the first layout in the file (by id).

Overrides allow you to override the return values of FileMaker Get functions to simulate running the app indifferent contexts.

The overrides available are:

Device: Override the return value of Get(Device). For example, for existing FM Go apps you willusually want to specify iPad or iPhone to ensure the app behaves correctly when deployed on anAndroid deviceApplication Version: Override the return value of Get(ApplicationVersion). You may enter any string forthis override - the menu is prepopulated with various examples of application version strings (using17.0.0 as the version number)Window Orientation: Override the return value of Get(WindowOrientation)

LCFM Native User Guide 3/11/19

36

Page 37: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Android settings:

From the Android settings screen, the Deploy button will create an APK, and the Test button will run thestandalone on a connected device or emulator.

There is a dropdown list of connected devices and emulators you can choose from. If this list is empty, itmeans you have either not connected a device, or you have not chosen the path to Android SDK:

LCFM Native User Guide 3/11/19

37

Page 38: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

iOS Settings:

From the iOS settings screen, the Deploy button will create an ipa archive, and the Test button will installthe app on a connected device or install and launch on a running simulator.

The standalone settings for iOS are separated into 5 categories:

Basic Settings

LCFM Native User Guide 3/11/19

38

Page 39: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

This category includes basic application settings such as application name, identifier, build number etc.Most of these settings are self-explanatory. In the Profile menu, you have to choose your provisioningprofile, which will be used to codesign the app.

There is a dropdown list of connected devices and simulators you can choose from. If this list is empty, itmeans you have either not connected a device, or you do not have simulators installed in Xcode.

LCFM Native User Guide 3/11/19

39

Page 40: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Requirements

LCFM Native User Guide 3/11/19

40

Page 41: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

The remaining options determine what facilities the application requires or prohibits on the device in order tobe installed. This means that if for example you mark GPS as "required", the app will not appear in theAppStore on devices that do not support GPS. It is suggested to mark these options as N/A, unless afeature/capability is absolutely critical to the functionality of the app.

Icons

LCFM Native User Guide 3/11/19

41

Page 42: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

In this category you can provide application icons for each supported device. Each icon has to be a .png fileof specific dimensions. The required dimensions appear in the tooltip of the ... button.

Splash

LCFM Native User Guide 3/11/19

42

Page 43: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

In this category you can provide the image files to be used as splash screens on different devices. Theimages must be .png files of the correct dimensions and orientation. Again, the required dimensions appearin the tooltip of the ... button.

Advanced Settings

LCFM Native User Guide 3/11/19

43

Page 44: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

1. App URL Query Whitelist

You can open other apps (e.g. Facebook, Twitter) from your app. However, you have to include their customURL scheme in a whitelist in advance.

Use the + and - buttons to create a list of custom URL schemes that your app is allowed to query.

2. Custom URL Scheme

Enter the application's custom URL scheme, if any. This is a string that other apps have to query if theywant to launch this app.

3. App Transport Security (ATS)

App Transport Security (ATS) is an iOS feature that forces mobile apps to connect to back-end serversusing HTTPS, instead of HTTP, to encrypt data in transit. ATS enforces a minimum security level forcommunications between a mobile app and web services that support its functionality.

The resulting iOS standalone has ATS enabled by default. You can either turn ATS off globally (not

LCFM Native User Guide 3/11/19

44

Page 45: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

recommended), or leave it enabled and add exceptions, e.g. non-https URLS that will not be blocked. Usethe + and - buttons to create a list of exceptions.

4. Background Execution (Experimental)

You can allow the app to run on the background, and choose which background modes will be supported.This feature is experimental.

Mac settings:

From the Mac settings screen, the Deploy button will create a Mac app bundle, and the Test button willlaunch the standalone.

When you visit the Deploy Standalone card, the bottom navigation bar that shows the various stages willbecome clickable, so you can revisit any stage e.g. to change included layouts, add solution file, changeserver config etc.

If an error dialog pops up, please copy the error to the clipboard and send it to us!

LCFM Native User Guide 3/11/19

45

Page 46: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Clicking next will take you to the Report screen.

ReportReport

This screen allows you to report any parser warnings that are emitted during processing of your project.

Simply press the report button and send the exported .zip to us at [email protected].

If your solution is confidential, we are more than happy to sign an NDA with you before you send the report.Please contact support for details on how to do this.

Advanced SettingsAdvanced Settings

LCFM Native User Guide 3/11/19

46

Page 47: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

The advanced settings (available through the File menu once you have created or selected a project) allowsyou to set the following:

Message Timeout (per-project): controls the amount of time LCFM Native waits for UI elements toappear when driving FileMaker in the import, scrape and interface creation stages.Debug Log (per-project): write event, database access and error logs to stderr on Desktop andsystem log on mobile. Turning logging on significantly impacts performance.Advanced Mode (LCFM Native preference): Allows you to skip to any screen once a project has beenselected. Use this feature if you have already deployed an app

TroubleshootingTroubleshootingThe tool fails with timeout errors every time it tries to drive FileMaker.

The tool by default tries to drive FileMaker quickly using a setting called 'message timeout'. If you find youkeep getting timeout errors, try tweaking the message timeout in File > Advanced Settings...

LCFM Native User Guide 3/11/19

47

Page 48: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

The extract step fails

Ensure your FMS Data API connector is enabled in the admin console.

No app bundle is created in <project_folder>/apps/deploy-mac/*

This can happen if you have not entered a value in the Application Name field.

When I launch the mac standalone created in <project_folder>/apps/deploy-mac/* , I getan error: Failed to login to remote database - 802 - Unable to open file

This can happen if you have not uploaded the gateway (interface) solution to FMS17, or if any of the serversettings (address, username or password) are incorrect.

I do not see my connected device in the list of connected devices

This can happen for a number of reasons. In short, you have to make sure that Java 8 is installed (see"Prerequisites" section of this guide), the Android SDK Tools are installed (see "Prerequisites" section ofthis guide), and USB debugging is enabled in the Android device:

1. In the Android device, go to Developer Options (how to reach Developer Options depends on the deviceand/or Android version. Usually it is in Settings -> System -> Developer options). In the Developer Options,there is section named "Debugging". In this section, there is an option "USB Debugging - Debug mode whenUSB is connected". Make sure you turn this ON.

2. Make sure you have installed Android SDK Tools.

LCFM Native User Guide 3/11/19

48

Page 49: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

3. Once you do step 1 as described in the Guide, you should see the path to the folder containing theAndroid SDK in the LCFM Native Tool, in card Deployment, in field "SDK Root".

Notes:

(a) The "parent" folder containing the Android SDK should contain the following folders:

build-toolsplatform-toolsplatformstools

(b) The platform-tools folder includes a tool called "adb", which is responsible for connecting the Androiddevice to the computer.

4. Now that you have installed the Android JDK and the Android SDK correctly, and you have enabled USBDebugging in the device, connect the device to your computer. You should see a dialog in the device askingyou if you Trust this computer . Select Yes. Note that this dialog comes from the USB Debuggingoption, and it is not related to the Android Smart Lock. Thus the name of the computer will not appear in thelist of trusted devices in the Smart Lock menu.

5. Now, if you navigate to the "Deployment" screen of LCFM Native, and the Android device is connectedwith USB to the computer, you should see the device identifier in the "Target Device" dropdown.

Note: If you connect the device via USB to the computer afterafter visiting the Deployment card, the device willNOT appear in the "Target Device" dropdown. In this case, you have to re-select the path to the AndroidSDK root folder:

(a) Press on the X icon to clear the path

(b) Press on the ... button to set the path again. When the path is set, the tool searches for connecteddevices, and lists them in the Target Device dropdown.

The Android standalone does not install in the Android device.

This can happen because the device is set to allow installation only from apps downloaded from the PlayStore. To change that, go to the device Settings and choose Allow installation of apps from unknown sources

The deployed application is just a blank screen

Ensure you have added a script trigger for the OnFirstWindowOpen event, and that the script goes to alayout which you have included in your application.

Feature SupportFeature Support

Script Steps - AccountScript Steps - Account

AddAccountAddAccount

Not yet implemented.

ChangePasswordChangePassword

LCFM Native User Guide 3/11/19

49

Page 50: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Not yet implemented.

DeleteAccountDeleteAccount

Not yet implemented.

EnableAccountEnableAccount

Not yet implemented.

ReLoginReLogin

Not yet implemented.

ResetAccountPasswordResetAccountPassword

Not yet implemented.

Script Steps - ControlScript Steps - Control

AllowUserAbortAllowUserAbort

Not fully implemented. The AllowUserAbort state can be set and retrived with Get(AllowAbortState), but thesetting has no effect.

InstallOnTimerScriptInstallOnTimerScript

Not yet implemented.

PauseScriptPauseScript

Not yet implemented.

PerformScriptOnServerPerformScriptOnServer

Not fully implemented. The specified script is run locally, in exactly the same way as Peform Script.

ResumeScriptResumeScript

Not yet implemented.

SetErrorCaptureSetErrorCapture

Not fully implemented. The ErrorCapture state can be set and retrieved with Get(ErrorCaptureState), but allscript steps run as if it is set to True.

Script Steps - EditingScript Steps - Editing

ClearClear

Not yet implemented.

LCFM Native User Guide 3/11/19

50

Page 51: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

CopyCopy

Not yet implemented.

CutCut

Not yet implemented.

PastePaste

Not yet implemented.

PerformFindReplacePerformFindReplace

Not yet implemented.

SelectAllSelectAll

Not yet implemented.

UndoRedoUndoRedo

Not yet implemented.

Script Steps - FieldsScript Steps - Fields

ExportFieldContentsExportFieldContents

Partially implemented. When used on desktop platforms, the 'Auto Open' and 'Create Email' options do notcurrently appear in the file dialog.

ExportFieldContentsToFileExportFieldContentsToFile

Partially implemented. On desktop platforms, the Create Email option is not yet implemented.

InsertFileIntoVariableInsertFileIntoVariable

Not yet implemented.

InsertFromDeviceBarCodeFromCameraInsertFromDeviceBarCodeFromCamera

Implemented on mobile platforms only.

InsertFromDeviceBarCodeFromFieldInsertFromDeviceBarCodeFromField

Implemented on android platform only.

InsertFromDeviceMusicLibraryInsertFromDeviceMusicLibrary

Implemented on mobile platforms only.

InsertFromDevicePhotoLibraryInsertFromDevicePhotoLibrary

LCFM Native User Guide 3/11/19

51

Page 52: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Implemented on mobile platforms only.

InsertFromIndexInsertFromIndex

Not yet implemented.

InsertFromLastVisitedInsertFromLastVisited

Not yet implemented.

InsertObjectInsertObject

Not supported.

RelookupFieldContentsRelookupFieldContents

Not yet implemented.

ReplaceFieldContentsWithSerialNumbersReplaceFieldContentsWithSerialNumbers

Not yet implemented.

SetNextSerialValueSetNextSerialValue

Not yet implemented.

UpdateLinkUpdateLink

Not supported.

Script Steps - FilesScript Steps - Files

CloseFileCloseFile

Implemented with differences. Closing a file in lcfm-native causes all its windows and reverts it to being inthe background.

Note: Close File will not currently work correctly if attempted whilst a step or script is running or pendingfrom the file being closed.

CloseODBCDataSourceCloseODBCDataSource

Not supported.

ConvertFileConvertFile

Not yet implemented.

Note: Support for conversion of FileMaker files will not be possible.

NewFileNewFile

LCFM Native User Guide 3/11/19

52

Page 53: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Not supported. It isn't possible to create or edit FileMaker files in lcfm-native.

OpenFileOpenFile

Implemented with differences. All files compiled into an lcfm-native app are opened in the background onstartup, calling Open File causes the file to be brought to the foreground, running appropriate triggers.

Note: You can only open files which were included in the app at compile-time.

OpenFileWithDialogOpenFileWithDialog

Not yet implemented.

OpenODBCDataSourceOpenODBCDataSource

Not supported.

RecoverFileRecoverFile

Not supported.

SaveACopyAsSaveACopyAs

Not supported.

SaveACopyAsToFileSaveACopyAsToFile

Not supported.

SetMultiUserSetMultiUser

Implemented as no-op.

SetUseSystemFormatsSetUseSystemFormats

Not yet implemented

Script Steps - FoundsetsScript Steps - Foundsets

OmitMultipleRecordsOmitMultipleRecords

Partially implemented. The 'with dialog' form is not yet implemented.

SortRecordsSortRecords

Partially implemented. The 'with dialog' form is not yet implemented.

Script Steps - MenusScript Steps - Menus

OpenEditSavedFindsOpenEditSavedFinds

Not supported.

LCFM Native User Guide 3/11/19

53

Page 54: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

OpenFileOptionsOpenFileOptions

Not supported.

OpenFindReplaceOpenFindReplace

Not supported.

OpenHelpOpenHelp

Not supported.

OpenHostsOpenHosts

Not supported.

OpenManageContainersOpenManageContainers

Not supported.

OpenManageDatabaseOpenManageDatabase

Not supported.

OpenManageDataSourcesOpenManageDataSources

Not supported.

OpenManageLayoutsOpenManageLayouts

Not supported.

OpenManageThemesOpenManageThemes

Not supported.

OpenManageValueListsOpenManageValueLists

Not supported.

OpenMyAppsOpenMyApps

Not supported.

OpenPreferencesOpenPreferences

Not supported.

OpenScriptWorkspaceOpenScriptWorkspace

Not supported.

LCFM Native User Guide 3/11/19

54

Page 55: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

OpenSharingOpenSharing

Not supported.

UploadtoFileMakerServerUploadtoFileMakerServer

Not supported.

Script Steps - MiscellaneousScript Steps - Miscellaneous

AllowFormattingBarAllowFormattingBar

Not yet implemented.

AVPlayerPlayFieldAVPlayerPlayField

Not yet implemented.

AVPlayerPlayObjectAVPlayerPlayObject

Not yet implemented.

AVPlayerPlayURLAVPlayerPlayURL

Not yet implemented.

AVPlayerSetOptionsAVPlayerSetOptions

Not yet implemented.

AVPlayerSetPlaybackStateAVPlayerSetPlaybackState

Not yet implemented.

ClearLocalNotificationClearLocalNotification

Not yet implemented.

ConfigureLocalNotificationConfigureLocalNotification

Not yet implemented.

ConfigureRegionMonitorScriptGeolocationConfigureRegionMonitorScriptGeolocation

Not yet implemented.

ConfigureRegionMonitorScriptIbeaconConfigureRegionMonitorScriptIbeacon

Not yet implemented.

DialPhoneDialPhone

LCFM Native User Guide 3/11/19

55

Page 56: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Not yet implemented.

ExecuteSQLExecuteSQL

Not supported.

FlushCacheToDiskFlushCacheToDisk

Not yet implemented.

Get (Directory)Get (Directory)

Not yet implemented.

InstallMenuSetInstallMenuSet

Not yet implemented.

OpenURLOpenURL

Partially implemented. The 'with dialog' form is not yet implemented.

PerformAppleScriptPerformAppleScript

Not yet implemented.

RefreshObjectRefreshObject

Not yet implemented.

RefreshPortalRefreshPortal

Not yet implemented.

SendDDEExecuteFileSendDDEExecuteFile

Not yet implemented.

SendDDEExecuteTopicSendDDEExecuteTopic

Not yet implemented.

SendEventWithFileSendEventWithFile

Not yet implemented.

SendEventWithMessageSendEventWithMessage

Not yet implemented.

SendMailSendMail

Not yet implemented.

LCFM Native User Guide 3/11/19

56

Page 57: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

SetLayoutObjectAnimationSetLayoutObjectAnimation

Not yet implemented.

SetWebViewerSetWebViewer

Not yet implemented.

Script Steps - NavigationScript Steps - Navigation

ClosePopoverClosePopover

Not yet implemented.

EnterPreviewModeEnterPreviewMode

Not yet implemented.

GoToFirstPortalRowGoToFirstPortalRow

Not yet implemented.

GoToLastPortalRowGoToLastPortalRow

Not yet implemented.

GoToLayoutGoToLayout

Partially implemented. Animation is not yet implemented.

GoToNextPortalRowGoToNextPortalRow

Not yet implemented.

GoToPortalRowNumberGoToPortalRowNumber

Not yet implemented.

GoToPreviousPortalRowGoToPreviousPortalRow

Not yet implemented.

GoToRecordRequestPageNumberGoToRecordRequestPageNumber

Partially implemented. The 'with dialog' form is not yet implemented.

GoToRelatedRecordGoToRelatedRecord

Partially implemented. Animation is not yet implemented.

Script Steps - PrintScript Steps - Print

LCFM Native User Guide 3/11/19

57

Page 58: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

PrintPrint

Not yet implemented.

PrintSetupPrintSetup

Not yet implemented.

Script Steps - RecordsScript Steps - Records

CommitRecordsRequestsCommitRecordsRequests

Partially implemented. The skip-validation option currently has no effect as field validation is not yetimplemented. The 'with dialog' form is not yet implemented. The force-commit option is not supported.

CopyAllRecordsCopyAllRecords

Not yet implemented.

DeleteAllRecordsDeleteAllRecords

Partially implemented. The 'with dialog' form is not yet implemented.

DeletePortalRowDeletePortalRow

Not yet implemented.

DeleteRecordRequestDeleteRecordRequest

Partially implemented. The 'with dialog' form is not yet implemented.

DuplicateRecordRequestDuplicateRecordRequest

Not yet implemented.

ExportRecordsExportRecords

Not yet implemented.

Note: Support for exporting to FileMaker files will not be possible.

ImportRecordsImportRecords

Not yet implemented.

Note: Support for importing from FileMaker files will not be possible.

RevertRecordRequestRevertRecordRequest

Partially implemented. The 'with dialog' form is not yet implemented.

SaveRecordsAsExcelSaveRecordsAsExcel

LCFM Native User Guide 3/11/19

58

Page 59: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Not yet implemented

SaveRecordsAsPDFSaveRecordsAsPDF

Not yet implemented.

SaveRecordsAsSnapshotLinkSaveRecordsAsSnapshotLink

Not yet implemented.

TruncateTableTruncateTable

Not yet implemented.

Script Steps - SpellingScript Steps - Spelling

CheckCurrentFieldSelectionCheckCurrentFieldSelection

Not yet implemented.

CheckFoundSetCheckFoundSet

Not yet implemented.

CheckRecordCheckRecord

Not yet implemented.

CheckSelectionCheckSelection

Not yet implemented.

CorrectWordCorrectWord

Not yet implemented.

EditUserDictionaryEditUserDictionary

Not yet implemented.

SelectDictionariesSelectDictionaries

Not yet implemented.

SpellingOptionsSpellingOptions

Not yet implemented.

Script Steps - WindowsScript Steps - Windows

AdjustWindowAdjustWindow

LCFM Native User Guide 3/11/19

59

Page 60: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Partially implemented. Only the ResizeToFit option is currently implemented.

ArrangeAllWindowsArrangeAllWindows

Not yet implemented.

CloseWindowCloseWindow

Implemented with limitations.

Note: Close Window will not currently work correctly if attempted whilst a step or script is running or pendingfrom the window being closed.

EnableTouchKeyboardEnableTouchKeyboard

Not yet implemented.

MoveResizeWindowMoveResizeWindow

Not yet implemented.

NewWindowNewWindow

Not yet implemented.

RefreshWindowRefreshWindow

Partially implemented. The flush-joins option is not yet implemented. The flush-sql option is not supported.

ScrollWindowScrollWindow

Not yet implemented.

SetAllowedOrientationsSetAllowedOrientations

Not yet implemented.

SetZoomLevelSetZoomLevel

Not yet implemented.

ShowHideMenubarShowHideMenubar

Not yet implemented.

ShowHideTextRulerShowHideTextRuler

Not yet implemented.

ShowHideToolbarsShowHideToolbars

Not yet implemented.

LCFM Native User Guide 3/11/19

60

Page 61: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

ViewAsViewAs

Partially implemented. The table view mode is not yet implemented.

Functions - AggregateFunctions - Aggregate

ExtendExtend

Not yet implemented.

Get (Summary)Get (Summary)

Not yet implemented.

LastLast

Not yet implemented.

Functions - ContainerFunctions - Container

CryptAuthCodeCryptAuthCode

Partially implemented. The SHA and MDC2 digest algorithms are not supported.

CryptDecryptCryptDecrypt

Not supported. The data format used for the FileMaker Crypt commands is not known.

CryptDecryptBase64CryptDecryptBase64

Not supported. The data format used for the FileMaker Crypt commands is not known.

CryptDigestCryptDigest

Partially implemented. The SHA and MDC2 digest algorithms are not supported.

CryptEncryptCryptEncrypt

Not supported. The data format used for the FileMaker Crypt commands is not known.

CryptEncryptBase64CryptEncryptBase64

Not supported. The data format used for the FileMaker Crypt commands is not known.

Get (ContainerAttribute)Get (ContainerAttribute)

Not yet implemented.

Get (Height)Get (Height)

Not yet implemented.

LCFM Native User Guide 3/11/19

61

Page 62: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Get (Thumbnail)Get (Thumbnail)

Not yet implemented.

Get (Width)Get (Width)

Not yet implemented.

VerifyContainerVerifyContainer

Not yet implemented.

Functions - ContextFunctions - Context

Get (AccountExtendedPrivileges)Get (AccountExtendedPrivileges)

Not yet implemented.

Get (AccountGroupName)Get (AccountGroupName)

Not yet implemented.

Get (AccountPrivilegeSetName)Get (AccountPrivilegeSetName)

Not yet implemented.

Get (ActiveModifierKeys)Get (ActiveModifierKeys)

Not yet implemented.

Get (AllowFormattingBarState)Get (AllowFormattingBarState)

Not yet implemented.

Get (ApplicationLanguage)Get (ApplicationLanguage)

Not yet implemented.

Get (ConnectionAttributes)Get (ConnectionAttributes)

Not yet implemented.

Get (ConnectionState)Get (ConnectionState)

Not yet implemented.

Get (CurrentExtendedPrivileges)Get (CurrentExtendedPrivileges)

Not yet implemented.

Get (CurrentMenuSetName)Get (CurrentMenuSetName)

LCFM Native User Guide 3/11/19

62

Page 63: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Not yet implemented.

Get (CurrentPrivilegeSetName)Get (CurrentPrivilegeSetName)

Not yet implemented.

Get (DocumentsPathListing)Get (DocumentsPathListing)

Not yet implemented.

Get (EncryptionState)Get (EncryptionState)

Not yet implemented.

Get (FileMakerPath)Get (FileMakerPath)

Not yet implemented.

Get (HighConstrastState)Get (HighConstrastState)

Not yet implemented.

Get (HighContrastColor)Get (HighContrastColor)

Not yet implemented.

Get (HostApplicationVersion)Get (HostApplicationVersion)

Not yet implemented.

Get (HostIPAddress)Get (HostIPAddress)

Not yet implemented.

Get (HostName)Get (HostName)

Not yet implemented.

Get (InstalledFMPlugins)Get (InstalledFMPlugins)

Not yet implemented.

Get (LayoutAccess)Get (LayoutAccess)

Not yet implemented.

Get (MenubarState)Get (MenubarState)

Not yet implemented.

Get (ModifiedFields)Get (ModifiedFields)

Not yet implemented.

LCFM Native User Guide 3/11/19

63

Page 64: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Get (MultiUserState)Get (MultiUserState)

Not yet implemented.

Get (NetworkProtocol)Get (NetworkProtocol)

Not yet implemented.

Get (NetworkType)Get (NetworkType)

Not yet implemented.

Get (PageNumber)Get (PageNumber)

Not yet implemented.

Get (PersistentID)Get (PersistentID)

Not yet implemented.

Get (PreferencesPath)Get (PreferencesPath)

Not yet implemented.

Get (PrinterName)Get (PrinterName)

Not yet implemented.

Get (QuickFindText)Get (QuickFindText)

Not yet implemented.

Get (RecordAccess)Get (RecordAccess)

Not yet implemented.

Get (RegionMonitorEvents)Get (RegionMonitorEvents)

Not yet implemented.

Get (ScreenDepth)Get (ScreenDepth)

Not yet implemented.

Get (ScreenHeight)Get (ScreenHeight)

Not yet implemented.

Get (ScreenScaleFactor)Get (ScreenScaleFactor)

Not yet implemented.

LCFM Native User Guide 3/11/19

64

Page 65: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Get (ScriptAnimationState)Get (ScriptAnimationState)

Not yet implemented.

Get (StatusAreaState)Get (StatusAreaState)

Not yet implemented.

Get (SystemDrive)Get (SystemDrive)

Not yet implemented.

Get (SystemIPAddress)Get (SystemIPAddress)

Not yet implemented.

Get (SystemLanguage)Get (SystemLanguage)

Not yet implemented.

Get (SystemNICAddress)Get (SystemNICAddress)

Not yet implemented.

Get (TextRulerVisible)Get (TextRulerVisible)

Not yet implemented.

Get (TouchKeyboardState)Get (TouchKeyboardState)

Not yet implemented.

Get (TriggerCurrentPanel)Get (TriggerCurrentPanel)

Not yet implemented.

Get (TriggerExternalEvent)Get (TriggerExternalEvent)

Not yet implemented.

Get (TriggerGestureInfo)Get (TriggerGestureInfo)

Not yet implemented.

Get (TriggerKeystroke)Get (TriggerKeystroke)

Not yet implemented.

Get (TriggerModifierKeys)Get (TriggerModifierKeys)

Not yet implemented.

LCFM Native User Guide 3/11/19

65

Page 66: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Get (TriggerTargetPanel)Get (TriggerTargetPanel)

Not yet implemented.

Get (UserCount)Get (UserCount)

Not yet implemented.

Get (UseSystemFormatsState)Get (UseSystemFormatsState)

Not yet implemented.

Get (WindowContentHeight)Get (WindowContentHeight)

Not yet implemented.

Get (WindowContentWidth)Get (WindowContentWidth)

Not yet implemented.

Get (WindowStyle)Get (WindowStyle)

Not yet implemented.

Get (WindowZoomLevel)Get (WindowZoomLevel)

Not yet implemented.

Functions - DesignFunctions - Design

FieldBoundsFieldBounds

Not yet implemented.

FieldCommentFieldComment

Not yet implemented.

FieldIDsFieldIDs

Not yet implemented.

FieldNamesFieldNames

Not yet implemented.

FieldRepetitionsFieldRepetitions

Not yet implemented.

FieldStyleFieldStyle

LCFM Native User Guide 3/11/19

66

Page 67: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Not yet implemented.

Get (NextSerialValue)Get (NextSerialValue)

Not yet implemented.

Functions - LogicalFunctions - Logical

EvaluateEvaluate

Not yet implemented.

ExecuteSQLExecuteSQL

Partially implemented. Currently only queries of the following forms are supported:

SELECT <column> FROM <table> WHERE <field> = ?SELECT <column> FROM <table> WHERE <field-1> = ? AND <field-2> = ? Thecolumn, table and field names must be single words and cannot be quoted.

Get (LayoutObjectAttribute)Get (LayoutObjectAttribute)

Not yet implemented.

Get (NthRecord)Get (NthRecord)

Not yet implemented.

IsValidIsValid

Partially implemented. Currently the IsValid() function will return true only if it is passed the invalid value.

IsValidExpressionIsValidExpression

Not yet implemented.

LookupLookup

Not yet implemented.

LookupNextLookupNext

Not yet implemented.

Functions - MobileFunctions - Mobile

Get (Sensor)Get (Sensor)

Not yet implemented.

LocationLocation

LCFM Native User Guide 3/11/19

67

Page 68: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Not yet implemented.

LocationValuesLocationValues

Not yet implemented.

RangeBeaconsRangeBeacons

Not yet implemented.

Functions - NumberFunctions - Number

CombinationCombination

Not yet implemented.

FactorialFactorial

Not yet implemented.

Functions - TextFunctions - Text

FuriganaFurigana

Not yet implemented.

HiraganaHiragana

Not yet implemented.

JSONDeleteElementJSONDeleteElement

Not yet implemented.

JSONFormatElementsJSONFormatElements

Not yet implemented.

JSONGetElementJSONGetElement

Not yet implemented.

JSONListKeysJSONListKeys

Not yet implemented.

JSONListValuesJSONListValues

Not yet implemented.

JSONSetElementJSONSetElement

LCFM Native User Guide 3/11/19

68

Page 69: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Not yet implemented.

KanaHankakuKanaHankaku

Not yet implemented.

KanaZenkakuKanaZenkaku

Not yet implemented.

KanjiNumeralKanjiNumeral

Not yet implemented.

KatakanaKatakana

Not yet implemented.

NumToJTextNumToJText

Not yet implemented.

PositionPosition

Partially implemented. The function is not implemented when the occurrence parameter is negative.

RomanHankakuRomanHankaku

Not yet implemented.

RomanZenkakuRomanZenkaku

Not yet implemented.

SortValuesSortValues

Not yet implemented.

TextColorRemoveTextColorRemove

Not yet implemented.

UniqueValuesUniqueValues

Not yet implemented.

FilesFiles

Files and their basic commands and functions are implemented.

Each file in a compiled lcfm-native app corresponds to one solution file that was included the lcfm-nativeproject.

LCFM Native User Guide 3/11/19

69

Page 70: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Files can reference other files, but the name used for the reference must always be the leaf (withoutextension) name of the solution file included in the app.

Each file can create multiple windows, and database access and script execution works across files.

User accounts are not currently implemented. The User Name is always 'System User' and the accountname is always '[Full Access]'.

Locales other than en_GB and en_US are yet to be implemented.

The OnFileAVPlayerChanged trigger is yet to be implemented.

Menusets are yet to be implemented.

Accounts, privilege sets and extended privileges are yet to be implemented.

Find Request Query OperatorsFind Request Query Operators

Find request query operators are partially implemented.

The following operators are available:

is empty: =is not empty: *is less than or equal: <=<value>is greater than or equal: >=<value>is less than: <<value>is greater than: ><value>is equal to: <value> or =<value> or ==<value> or "<value>" (when the datatype is not text)is exactly: ==<value> (when the datatype is text)contains word: =<value> (when the datatype is text)contains word beginning with: <value> (when the datatype is text)contains phrase beginning with: "<value>" (when the datatype is text)

Layout ObjectsLayout Objects

The majority of layout objects are implemented.

Layout object tooltips are not yet implemented.

The following layout object triggers are not yet implemented:

OnObjectKeystrokeOnObjectAVPlayerChange

ButtonButton

Button layout objects are implemented.

Button BarButton Bar

Button bar layout objects are implemented.

LCFM Native User Guide 3/11/19

70

Page 71: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Button Bar ButtonButton Bar Button

Button bar button layout objects are implemented.

Button Bar Popover ButtonButton Bar Popover Button

Only the button part of button bar button with popover layout objects are implemented. The popover is notyet implemented.

Calendar FieldCalendar Field

Calendar field layout objects are implemented.

Autocomplete is not currently supported.

ChartChart

Chart layout objects are not yet implemented.

Check Box FieldCheck Box Field

Check Box field layout objects are implemented.

The Allow Other option will include a check box for 'Other...' but its action is not yet implemented.

Container FieldContainer Field

Container field layout objects are implemented.

The container field layout object supports GIF, JPEG, PNG and BMP format images.

The container field layout object supports MP3, MP4 and WAV audio and video formats.

The container field layout object supports PDF files, although currently only the first page is shown and theyare not pannable.

The container field layout object supports general file content, although currently only an icon is displayed,the filename is not.

Edit Box FieldEdit Box Field

Edit field layout objects are implemented.

Autocomplete is not currently supported.

Group ButtonGroup Button

Group button layout objects are implemented.

Currently children of a group button object will not highlight whilst the mouse is pressed on the group button.

ImageImage

Image layout objects are implemented.

LCFM Native User Guide 3/11/19

71

Page 72: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

LineLine

Line layout objects are implemented.

List FieldList Field

List field layout objects are implemented.

The Autocomplete option is not yet implemented.

The Allow Edit option will cause 'Edit...' to be added to the list, but its action is not yet implemented.

Menu FieldMenu Field

Menu field layout objects are implemented.

The Allow Edit option will cause 'Edit...' to be added to the list, but its action is not yet implemented.

The Allow Other option will cause 'Other...' to be added to the list, but its action is not yet implemented.

OvalOval

Oval layout objects are implemented.

PopoverPopover

Popover layout objects are not yet implemented.

Popover ButtonPopover Button

Only the button part of popover button layout objects are implemented. The popover is not yet implemented.

PortalPortal

Portal layout objects are not yet implemented.

Radio FieldRadio Field

Radio field layout objects are implemented.

The Allow Other option will include a check box for 'Other...' but its action is not yet implemented.

RectangleRectangle

Rectangle layout objects are implemented.

Rounded RectangleRounded Rectangle

Rounded rectangle layout objects are implemented.

Slide ControlSlide Control

Slide control layout objects are implemented.

LCFM Native User Guide 3/11/19

72

Page 73: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

Using a swipe gesture to manipulate a slide control is not yet implemented.

Tab ControlTab Control

Tab control layout objects are implemented.

TextText

Text layout objects are implemented.

WebviewerWebviewer

Webviewer layout objects are implemented.

Layout PartsLayout Parts

Layout parts are implemented.

Note: It is not possible to scrape custom styling on layout part backgrounds, and this information is not inthe DDR. Make sure any styles changes applied to layout parts are saved to a named style (either at thelayout or theme level).

LayoutsLayouts

Layouts are implemented.

The following layout triggers are not yet implemented:

OnLayoutKeystrokeOnLayoutSizeChangeOnGestureTapOnExternalCommandReceived

Preview mode is not yet implemented.

Table view state is not yet implemented.

The status bar, formatting bar and ruler are not yet supported.

Steps (and scripts) execute as if Error Capture is turned On. Automatic error handling when error capture isoff and the dialogs which appear as a result are yet to be implemented.

Automatic scrolling into view of the active layout object is not yet implemented.

Typing into the active field whilst it is not visible is not yet implemented.

On macOS, if the system preference 'always show scrollbars' option is enabled then the scrolling contentarea size is not yet correct.

Layout mode is not supported.

Tables, Fields and RelationshipsTables, Fields and Relationships

Tables and fields are almost completely implemented.

The default language field option is partially implemented - languages other than English, Unicode_Standard

LCFM Native User Guide 3/11/19

73

Page 74: LCFM Native User Guide 3/11/19 · provisioning profile in LiveCode's documentation: (a) How do I Create a Development Profile for iOS? (b) How do I Create a Distribution Profile

and Unicode_Raw are yet to to be implemented.

The 'Always Evaluate' option on autoenter field calculations and calculated field calculations is yet to beimplemented.

Field validation is yet to be implemented.

Summary fields are yet to be implemented.

Table occurrences and relationships are almost completely implemented.

Storing into a related field where the relationship allows creation and there is no related record is not yetimplemented.

Repeated calculated fields are only partially implemented, using them may give incorrect results.

Indexing of repeated fields is only partially implemented, searching such fields may give incorrect results.

Performing found set operations against related fields and unstored repeated fields is only partiallyimplemented, performing such operations may give incorrect results.

The override language option for sorting is yet to be implemented.

Maintaining sort order when creating new records in foundsets is yet to be implemented.

Table, record and field level access are yet to be implemented.

ValuelistsValuelists

Valuelists are partially implemented.

The resort language option is yet to be implemented.

The secondary field option is yet to be implemented.

The filter table option is yet to be implemented.

LCFM Native User Guide 3/11/19

74