{"id":13393832,"url":"https://github.com/ylechelle/OpenUDID","last_synced_at":"2025-03-13T19:31:50.506Z","repository":{"id":62449729,"uuid":"2295723","full_name":"ylechelle/OpenUDID","owner":"ylechelle","description":"[OpenUDID IS NOW DEPRECATED] Open source initiative for a universal and persistent UDID solution for iOS","archived":false,"fork":false,"pushed_at":"2018-01-20T01:15:01.000Z","size":327,"stargazers_count":2087,"open_issues_count":34,"forks_count":436,"subscribers_count":105,"default_branch":"master","last_synced_at":"2024-05-22T15:31:44.735Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"OpenUDID.org","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ylechelle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-08-30T15:40:28.000Z","updated_at":"2024-05-21T01:55:20.000Z","dependencies_parsed_at":"2022-11-01T23:30:32.134Z","dependency_job_id":null,"html_url":"https://github.com/ylechelle/OpenUDID","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ylechelle%2FOpenUDID","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ylechelle%2FOpenUDID/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ylechelle%2FOpenUDID/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ylechelle%2FOpenUDID/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ylechelle","download_url":"https://codeload.github.com/ylechelle/OpenUDID/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243469221,"owners_count":20295713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T17:01:01.058Z","updated_at":"2025-03-13T19:31:49.770Z","avatar_url":"https://github.com/ylechelle.png","language":"Objective-C","readme":"##IMPORTANT NOTE\n\nPlease read this blog post before considering using OpenUDID:\n\n\thttp://blog.appsfire.com/udid-is-dead-openudid-is-deprecated-long-live-advertisingidentifier/\n\n####OpenUDID project notes\n\n\tIMPORTANT: IF YOU ARE GOING TO INTEGRATE OpenUDID INSIDE A (STATIC) LIBRARY,\n\tPLEASE MAKE SURE YOU REFACTOR THE OpenUDID CLASS WITH A PREFIX OF YOUR OWN,\n\tE.G. ACME_OpenUDID. THIS WILL AVOID CONFUSION BY DEVELOPERS WHO ARE ALSO\n\tUSING OpenUDID IN THEIR OWN CODE. \n\n![image](http://appsfire.com/images/misc/OpenUDID_Industry_supporters_2.png)\n\n####Follow OpenUDID on Twitter\nhttp://twitter.com/OpenUDID\n\n####Who is behind OpenUDID\nThe project was initiated by Yann Lechelle (co-founder Appsfire) on 8/28/11\n\n- https://github.com/ylechelle\n\nMany have joined the effort since. Please browse this github projects to discover the many contributors (discussions, code, pull requests, alternative branches, etc…)\n\n- https://github.com/ylechelle/OpenUDID/network\n- https://github.com/ylechelle/OpenUDID/contributors\n- https://github.com/ylechelle/OpenUDID/issues\n\n####Master Branches \u0026 ports to other OSes\n- iOS / MacOS code: https://github.com/ylechelle/OpenUDID\n- Android code: https://github.com/vieux/OpenUDID\n- CSharp.Net \u0026 SilverLight: https://github.com/jasonlamkk/OpenUDID.Net\n\n####Usage\n\n\t#include \"OpenUDID.h\"\n\tNSString* openUDID = [OpenUDID value];\n\n####Synopsis\nOpenUDID is a drop-in replacement for the deprecated uniqueIdentifier property of the UIDevice class on iOS (a.k.a. UDID) and otherwise is an industry-friendly equivalent for iOS and Android, **and most recently Windows C# and Silverlight (see links above)**.\n\nThe agenda for this community driven project is to:\n- Provide a reliable proxy and replacement for a universal unique device identifier. That is, persistent and sufficiently unique, on a per device basis.\n- NOT use an obvious other sensitive unique identifier (like the MAC address) to avoid further deprecation and to protect device-level privacy concerns\n- Enable the same OpenUDID to be accessed by any app on the same device\n- Supply open-source code to generate and access the OpenUDID, for iOS and  Android\n- Incorporate, from the beginning, a system that will enable user opt-out to match Apple’s initial intent\n\n####Context\nIf you’re not already familiar with UDID’s, it’s a critical piece of information used for analytics or CRM purposes. A developer could use a UDID as a means to track how much time a user spent in his free app before upgrading to the paid version. UDIDs are also helpful for tracking the source of a download when advertising on an ad network. This is a fairly universal need in a thriving ecosystem: developers need the traceability from clicks to downloads to ensure that they pay the right price for their promotion. Proper tracking and funnel conversion is what has made the web a better place, with healthy competition and quantifiable metrics.\n\nIn the wake of Apple’s decision to deprecate UDID, some ad networks have already introduced their own proprietary solutions or worse adopted a low hanging fruit like the MAC address. The main motivation here was to find a UDID replacement not owned by any single provider, not bound to the device in the hardware sense. This open source initiative is to enable a better solution for thousands of other mobile app developers.\n\n#####Version History\n- August 2011: launch of the initiative\n- Sept. 9 2011: v1.0 of the code meeting all requirements\n- March 25 2012: removing all traces of the offending call on iOS\n- June 7 2013: call for deprecation announced here:\n\thttp://blog.appsfire.com/udid-is-dead-openudid-is-deprecated-long-live-advertisingidentifier/\n\n####Contributions needed\nEquivalent OpenUDID systems on Blackberry, other platforms, etc...\n\n####Seals to add on your sites if you use OpenUDID\n![image](http://appsfire.com/images/misc/openudid_seal_large.png)\n![image](http://appsfire.com/images/misc/openudid_seal_medium.png)\n![image](http://appsfire.com/images/misc/openudid_seal_small.png)\n","funding_links":[],"categories":["Object-C 库","Objective-C","etc"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fylechelle%2FOpenUDID","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fylechelle%2FOpenUDID","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fylechelle%2FOpenUDID/lists"}