iOS如何獲取UDID作為授權(quán)驗(yàn)證設(shè)備碼

給大家提供一個(gè)思路吧

通過安裝描述文件獲取設(shè)備udid

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>PayloadContent</key>
        <dict>
            <key>URL</key>
            <!--這里我選擇的用本地傳輸獲取到的udid-->
            <string>http://127.0.0.1:20001/getudid</string>
            <!--接收數(shù)據(jù)的接口地址  注意這個(gè)端口失暴,得跟應(yīng)用啟動(dòng)的端口一致-->
            <!--下面會(huì)說一下怎么用本地傳輸-->
            <key>DeviceAttributes</key>
            <array>
                <string>UDID</string>
                <string>IMEI</string>
                <string>ICCID</string>
                <string>VERSION</string>
                <string>PRODUCT</string>
            </array>
        </dict>
        <key>PayloadOrganization</key>
        <string>XXXXXXXX</string> <!--組織名稱-->
        <key>PayloadDisplayName</key>
        <string>獲取設(shè)備UDID</string> <!--安裝時(shí)顯示的標(biāo)題-->
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>xxx.xxxxxxxx.xxx</string> <!--自己隨機(jī)填寫的唯一字符串-->
        <key>PayloadIdentifier</key>
        <string>xxx.xxxxxxxx-service</string>
        <key>PayloadDescription</key>
        <string>本文件僅用來獲取設(shè)備ID</string> <!--描述-->
        <key>PayloadType</key>
        <string>Profile Service</string>
    </dict>
</plist>

打開App先跳轉(zhuǎn)安裝描述文件獲取udid,然后獲取到的udid放在緩存受神,自己設(shè)置個(gè)緩存烤惊,然后本地傳輸?shù)絘pp作為設(shè)備碼進(jìn)行驗(yàn)證
因?yàn)槊總€(gè)驗(yàn)證都不同,我只能提供思路你們自己改了

[NSUserDefaults.standardUserDefaults objectForKey:@"目錄地址"]

也可以保存到keychain中褂傀,我用的是SFHFKeychainUtils

//保存獲取到的udid到Keychain中
BOOL saved = [SFHFKeychainUtils storeUsername:@"UDID" andPassword:udid
                             forServiceName:www.abc.com updateExisting:YES error:&error];
    if (!saved) {
      NSLog(@"?Keychain保存密碼時(shí)出錯(cuò):%@", error);
    }else{
      NSLog(@"?Keychain保存密碼成功!%@",udid);
    }

app驗(yàn)證通過后的二次驗(yàn)證可以提取Keychain中的udid進(jìn)行驗(yàn)證

//讀取Keychain中的udid
    NSError *error;
    NSString * string = [SFHFKeychainUtils getPasswordForUsername:@"UDID" andServiceName:www.abc.com error:&error];
    if (!string) {
    }
    if(error || !string){
        NSLog(@"?從Keychain里獲取密碼出錯(cuò):%@", error);
        string = [SFHFKeychainUtils getPasswordForUsername:@"UUID" andServiceName:www.abc.com error:&error];
    }
    else{
        NSLog(@"?從Keychain里獲取密碼成功加勤!密碼為%@",string);
    }
    return string;

用127.0.0.1本地傳輸udid到app仙辟,可以使用 HTTPServer
切記 HTTPServer 設(shè)置的端口一定要與描述文件的接口端口一致同波!

//設(shè)置端口20001
    [_httpServer setPort:20001];

否則安裝描述文件將會(huì)出現(xiàn) 無法連接服務(wù)器 的情況
判斷 POST請(qǐng)求,判斷 /getudid 接收數(shù)據(jù)
設(shè)置接收的 xml 數(shù)據(jù)并解析 且取出解析后的 UDID 即可叠国。

//解析返回的 xml 數(shù)據(jù) 取出udid
    NSDictionary *plistInfo = nil;
    @autoreleasepool {
    NSRange dataRange = NSMakeRange(0, data.length);
    NSString *prefix = @"<?xml";
    NSString *suffix = @"</plist>";
    NSRange prefixRange = [data rangeOfData:[prefix dataUsingEncoding:NSISOLatin1StringEncoding] options:kNilOptions range:dataRange];
    NSRange suffixRange = [data rangeOfData:[suffix dataUsingEncoding:NSISOLatin1StringEncoding] options:kNilOptions range:dataRange];
    if (prefixRange.location == NSNotFound || suffixRange.location == NSNotFound) {
        return nil;
    }
    NSRange enableRange;
    enableRange.location = prefixRange.location;
    enableRange.length = NSMaxRange(suffixRange) - enableRange.location;
    NSData *plist = [data subdataWithRange:enableRange];
    plistInfo = [NSPropertyListSerialization propertyListWithData:plist options:NSPropertyListImmutable format:NULL error:nil];
    }
//取出udid
    NSString *udid = [plistInfo objectForKey:@"UDID"];
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末未檩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子粟焊,更是在濱河造成了極大的恐慌冤狡,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件项棠,死亡現(xiàn)場離奇詭異悲雳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)香追,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門怜奖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人翅阵,你說我怎么就攤上這事∏ㄑ耄” “怎么了掷匠?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長岖圈。 經(jīng)常有香客問我讹语,道長,這世上最難降的妖魔是什么蜂科? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任顽决,我火速辦了婚禮,結(jié)果婚禮上导匣,老公的妹妹穿的比我還像新娘才菠。我一直安慰自己,他們只是感情好贡定,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布赋访。 她就那樣靜靜地躺著,像睡著了一般缓待。 火紅的嫁衣襯著肌膚如雪蚓耽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天旋炒,我揣著相機(jī)與錄音步悠,去河邊找鬼。 笑死瘫镇,一個(gè)胖子當(dāng)著我的面吹牛鼎兽,可吹牛的內(nèi)容都是我干的答姥。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼接奈,長吁一口氣:“原來是場噩夢啊……” “哼踢涌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起序宦,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤睁壁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后互捌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體潘明,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年秕噪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钳降。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腌巾,死狀恐怖遂填,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情澈蝙,我是刑警寧澤吓坚,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站灯荧,受9級(jí)特大地震影響礁击,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逗载,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一哆窿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧厉斟,春花似錦挚躯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至号涯,卻和暖如春目胡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背链快。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國打工誉己, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人域蜗。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓巨双,卻偏偏與公主長得像噪猾,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子筑累,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容