File currentApplicationFile & AppTranslocation


#1

So my custom installer app gets the currentApplicationFile location and uses that to find the payload…

The installer works fine on my system and 99.9% of the beta testers’ systems… but I’ve had a report from a user who ran the installer on a brand new Mac Mini and everything installed fine… but when they create a new user account, when they ran the installer it couldn’t locate the readme text file (which is the first thing it displays)… so I tried to recreate the exact scenario with a new drive and Sierra install… and couldn’t recreate the problem.

Tonight I did a remote session with someone in Mexico running a Macbook Pro with the following from his log file:

 Operating System:              Mac OSX 10.12.4 - [64 Bit]
  Operating System Language:    es, Display Language: es-MX
  System Memory:                8,192 MB
  CPU:                          GenuineIntel - 2,900 MHz, 4 cores

And it also couldn’t find the Readme file… and his log shows:

Unable to locate: /private/var/folders/d5/k2v35kx93fb36_mdy40t6lmc0000gn/T/AppTranslocation/19462661-938F-xxxx-xxxx-9B70C7F0838A/d/Installer/Documents/Readme.txt

The code is:

bool getLicenseText (String& szText)
{
    File fResourcePath = File::getSpecialLocation (File::SpecialLocationType::currentApplicationFile);

    fResourcePath = fResourcePath.getParentDirectory().getChildFile ("Installer").getChildFile ("Documents").getChildFile ("License.txt");

    if (fResourcePath.existsAsFile())
        {
        szText = fResourcePath.loadFileAsString();
    
        return true;
        }

    Logger::writeToLog ("Unable to locate: " + fResourcePath.getFullPathName());

    return false;
}

EDIT:

AppTranslocation seems to be related to Gatekeeper… but the installer is signed.

https://github.com/potionfactory/LetsMove/issues/56

Anyone dealt with this?

Thanks,

Rail