Art, what happens if the user has disabled iCloud?
Both apps can generate a secret key that is reproducible only by the user. In the paid update, it tells the user what that secret key is and gives them a link to download the free app. Then the free app generates this same key, and asks the user what it is. If the user is correct, the free app unlocks.
Since UUID isn't allowed anymore, this secret key might be generated from some combination of the following data (I'm not sure how much of this is accessible, these are just some ideas: )
- The current date / time. Maybe the key is only good for an hour.
- The current location. Maybe the key is only good within a few feet.
- The device's name (it's accessible, isn't it? Maybe not...)
- The names of nearby wifi routers
- The carrier
- The model of device
- The version of iOS the device is running
A slight variation on this idea... I believe apps are allowed to communicate with each other through special URLs. You might have the paid version send the secret key directly to the free app via a special URL without having to harass the user as much. This probably requires that the user installs the free app before upgrading from the paid app.
Edit: One other variation: email the secret key. Put the key in a document type you create and your free app can open. Have the paid version of the app present the user with an email prefilled with the attachment and ask them to hit the send or save as draft button, then open the email and open the attachment in the free app.