Inform and the Mac App Store: can you help?

Inform 7 is coming to the Mac App Store, and the Inform team would be very grateful for any help which Inform on Mac users could give us in the final stages of testing.

A new download, “I7-6L38-OSX-MAS.dmg”, is now available from the Inform website in the usual way:

inform7.com/download/

This continues to be 6L38: only the user interface application is different, and in fact, if we’ve got everything right then you’ll hardly notice. What changed is that the Mac App Store version is sandboxed, a stringent security feature which Apple requires for all new apps hosted there. (As Zarf noted the other day, the current main version of Inform 6L38 for Mac OS X has sandboxing turned off: we wanted to make sure nobody is prevented from using Inform because of a sandboxing bug, either ours or Apple’s.) Sandboxing restricts the access which a program can make to the computer’s hardware, and in particular it restricts the use of the filing system. Unless the user gives permission, by drags or launches or uses of the Save dialogue box, the app can only read and write from one private folder on the computer, and Apple chooses where that folder is.

The net result is that what used to be stored at

~/Library/Inform/Extensions

(where “~” is the user’s home folder) is now stored at, deep breath,

~/Library/Containers/com.inform7.inform-compiler/Data/Library/Inform/Extensions

So if you’re switching to the Mac App Store version, and we hope everybody will do in the end, you’ll need to move over (or re-install) any extensions you have installed. It’s obviously a bit fiddly to find this folder, but the menu option:

File > Show Extensions Folder

opens it in the Finder.

Some Mac OS X apps have had to compromise on certain features in order to be sandboxed: for example, BBEdit is slightly more capable if you get it directly from the makers than if you get it from the Mac App Store. We’re happy to say that that’s not true of Inform: the MAS version should be identically featured, and we don’t know of any problems with it. But we would be very grateful if users could give it a try, so that we can upload it to Apple with confidence.

For any problems you do have, you can either file a bug report to the Inform bug tracker:

inform7.com/mantis

or else email toby@tnelson.demon.co.uk (Toby being the maintainer of Inform for OS X). If things seem to work fine, that’s useful feedback too - do please let us know, or post to this thread.

Thanks in advance. It’s no fun using unstable software, but we think this build ought to be fine.

A very quick run-through (10.9.4) turns up no problems. The file options that failed in the first 6L38 release are working here.

On OSX 10.7.5, news is not so good. I was able to create a new project, but compiling failed:

Failed to create folder </Users/zarf/Downloads/tempi7.materials>
Unable to create folders in local file system

Console output:
9/23/14 6:40:07.948 PM sandboxd: ([1777]) Inform(1777) deny file-write-create /Users/zarf/Downloads/tempi7.materials
9/23/14 6:40:07.950 PM Inform: WARNING: Could not create materials folder at URL [file://localhost/Users/zarf/Downloads/tempi7.materials/](file://localhost/Users/zarf/Downloads/tempi7.materials/)
9/23/14 6:40:08.106 PM sandboxd: ([1788]) ni(1788) deny file-write-create /Users/zarf/Downloads/tempi7.materials

If I manually create the folders tempi7.materials and tempi7.materials/Release, the compile succeeds.

It looks as if we probably won’t be able to run the App Store version on 10.7.

We need to save to a .materials folder. This requires the ‘Related Items’ feature of Sandboxing, available from 10.8 onwards. We also have inter-operating executables that talk via Mach ports (Inform, GlkClient, ZoomView). This requires the ‘Group Containers’ feature of Sandboxing, available in 10.7.5 or 10.8.3 onwards. So the overall requirement for sandboxed Inform is 10.8.3 or above.

As a result of this, we’ll probably have to keep an unsandboxed version here for use on 10.7, at least for a while, but ask 10.(>=8) users to go to the Mac App Store.

I would recommend keeping the non-sandboxed version up (and continue building new non-sandboxed versions). For at least the next couple of years.