偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Part.1 什么是Provisioning Profile

移動(dòng)開(kāi)發(fā) iOS
在iOS開(kāi)發(fā)時(shí),一般都會(huì)涉及到配置文件的安裝,但是在簽名的過(guò)程中往往會(huì)遇到多種問(wèn)題。你可能通過(guò)google,在Stack Overflow上找到一些類似的問(wèn)題,并成功把問(wèn)題解決掉,然后接著做別的任務(wù)。我見(jiàn)過(guò)解決上面問(wèn)題的方法是“刪除所有的配置文件,并重頭開(kāi)始”。一般這是可以解決問(wèn)題的,不過(guò)本系列文章的目標(biāo)是讓你不用刪除所有的配置文件從頭開(kāi)始,就可以解決上面的問(wèn)題。

[[71896]] 

  當(dāng)你接觸iOS開(kāi)發(fā),一般都會(huì)涉及到Provisioning Profile(配置文件)。大多數(shù)時(shí)候是通過(guò)蘋(píng)果的“Development Provisioning Assistant”,將配置文件安裝到正確的地方,并使用Keychain Access(鑰匙串訪問(wèn)程序)獲取證書(shū)和密鑰,并將其安裝到鑰匙串中。一段時(shí)間過(guò)后,你可能會(huì)遇到如下問(wèn)題:

 

Code Sign error(代碼簽名錯(cuò)誤):

The executable was signed with invalid entitlements.(使用了無(wú)效的證書(shū)對(duì)程序進(jìn)行了簽名) 
Valid signing identity not found.(沒(méi)有找到有效的簽名標(biāo)示) 
No unexpired provisioning profiles found that contain any of the keychain’s signing certificates(在鑰匙串的簽名證書(shū)中,沒(méi)有發(fā)現(xiàn)期望的配置文件)

 

  遇到上面的問(wèn)題后,你可能通過(guò)google,在Stack Overflow上找到一些類似的問(wèn)題,并成功把問(wèn)題解決掉,然后接著做別的任務(wù)。我見(jiàn)過(guò)解決上面問(wèn)題的方法是“刪除所有的配置文件,并重頭開(kāi)始”。一般這是可以解決問(wèn)題的,不過(guò)本系列文章的目標(biāo)是讓你不用刪除所有的配置文件從頭開(kāi)始,就可以解決上面的問(wèn)題。

 

開(kāi)始吧

  每個(gè)配置文件實(shí)際上都是一個(gè)用PKCS#7簽名后的plist文件。PKCS一組公鑰密碼學(xué)標(biāo)準(zhǔn)。PKCS#7是加密消息語(yǔ)法的標(biāo)準(zhǔn)。蘋(píng)果使用這個(gè)標(biāo)準(zhǔn)對(duì)plist文件進(jìn)行簽名,通過(guò)簽名,OS(操作系統(tǒng))可以驗(yàn)證被安裝的程序是來(lái)自合法的開(kāi)發(fā)者(通過(guò)驗(yàn)證可以知道plist文件中的內(nèi)容有沒(méi)有被修改過(guò))。plist文件中的最后一部分是非常重要的,稍后你將知道為什么。

  在Terminal(終端程序)中使用vi打開(kāi)一個(gè)配置文件,可以看到類似如下的內(nèi)容:


0<82>^^è^F      *<86>H<86>÷^M^A^G^B <82>^^Ù0<82>^^Õ^B^A^A1^K0   ^F^E+^N^C^B^Z^E^@0<82>^N®^F     *<86>H<86>÷^M^A^G^A <82>^N<9f>^D<82>^N<9b><?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>


上面這部分內(nèi)容是PKCS#7簽名的頭部。往下看到的許多內(nèi)容才是真正的簽名:

</dict>    
   </plist>     
   <82>^M²0<82>^Cù0<82>^Bá ^C^B^A^B^B^A^_0^M^F    *<86>H<86>÷^M^A^A^E^E^@0y1^K0   ^F^CU^D^F^S^BUS1^S0^Q^F^CU^D    
    ^S    
    Apple Inc.1&0$^F^CU^D^K^S^]Apple Certification Authority1-0+^F^CU^D^C^S$Apple iPhone Certification Authority0^^^W^M080521020415Z^W^M200521020415Z0Y1^K0 ^F^CU^D^F^S^BUS1^S0^Q^F^CU^D   

    ^S   
    Apple Inc.1503^F^CU^D^C^S,Apple iPhone OS Provisioning Profile Signing0<82>^A"0^M^F     *<86>H<86>÷^M^A^A^A^E^@^C<82>^A^O^@0<82>^A

 

  注意觀察上面內(nèi)容的底部,可以看到類似這樣的字符串:Apple Inc., Apple Certification Authority 和 Apple iPhone OS Provisioning Profile Signing,通過(guò)這些內(nèi)容可以知道這個(gè)文件進(jìn)行了數(shù)字簽名。配置文件是通過(guò)iOS Provisioning Portal創(chuàng)建的。當(dāng)你選擇了App ID,以及適當(dāng)數(shù)量的設(shè)備UDIDs和Entitlement之后,蘋(píng)果會(huì)將所有的這些信息數(shù)字簽名到配置文件(Provisioning Profile)中,這樣iOS就可以驗(yàn)證配置文件是否真的由蘋(píng)果分發(fā)。

 

  當(dāng)這個(gè)配置文件被數(shù)字簽名之后,你可能會(huì)問(wèn)“我如何驗(yàn)證這個(gè)簽名?”,在Terminal程序中,你可以使用openssl程序進(jìn)行驗(yàn)證。Openssl不僅可以驗(yàn)證簽名,還可以將簽名信息打印出來(lái),在Terminal程序中輸入如下內(nèi)容就可以進(jìn)行驗(yàn)證:

openssl smime -in /path/to/your.mobileprovision -inform der -verify

 

  現(xiàn)在,如果你希望手動(dòng)編輯一下配置文件。比如你想把蘋(píng)果新設(shè)備的UDID添加到配置文件中(不通過(guò)Provisioning Portal)。編輯之后,驗(yàn)證會(huì)失敗,并得到如下類似的信息:

openssl smime -in Key_Grinder_Beta_Dev.mobileprovision -inform der -verify
Error reading S/MIME message
10163:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:/SourceCache/OpenSSL098/OpenSSL098-47/src/crypto/asn1/tasn_dec.c:1315:
10163:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:/SourceCache/OpenSSL098/OpenSSL098-47/src/crypto/asn1/tasn_dec.c:657:Field=signer_info, Type=PKCS7_SIGNED
10163:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:/SourceCache/OpenSSL098/OpenSSL098-47/src/crypto/asn1/tasn_dec.c:747:
10163:error:0D08403A:asn1 encoding routines:ASN1_TEMPLATE_EX_D2I:nested asn1 error:/SourceCache/OpenSSL098/OpenSSL098-47/src/crypto/asn1/tasn_dec.c:577:Field=d.sign,Type=PKCS7

 

  這還不是我見(jiàn)過(guò)最好的錯(cuò)誤(蘋(píng)果限制了每個(gè)開(kāi)發(fā)者賬號(hào)只能最多使用100臺(tái)設(shè)備,并防止你添加更多的UDIDs)

 

  本文介紹了一個(gè)配置文件的基本知識(shí)。下一篇文章將深入介紹plist文件中的內(nèi)容——這些信息對(duì)你的程序和Xcode意味著什么呢?

 

來(lái)源:破船的博客

責(zé)任編輯:佚名 來(lái)源: cocoachina
相關(guān)推薦

2018-10-26 14:14:19

Zigbee無(wú)線安全網(wǎng)絡(luò)拓?fù)?/a>

2013-05-03 14:21:15

應(yīng)用設(shè)計(jì)

2022-02-14 09:24:15

SwiftUI協(xié)議

2021-01-10 10:30:24

站點(diǎn)隔離Chrome漏洞

2011-04-01 15:53:20

T-SQLDateTime

2023-07-17 07:25:48

2021-03-20 22:46:22

IaaSSaaSPaaS

2020-09-11 11:29:34

滲透測(cè)試風(fēng)險(xiǎn)評(píng)估網(wǎng)絡(luò)安全

2009-03-04 10:10:49

2014-03-27 15:01:50

算法C++

2020-10-26 10:58:39

Volatility的

2017-02-20 10:24:41

2018-03-05 08:23:40

物聯(lián)網(wǎng)互聯(lián)網(wǎng)網(wǎng)絡(luò)技術(shù)

2020-07-14 14:59:00

控制反轉(zhuǎn)依賴注入容器

2023-09-01 13:49:00

內(nèi)存進(jìn)程線程

2015-03-06 17:24:56

Android應(yīng)用安全安卓應(yīng)用安全

2017-12-19 21:29:58

物聯(lián)網(wǎng)區(qū)塊鏈大數(shù)據(jù)

2020-05-12 09:39:32

計(jì)算機(jī)時(shí)間系統(tǒng)

2015-07-08 10:35:17

2025-03-20 09:59:55

Spring@ProfileJava
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)