You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by "Shazron Abdullah (Created) (JIRA)" <ji...@apache.org> on 2011/11/28 22:03:41 UTC

[jira] [Created] (CB-49) UUID replacement

UUID replacement
----------------

                 Key: CB-49
                 URL: https://issues.apache.org/jira/browse/CB-49
             Project: Apache Callback
          Issue Type: Task
          Components: iOS
         Environment: iOS 5
            Reporter: Shazron Abdullah


reported at: 
by: 

As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).

This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).

**https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5**

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CB-49) UUID replacement

Posted by "Shazron Abdullah (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shazron Abdullah updated CB-49:
-------------------------------

    Description: 
reported at: https://github.com/phonegap/phonegap-iphone/issues/238
by: https://github.com/sandstrom

As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).

This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).

https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

  was:
reported at: https://github.com/phonegap/phonegap-iphone/issues/238
by: https://github.com/sandstrom

As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).

This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).

**https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5**

    
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Shazron Abdullah (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13241839#comment-13241839 ] 

Shazron Abdullah commented on CB-49:
------------------------------------

Against Apple policy IF you didn't ask for permission first: http://tapbots.com/blog/news/udid-is-now-udidont
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Shazron Abdullah (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13158762#comment-13158762 ] 

Shazron Abdullah commented on CB-49:
------------------------------------

Looks like for iOS 5 it will be deprecated - but not removed immediately and we will probably follow suit to allow people the transition time to change. If it is to be removed (say in iOS 6 most probably), we will provide a replacement only then.
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Callback
>          Issue Type: Task
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> **https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5**

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Avidan Chen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290169#comment-13290169 ] 

Avidan Chen commented on CB-49:
-------------------------------

Thank you for taking the time to reply. After further studying this issue, I have another suggestion:
If the issue here is the bundle identifier, which according to what you're saying is public, then let's not use it. Let's use a different key to hash the MAC address with, which is not known to everyone.

What if each application will supply a secret key in JavaScript to Cordova, and Cordova will take this secret key and hash it together with the device's MAC address? The key could come from a remote server, it doesn't have to be contained in the application itself.

That way, no one but the developers of the application will be able to identify the user, as they alone will know the secret key. Moreover, since this "secret key" will not change as well as the MAC address, the hashed value will be the same whether the user re-installs the app or updates iOS version, etc.

I really need a way to uniquely identify a device across app reinstallation and device wipe. Every other implementation I've seen  (mainly OpenUDID and SecureUDID) has stored the generated unique ID in the Pasteboard which to my understanding is wiped if the user uninstalls the application.

I've seen this method discussed here : http://techcrunch.com/2012/03/30/appredeem-odid/
However I wasn't able to locate their code (although the article states that their SDK is open source).
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Resolved] (CB-49) UUID replacement

Posted by "Shazron Abdullah (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shazron Abdullah resolved CB-49.
--------------------------------

    Resolution: Fixed
    
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CB-49) UUID replacement

Posted by "Shazron Abdullah (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shazron Abdullah updated CB-49:
-------------------------------

         Priority: Blocker  (was: Minor)
    Fix Version/s:     (was: 2.0.0)
                   1.6.0
         Assignee: Shazron Abdullah
       Issue Type: Bug  (was: Task)
    
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> **https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5**

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Shazron Abdullah (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398993#comment-13398993 ] 

Shazron Abdullah commented on CB-49:
------------------------------------

Using [UIDevice uniqueIdentifier] is no good - Apple is rejecting apps that use it even though its deprecated and can be used (and they have). I posted this whole bug thread on the callback-dev mailing list - the other devs didn't have any support for your proposed solution (earlier, not your latest comment) and are thinking of (my proposal of) eliminating uuid entirely and using a JavaScript generated uuid and saving to localStorage (precisely what Apple recommends).

So the plan (right now, unless we scrap uuid) is to do what Apple recommends (generate a uuid and save to user defaults), and in iOS 6, use the new functions.
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Avidan Chen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13396493#comment-13396493 ] 

Avidan Chen commented on CB-49:
-------------------------------

OK. Understood. I thought this would be good for other platforms because it's simple to implement and protects the user's privacy, but if you think otherwise...

But if Apple is offering identifierForVendor - why not use it? According to the description, this has the exact functionality of the previous UUID implementation - uniquely identifying a device for us, minus the privacy issues.

If Apple is now replacing [UIDevice uniqueIdentifier] with [UIDevice identifierForVendor] surely they won't ban applications using the [UIDevice uniqueIdentifier] in iOS 5 when there's no alternative... 
So maybe device.uuid could return [UIDevice uniqueIdentifier] in iOS 5, and [UIDevice identifierForVendor] in iOS 6? We would need to adjust for users switching between iOS 5 & 6, but it'd be a one time change to the UUID for us, instead of getting a new UUID for every installation, which is useless to us.
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CB-49) UUID replacement

Posted by "Shazron Abdullah (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shazron Abdullah updated CB-49:
-------------------------------

         Priority: Minor  (was: Major)
    Fix Version/s: 2.0.0
    
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Callback
>          Issue Type: Task
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Priority: Minor
>             Fix For: 2.0.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> **https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5**

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Shazron Abdullah (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13286174#comment-13286174 ] 

Shazron Abdullah commented on CB-49:
------------------------------------

No - iOS is moving away from UDID for a reason (privacy) and we are following the spirit of that intent. 

Encoding the MAC address + bundle identifier I can argue, uniquely identifies the user. If one had the MAC address, and one knows bundle-identifiers of any app in the App Store (and this information is not a secret, it is contained in the app's Info.plist), you can generate the hash and compare to your logs - thus you can track the user easily. If the bundle-id of an app was secret, you may have a case that this is "one way", but it is not.
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (CB-49) UUID replacement

Posted by "Shazron Abdullah (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13396362#comment-13396362 ] 

Shazron Abdullah edited comment on CB-49 at 6/18/12 11:38 PM:
--------------------------------------------------------------

No FileEntry.setMetadata is a no-op for the other implementations, and may be implemented. Adding this new function is useless for the other implementations.

With iOS 6 beta out - we will be going with Apple's recommendation in UIDevice as stated in their docs (need Apple Dev login):
https://developer.apple.com/library/prerelease/ios/#documentation/UIKit/Reference/UIDevice_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instp/UIDevice/uniqueIdentifier
(note, link only works in Safari for some reason - Chrome/Firefox complains)

Basically - we will just create a new UUID per app instance like our docs mentioned.
                
      was (Author: shazron):
    No FileEntry.setMetadata is a no-op for the other implementations, and may be implemented. Adding this new function is useless for the other implementations.

With iOS 6 beta out - we will be going with Apple's recommendation in UIDevice as stated in their docs (need Apple Dev login):
https://developer.apple.com/library/prerelease/ios/#documentation/UIKit/Reference/UIDevice_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instp/UIDevice/uniqueIdentifier

Basically - we will just create a new UUID per app instance like our docs mentioned.
                  
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CB-49) UUID replacement

Posted by "Shazron Abdullah (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shazron Abdullah updated CB-49:
-------------------------------

    Description: 
reported at: https://github.com/phonegap/phonegap-iphone/issues/238
by: https://github.com/sandstrom

As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).

This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).

**https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5**

  was:
reported at: 
by: 

As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).

This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).

**https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5**

    
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Callback
>          Issue Type: Task
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> **https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5**

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Shazron Abdullah (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13398996#comment-13398996 ] 

Shazron Abdullah commented on CB-49:
------------------------------------

If we eliminate device.uuid completely, we would extract the current uuid implementations out of core and have a cross-platform plugin that can do what you desire. It just won't be part of core.

This can probably coincide with our pluginstall (plugin installer) tool that we plan for 2.0 which allows easy installation of (cross-platform) plugins with our proposed plugin packaging system.
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (CB-49) UUID replacement

Posted by "Shazron Abdullah (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13396362#comment-13396362 ] 

Shazron Abdullah edited comment on CB-49 at 6/18/12 11:37 PM:
--------------------------------------------------------------

No FileEntry.setMetadata is a no-op for the other implementations, and may be implemented. Adding this new function is useless for the other implementations.

With iOS 6 beta out - we will be going with Apple's recommendation in UIDevice as stated in their docs (need Apple Dev login):
https://developer.apple.com/library/prerelease/ios/#documentation/UIKit/Reference/UIDevice_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instp/UIDevice/uniqueIdentifier

Basically - we will just create a new UUID per app instance like our docs mentioned.
                
      was (Author: shazron):
    No FileEntry.setMetadata is a no-op for the other implementations, and may be implemented. Adding this is useless for the other implementations.

With iOS 6 beta out - we will be going with Apple's recommendation in UIDevice as stated in their docs (need Apple Dev login):
https://developer.apple.com/library/prerelease/ios/#documentation/UIKit/Reference/UIDevice_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instp/UIDevice/uniqueIdentifier

Basically - we will just create a new UUID per app instance like our docs mentioned.
                  
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Shazron Abdullah (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13396362#comment-13396362 ] 

Shazron Abdullah commented on CB-49:
------------------------------------

No FileEntry.setMetadata is a no-op for the other implementations, and may be implemented. Adding this is useless for the other implementations.

With iOS 6 beta out - we will be going with Apple's recommendation in UIDevice as stated in their docs (need Apple Dev login):
https://developer.apple.com/library/prerelease/ios/#documentation/UIKit/Reference/UIDevice_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instp/UIDevice/uniqueIdentifier

Basically - we will just create a new UUID per app instance like our docs mentioned.
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Avidan Chen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13292414#comment-13292414 ] 

Avidan Chen commented on CB-49:
-------------------------------

Excellent! I was hoping you'd approve of this solution. 

If you're changing the implementation anyway, why not move towards a more complete solution? After all, the hashing of a value provided from JavaScript together with the MAC address seems rather simple to implement (I'm saying this after looking at the code that hashes the MAC address with the bundle identifier - the challenge for me, since I'm a .NET developer and know nothing about Objective-C, is how to write a plugin for Cordova in iOS).

I agree that this is specific for iOS, but so does FileEntry.setMetadata and it's still in the core functionality. Rather than using device.uuid for iOS, maybe you can create a function like device.getHashedUUID(salt) which initially would be supported in iOS only, and later could even be implemented in all of the platforms(using the same logic of hashing the provided value with the MAC address)? After all, getting a secure, anonymous and most importantly a consistent way to identify devices without compromising user's privacy seems to be important enough to be supported by all platforms. 

Do you think it would be possible to implement something like this for Cordova 1.9?
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Avidan Chen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13400319#comment-13400319 ] 

Avidan Chen commented on CB-49:
-------------------------------

Thanks. I appreciate you taking the time to address my questions in this matter.

In the user registration screen in my app, I'm sending the device.uuid to the server as part of the new user credentials. Later, when a user is authorized by their manager to use the app and tries to log in, I'm sending the uuid as part of the credentials. If the uuid matches what is stored in the DB, the user is allowed to log in. Otherwise, their manager needs to approve the new device (which is a requirement that came from the product manager, as my application allows access to sensitive information, and it's vital for the manager to know from where the employee accesses this information).

Apple has approved my app in April which was running Phonegap 1.2, even though I'm using device.uuid.

I understand your concern that Apple might reject apps using device.uuid, but unfortunately I cannot wait for the release of 2.0.
As Apple have already approved my app once, I think I'll try my luck again, but this time with: 

if (!ios6) 
  [UIDevice uniqueIdentifier] 
else 
  [UIDevice identifierForVendor] 

as a plugin. Hopefully they won't reject my app.

Do you know of any tutorial on how to write plugins for Cordova 1.8 for iOS and Android? I can't seem to find any.


                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Avidan Chen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13285720#comment-13285720 ] 

Avidan Chen commented on CB-49:
-------------------------------

Is there any chance the above implementation (https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5) will be implemented into Apache Cordova iOS? I really need a way to identify a device in a consistent manner, even if the user uninstalls and re-installs my app (further explanation on why exactly I need that can be found here: https://groups.google.com/forum/?fromgroups#!searchin/phonegap/UUID/phonegap/benUNTXTUYM/La-9PJSNVI0J).

>From what I understand, the above implementation is good enough not to upset Apple as it does not access the user's private information, nor does it allow tracking a device using this id (as the mac address + bundle identifier is encoded one way), and it's solid enough so that the same value will be returned even if the user uninstalls and re-installs my app, or updates the iOS version, etc.

The current implementation of device.uuid in iOS gives me a different value every time I update my app or uninstalls and re-installs it, which is a really big issue for me.
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CB-49) UUID replacement

Posted by "Shazron Abdullah (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CB-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13292092#comment-13292092 ] 

Shazron Abdullah commented on CB-49:
------------------------------------

That is a suitable alternative - but requires more work on the user's part, to combine these values for the hash. Right now, I don't think this is the right solution for the Cordova API device.uuid variable (there is a dependency on an external variable, this secret key - and it is iOS specific), but it is suitable for a plugin.

All core Cordova functionality is implemented as plugins (these are core plugins). If after discussion with all the devs it is suitable for all platforms and aligns with our project goals, we can pull it in as core (if copyrights are assigned to Apache). For example, our plan is to pull in the ChildBrowser plugin into the core for 2.0.

I am however, changing the UUID implementation again since iOS 5.x introduced new behaviour, while still not unique (not based off MAC address), it has the same lifetime as described in the iOS quirk for device.uuid: CB-748
                
> UUID replacement
> ----------------
>
>                 Key: CB-49
>                 URL: https://issues.apache.org/jira/browse/CB-49
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>         Environment: iOS 5
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> reported at: https://github.com/phonegap/phonegap-iphone/issues/238
> by: https://github.com/sandstrom
> As you might have read iOS 5 will remove the UDID (http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/).
> This is an excellent alternative and it would be nice if you would implement something along these lines to keep the functionality. The idea of hashing together with the bundle id is great, because it makes it impossible to track across applications, which is what apple wanted to fix (although it can be circumvented that would only anger them, and tracking across apps isn't required for most apps anyway).
> https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira