5 Replies Latest reply on Oct 3, 2015 1:38 PM by jbante

    How Persistent is Get(PersistentID)


      I have been using the Get(PersistentID) function to "hardwire" certain iPads to a POS system so that users don't have to login/re-login.


      It works quite nice I log the ID when the iPad first connects, then I set up the server/database and user credentials the iPad uses to logon to the system.


      Only.... PersistentID is not that Persistent.... It does change when you reinstall fm GO.  Which I can imagine and is manageable.  I use Apple Configurator to roll out the iPads, so most of them are "locked" and only setup to do one task.


      But I had one iPad that was connected to a database for about 3 weeks (the iPad only goes to sleep and wakes up, it's not used for anything else, so fmGO just reconnects the whole time).  It was working in the morning then when woken after a sleep, the PersistentID had changed... GRRR.  So I had to setup the connection again.   I wonder what triggered the change in PersistentID?


      I really miss the MAC address capabililty as that would have been handy in this case. 


      I am thinking about sending a small ID file to an iPad and use that as a key, but that's not really secure either cause people could mail it around.


      I would like to ask what other users experience are the Get(PersistentID).  I understand from old posts that older notebooks sometimes get the same ID.  Also think about other methods to create a unique hash for a device..., maybe just hide a file somewhere?

        • 1. Re: How Persistent is Get(PersistentID)

          Yep, this is a big PITA for me. Persistent is not persistent for sure. A mention in the documentation would have been nice. I don't have my devices locked down to roll out FMGo as I wish, so at any point one of my road warriors could upgrade, and make themselves unable to access the DB as their Persistent ID has changed.


          Yep, bring back Mac address or give us something that DOES NOT CHANGE (i.e. is persistent)  !



          • 2. Re: How Persistent is Get(PersistentID)

            Yep. Persistent is more like InstallationID.  They shouldn't name it persistent if it isn't persistent.  Although the definition of persistent is "for a prolonged time"... PermanentID or DeviceID  would be great.

            • 3. Re: How Persistent is Get(PersistentID)

              I have automated it so that if the PersistentID changes, but the IP adres is the same as the last few hours, it will log and update the "deviceLog" table with the new id.


              In the future when I have time, I think I might create a file on first installation with some hash in it.  Then read the hash and compute it again from something like user account, ip adress, ios version. 

              • 4. Re: How Persistent is Get(PersistentID)

                I've managed to change the peristent id on my Windows laptop twice, that I've noticed and I think I know the reason why. My guess is that FileMaker writes a file to the drive that stores the persistent ID and it gets erased or overwritten. I think one of my disk cleaning utilities erased the file.


                Why did't FileMaker use the id of the cpu, hard drive or some other part of the computer. Java is capable of deriving the serial number.

                • 5. Re: How Persistent is Get(PersistentID)

                  For privacy purposes, Apple severely limits what device-specific information iOS app developers (such as FileMaker) have access to. Each combination of app vendor and device gets an ID, Apple's "identifierForVender", and that is the only information available to FileMaker Go to identify a device. (FileMaker running on Macs & Windows uses different methods to generate PersistentIDs for those devices.) NIC address is not coming back; it would be inconsistent with Apple's strategy. Presumably the identifierForVender gets hashed to generate the Get ( PersistentID ) result. Perhaps Apple introduced some new event that generates a new identifierForVender other than uninstalling and reinstalling all FileMaker apps. There isn't anything FileMaker can do about it, and I doubt a PermanentID will ever happen as the ratchet of privacy advances.


                  You already mentioned the possibility of having a file local to the device that could persist longer than Get ( PersistentID ), and the flaw that that file can be shared between devices. You could stop that by authenticating a combination of the key in that file and Get ( PersistentID ), but then you're back where you started. All I can suggest is making the process of registering a new PersistentID as painless as you can (preferably something an end user can do without your intervention).