installData.json¶
This page describes the installData.json
file used in the installer.
identifiers
field¶
The identifiers
field is used to make sure the user has selected the right game/right folder before starting the install.
- For
Windows
andLinux
, it tells the installer what files identify the game- For example
HigurashiEp09.x86_64
orHigurashiEp09.exe
identify Higurashi Rei (which is Episode 9)
- For example
- For
MacOS
, it tells the installer whatCFBundleExecutable
value to look for inside a given.app
bundle- NOTE for legacy reasons,
_Data
is appended to the name, soHigurashiEp01
becomesHigurashiEp01_Data
, andHigurashi When They Cry Rei
becomesHigurashi When They Cry Rei_Data
- For Chapters 1-8,
CFBundleExecutable
was set toHigurashiEp0X
where X was the chapter number - For Higurashi Rei,
CFBundleExecutable
was set toHigurashi When They Cry Rei
- NOTE for legacy reasons,
MacOS identifier / Info.plist
notes¶
You can rename an .app
to anything you want, and since the .app
file is generally considered user facing (e.g. in Windows, you would consider the application install in program files to be not user-facing, but the shortcut to it in the start menu / desktop to be user-facing), we should not make assumptions relating its name to anything specific. Steam installs applications in a windows style (where it hides the real application in steamapps and makes "shortcut" applications for you to stick on the desktop or whatever), but GOG does it the proper macOS way and stuffs everything in the app bundle for you to do whatever you want with. Therefore, we must decide what game an .app
is by something inside of the app bundle.
The Info.plist
's CFBundleExecutable
was chosen to be the identifier, which is the name of the executable file (in Contents/MacOS
) that is to be executed to launch the app. This is nice because there's exactly one per application, which gives a nice one-to-one mapping of .app
file → name. Since we're doing a fairly fuzzy search anyways, you could also list the contents of Contents/MacOS
, which would give you the real executable plus some random other garbage folders that unity uses, but since we have the Info.plist
there with the exact specification of which thing is the actual name, why not use it?
Why is _Data
appended¶
Since we use a list of identifiers in the json now, maybe we should remove the + "_Data" that gets appended to CFBundleExecutables, previously there in an attempt to fully unify all names (and add the appropriate executable names to the identifier lists).