However, appStoreReceiptHash() returns nil and serialNumberHash().
You have a typo -- did you mean to say that serialNumberHash() returns the empty string?
purchaseSource() returns "CC" even though I downloaded a "manual installation" package as I couldn't get it the trail version upgrade to work on windows.
From which page did you download? Somebody can correct me, but I think all downloads, no matter how you obtain them, start out as the LR CC free trial until you either login to CC or you enter a serial number.
My guess here is that serialNumberHash() is behaving as documented:d "As of Lightroom 5.6, if the running version of Lightroom was installed from the Adobe Creative Cloud, an empty string will be returned." Since all downloads start out as a LR CC free trial, there is no way to obtain the serial number hash of serialized installations from those downloads.
While LrApplication provides a way to identify installations purchased from the Mac App store or installed from DVD, there doesn't seem to be any way to uniquely identify registrations of people who installed from CC, whether they subsequently signed in to CC or serialized the installation with a perpetual-license serial number. You could use macAddressHash(), but then you'd need to handle cases where that installation moves to a new computer.
Thanks - yes, I have typo - sorry. serialNumberHash() returns the empty string.
I was first running the trial version (windows 7 64bit) through CC and when I bought my perpetual license I tried to convert the trial version to the PC version. Adobes guide (Adobe Photoshop Lightroom Help | Serialize Lightroom CC trial to activate as Lightroom 6) apparently does not work for the windows version - Lr doesn't start if you're not logged in to CC.
Instead I downloaded from Adobes site - they provide a page for download when you have purchased a license. This version is apparently logging into CC, but the CC agent is not running in the background as was the case for the trial version.
Anyway, it would be nice if serialNumberHash() could return a hash if a serial number has been entered even if purchaseSource() returns "CC".
Meanwhile, I think I will use the mac address hash in case the other two methods fail to provided a id-string of the user.