9.6.9 rc-3 released: Support for iOS 16

by Panagiotis Merakos on March 29, 2023 No comments

We are pleased to announce the release of LiveCode 9.6.9 RC-3. This version comes with more than 25 bugfixes and improvements.

Features implemented

  • iOS builds have been updated
  • Apple architecture support out of “experimental” phase
  • A displayData property has been added to the iOS native player control

iOS Update

Building iOS apps using Xcode 14.2.x with the iOS 16.2 SDK is now supported.

Important: From the start of April 2023, Apple is only accepting apps built using iOS16.x SDKs. This means that, if you wish to submit apps to the AppStore you will have to be running at least macOS 12.6.3 in order to be able to install the necessary version of Xcode (14.2).

Apple Architecture Support

Apple architecture support has now been officially added to the macOS IDE, standalone builder, and server engine. You can build for M1, M2 etc natively on Mac OS. LiveCode and any standalones it builds will now run using the native architecture of the platform by default.

Controlling the music control center display on iOS

A displayData property has been added to the IOS native player control to allow control over the music control center on iOS 16 and above. The lock screen on iOS displays information about the currently running media, which can be controlled using the iphoneSetRemoteControlDisplay command.

However, on iOS 16 and above this command no longer works when using a native player control, as only metadata defined in the file being played is used.

To work around this problem a new property displayData has been added to the native player control on iOS.

This property takes an array with keys:

  • artwork : the png, jpeg, gif or bmp image data to display as an image description : a string describing the media
  • genre : a string describing the genre of the media
  • subtitle : a string describing the subtitle of the media
  • title : a string describing the title of the media

The property is applied the next time the content of the player is changed, so should be set
before the filename property. For example:

local tInfo
put the text of image "MyArtwork" into tInfo["artwork"]
put "MyMedia" into tInfo["title"]
mobileControlSet "MyPlayer", "displayData", tInfo
mobileControlSet "MyPlayer", "filename", "MyMedia.mp3"

Which fields from the displayData are used in the music control center appears to be somewhat device and OS version dependent. However, at least the artwork and title properties will always be used. Due to this it is recommended that the new property only be used on iOS 16 and above – with the previous method sufficing on older OS versions.

Windows Certificate Update

The code signing certificate we use to sign the Windows Installer and LiveCode application has been renewed. This means that it will take a certain number of verifications before Windows Defender SmartScreen will not popup a dialog. Please do take the time to download, install and run the LiveCode application at least once to help ensure that it gains the necessary ‘reputation’.

Regressions fixed

  • The ability to apply changes using the Enter key shortcut in the 9.6.9- script editor has been reinstated
  • Replace All now works as expected in the Script Editor
  • Popup button menus now present correctly from modal and sheet dialogs on Windows
  • The input field in the ask dialog is now focused when it is initially opened
  • Embedded images in the message displayed in answer dialogs now display correctly
  • Manipulating properties of datagrids before they are visible no longer causes an error

Bugs fixed

  • The Property Inspector text contents editor now displays styled text in a more readable way
  • The Extension Builder now displays an informative error message when attempting to install extensions without the required
    metadata
  • The engine will no longer abort on startup on Windows machines with certain printer drivers installed
  • Center or right aligned wrapping paragraphs in fields which contain words wider than the content width will now render correctly
  • The dictionary entry for LiveCode Builder extension has now been corrected to include the word ‘widget’ which was previously omitted
  • The firstIndent property has been moved to the Text pane of the field Property Inspector
  • iOS apps will now rotate correctly when the device orientation changes on iOS 16
  • The start using font command will now correctly update text in fields which already have a textFont property matching the new font’s name
  • The NFKD mode of the normalizeText function now works correctly
  • The NFKC mode of the normalizeText function now works correctly on strings which do not contain unicode characters
  • The ask and answer dialogs are no longer resizable
  • Compound text chunk expressions which include the byte chunk are now evaluated correctly
  • Using the trueWord or sentence chunk no longer causes strange behavior which could occur in certain circumstances
  • iOS standalones no longer include the (now obsolete) armv7 architecture
  • Using sockets on macOS and Linux in -ui standalone or server engine will no longer cause wait to cause high CPU usage

Known issues

Potential Linking Error with mergEXT

When building an iOS standalone with a version of Xcode < 14.2, you might get a linking error if you include some mergExt* externals in the Inclusions pane. This happens because in Xcode 14.2 some optimisations took place that broke backwards compatibility with binaries built with older Xcode versions. This does not affect the following mergExt externals:

  • blur
  • mergJSON
  • mergMarkDown
  • mergBonjour
  • mergAV
  • mergNotify
  • mergMicrophone
  • mergCL

If your app uses any of the remaining mergExt externals, and you have to use an older version of Xcode to build, then a workaround is to copy the mergExt* resource folders from an older version of LiveCode (e.g. 9.6.9 rc2) and paste it in the appropriate place in LC 9.6.9 rc3 app bundle. For example, for mergAnswerColor, you can grab the folder from:

/Applications/LiveCode 9.6.9 (rc 2).app/Contents/Tools/Ext/mergAnswerColor

and paste it into

/Applications/LiveCode 9.6.9 (rc 3).app/Contents/Tools/Ext/mergAnswerColor

Potential Launch Delay on Windows

Although the engine will no longer abort on startup on Windows machines with certain printer drivers installed, you might observe a long delay (up to ~60 seconds in some cases) until the engine launches. A workaround for this issue is to stop the printer spooler process:

  1. Open Windows Task Manager
  2. Search for a process named “Spooler Subsystem app” or just “Print Spooler”
  3. Force quit this process

Alternative, you can stop/start the printer spooler from the command line (with admin access). The commands to do this are:

net stop spooler
net start spooler

We would be grateful if anyone who has a windows system which is affected by this problem could make yourself known to support@livecode.com or post on the bug report about any experiences regarding this issue – i.e. if it works perfectly for you (no longer crashes) or if it works with a long delay.

How to get 9.6.9 rc-3

You can find the release in your LiveCode account area or get it via the automatic updater. If you are looking for the release in your account, please remember to scroll down the list of stable releases to find the test releases, underneath. Not got LiveCode yet? Sign up for a trial here.

Enjoy!

Panagiotis Merakos9.6.9 rc-3 released: Support for iOS 16

Join the conversation

*