欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

iOS Code Signing: 解惑

系統(tǒng) 2396 0

?

免責申明(必讀!):本博客提供的所有教程的翻譯原稿均來自于互聯(lián)網,僅供學習交流之用,切勿進行商業(yè)傳播。同時,轉載時不要移除本申明。如產生任何糾紛,均與本博客所有人、發(fā)表該翻譯稿之人無任何關系。謝謝合作!

原文鏈接地址: http://www.raywenderlich.com/2915/ios-code-signing-under-the-hood

?

注:本文由翻譯團隊成員 skingTree翻譯。

教程截圖:

??? 下面是一篇有澳洲墨爾本的一名全職 iOS 開發(fā)者 提供的文章。他在論壇上是一個很摩登的年輕人 – Adam Eberbach

  · Bundle identifier

  · provisioning profiles

  · App ID

  · certificate signing request

 對于新手,的確很難一口氣搞清楚這些東東到底有什么區(qū)別。

  下面我們來揭開它們的神秘面紗,在讀完這篇文章后,你應該可以把這些東西聯(lián)系起來,你能夠理解它們是怎么工作,并能夠順利地在 device 上運行你的應用了。

  當然,這里假設你已經是一個 iOS 開發(fā)者,擁有 IDP ,并已經有一定的 xcode iOS 開發(fā)經驗了。如果你只是剛剛開始學習 iOS ,你可以先看看其它入門教程。

  好吧,我們開始了。

?

它們有多重要?

  Code signing 對你來說,最主要的意義就是它能讓你的 App 在設備上運行。不管是你自己的設備,甲方客戶的,還是在 App store 上購買你的消費者。

  如果沒有 code signing ,你只可以在模擬器上,或者一臺越獄過的機器上運行你的應用 ---- 當然,僅僅如此是不能滿足我們的。

  模擬器的測試僅僅是一種初步測試,模擬器不能替代真機調試,因為:

·真正的設備會通常比模擬器慢

 模擬器使用的是你的 MAC 機上的處理器,而一臺真正的 iphone 可遠遠沒有這種條件。所以如果你不在設備上真正運行,你可能就會忽略實際的性能問題。

  比如你新建一個ViewBased應用,然后在 viewDidLoad里面加入下列代碼:

      int count=200000;
NSMutableArray * array =[NSMutableArray arrayWithCapacity:count];
for (inti =0; i <count; ++i) {
    [array addObject:[NSString stringWithFormat:@"%d", i]];
} 
上面這段代碼在模擬器上可能1-2秒就能運行完,但是在真機上面(比如iphone 3GS),大約要花7秒左右的時間。 

    

同理的,模擬器使用你 MAC 上的內存,而一臺真正的 iphone 的內存少得多。

  特別是游戲,通常會使用大量的圖片,占用大量的內存。在老一點型號的機器上,一個紋理圖片的大小上限是 24MB ,也就是 1024X1024 8bit 紋理圖。

  內存耗盡絕對是你不想見到的,因為占用的內存超過一定范圍, OS 會強行退出你的 app ,對用戶來說,就認為是你的 app 崩潰了。

?

·有些 API 只在設備上有效

譬如 In-App purchase API ,或者 Instrument 中的 Core Animation 。這些都要在真機上測試出來。(可能以后版本的 iOS 或者 xcode 能夠支持,但畢竟真機測試是一種保障)

  總的來說,你沒有在真機上測試過,等于你沒有真的測試完。

·(譯者注:一些視覺上的效果在模擬器上看到的可能會與真機不一致)

?

Xcode 中有一些懶人的方法:

  在 organizer 的界面中,選中 devices 右鍵 Developer Profile ,你可以看到這樣一個菜單。

  里面有大部分這篇文章將要講到的內容

這里你可以 sign in 你的開發(fā)者賬號,自動登記你的 app 并運行到你的 device 上。

  當然,如果這樣總是好用的話,這篇文章就沒有意義了。

  作為一個開發(fā)者,你應該知道更多。

Public and Private Keys 公鑰私鑰

 在繼續(xù)剖析之前,我們先簡單地解析公鑰私鑰。

  這世上有兩種加密方法: symmetric cryptography 對稱密碼和 asymmetric cryptography 非對稱密碼。

  對于對稱密碼,只有一種 key 。譬如你有一個密鑰,以及對應的一個加密過的信息。

  那只有知道密鑰的人可以解讀這個信息。

  對于非對稱密碼,有兩個 key – 公鑰和私鑰。

?   譬如你用某個私鑰加密一些信息,別人收到這個信息后可以通過那個私鑰對應的公鑰來加密。這樣他們就可以肯定,這個信息是從你那里來的(至少是你加密的)。

  這個私鑰就相當于一個“簽名”。 (你加的密,就是你簽的字)

  而這個,就是在 iOS code signing 背后的原理。

?

Code Signing Objects

Code Signing 有關的東西有

  Provisioning Profiles App IDs UDIDs …

  在這一節(jié),我們會一個一個地解說。

  我用 Core Data 繪制了一個圖表,用來描述這些對象之間的關系。

  這是針對開發(fā)人員的 Development Profile ),發(fā)布人員的圖會有小小區(qū)別。

?

私鑰 Private Key

Mac OS X 以后, key 由一個叫做 Keychain app 來管理。 你可以在 Application\Utilities 中找到。

運行 Keychain ,你可以看到在你的名下有哪些公鑰和私鑰。類似這樣的:

(這是私隱,要加碼的)

  如果你沒有看到任何 key 的列表,不用擔心。在你第一次使用認證的時候, Keychain 會幫你創(chuàng)建。

  在這里列出的 key 是你的 provisioning 或者 code signing 的基礎。

  你必須有 key 才能 sign code 或者在 App store 中發(fā)布你的 app

  如果 key 丟失了?

  你必須把整個流程重新做一次 因為沒有 key ,你的認證不再有效,你的 provisioning profile 只會生成 error 。你會浪費很多時間,所以,好好保管它。

  如果你沒有備份過,我建議你馬上把它 export 出來,通過 File\Export Items ,保存在一個安全的地方,例如一個很小的分區(qū)中。或者通過你的 Mobile Me 賬號來同步保存。

?

有多個 Key

  如果你在不同的 Mac 機上創(chuàng)建過 account ,你將會有多個 key

  這樣會帶來一個問題,在機器 A 上生成的認證,在沒有私鑰的機器 B 上會失效。

  所以,你可以把你所有的 key 復制到你所有的 Mac 機上。(這樣就不用煩了)

  或者,我更建議只用一個 Key

UDID

  UDID Unique Device Identifier )是區(qū)分物理設備的唯一標識。

  所有你的 iPhone 肯定有一個與眾不同的 UDID ,包括你的 iPad 等等。

  通常, UDID 會是一個 40 位十六進制字符串。

  也就是下圖的 identifier

  如果 App 不是從 app store 上來,你的代碼需要有 UDID 的信息才能運行。

  怎么知道你擁有的設備的 UDID ?有幾個方法。

  1 如果你的設備連到 Xcode 的機器上,你可以在 Organizer 中看到 UDID

  2 沒有 xcode 的朋友也可以,在 iTunes Summary 界面,有 serial number (序列號)的信息,點擊可以看到。

  3 這是最簡單的方法,在 App Store 中下載一個 Ad Hoc Helper 吧。

?

Certificate 認證

  認證,就是你的個人開發(fā)者認證,或者更華麗地說:“ Apple Worldwide Developer Relations Certification Authority Certificate ”(這不翻譯了),

  這個本質上就是一些代表著信任 - 授權的數據而已。

  獲取一個認證,你需要子啊 Keychain Access 中生成一個 Certificate Signing Request ,并把它發(fā)給 Apple 。這會創(chuàng)建一對 公鑰 - 私鑰(如果還沒有的話)。

  Apple 收到后會驗證信息,然后給你創(chuàng)建一個認證。

?

App ID

  在 Xcode4 中創(chuàng)建一個項目,你要提供 Product Name Company Identifier 的信息。

  Product Name ,就是你的 app 的一個較短的名稱。

  Company identifier ,通常會是一個反轉的 DNS 串,例如: com.mycompanyname

  這兩者合起來,就似乎 Bundle Identifier 。你會在 Info.plist 中找到。

  對于每一個你要發(fā)布的 app ,你需要到 iTunes Developer Center 中注冊你的 App ID 。如下圖。

  這個需要與你在 Info.plist 中設置的保持一致。 ?

Provisioning Profile

  把前面講到的東西合起來:

  · App ID app 的唯一標識)

  · UDID (在某臺設備上運行的唯一標識)

  · Certificate (開發(fā)者認證)

  就是所謂的 Provisioning Profile

?

  Provisioning Profile 通過 xcode 或者 itunes 導入到 device 中,或者打包到一個包含 app profile .ipa 文件中。

  你可以在 iOS Provisioning Portal 中創(chuàng)建你的 Provisioning Profile

  新建一個,有一下幾個步驟:

  ·為 profile 命名,以后你會在 xcode organizer Buid Settings 以及其它一些地方中看到

  ·選擇你的 certificate

  ·選擇你的 App ID ,要如 Info.plist 中的一致。

  ·選擇要應用到的設備。通常,我都是把我的設備全選的。

?

個人用途的簽名 Signing

  假設你已經有一個準備測試的 App ,而你有 IDP ,并且處理好 Provisioning Profile 的事情了。

  現(xiàn)在你清楚已經知道它們的邏輯了,如果你新加入,下面這些是你要做的:

  1 檢查你的公鑰私鑰,為以后檢查方便,起個好名吧。

  2 Keychain Access 來創(chuàng)建你的開發(fā)認證。然后下載 Apple 給你的認證,雙擊安裝,然后你可以在 Keychain 中看到了吧。

  3 下載“ Apple Worldwide Developer Relations Certification Authority Certificate ”( WWDR )也是雙擊安裝,也可以到 Keychain 中看到。

  4 檢查你項目的 Bundle ID ,到 Provisioning Portal 中創(chuàng)建一個一致的 App ID

  5 Provisioning Portal 中加入你想要的 UDID 。(全部加上好了)

  6 針對你的 Certificate 創(chuàng)建 Provisioning Profile, 指定你的 app ID UDID

  7 下載剛剛創(chuàng)建的 Profile ,拖到你的 xcode Organizer 中。

  然后,你就可以 sign 你的 project ,并讓它們在你的 device 上運行了。

  在 Target – Build Settings ,往下滾動到 Code Signing 一節(jié)。

  試試編輯一下 Debug schema ,它適合于團隊協(xié)作:

  在 Automatic ProfileSelector 中選擇“ iPhone Developer ”,你會看到你的認證已經自動選上了。

  一切都搞定了,連接你的 device ,在 xcode 中選擇 Debug build build & run

  xcode 會到你的設備里裝上這個 provisioning profile ,并運行你的 App

iOS Code Signing: 解惑


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 额去鲁97在线观看视频 | 蜜臀在线播放 | 亚洲视频1 | 国产美女精品 | 天天色天天操天天射 | 老版奇米影视 | 久久天堂av | 特级av毛片免费观看 | 色就是色欧美 | 国产在线看片 | 毛片999| 国产永久在线视频 | 日本一区免费在线观看 | 黑白禁区谭小四 | 久久99国产精品 | 国产片翁熄系列乱在线视频 | 日本免费视频在线观看 | 电视剧知青1至45集免费观看 | 91 在线| www.99色 | 丁香六月伊人 | 91亚洲国产精品 | 米奇777四色精品人人爽 | 美国黄色毛片 | 欧美骚视频 | 久久成人免费观看草草影院 | 在线观看欧美成人 | 人阁色第四影院在线电影 | 亚洲日韩欧美视频 | 91网页视频入口在线观看 | 一区二区三区四区免费看 | 蜜臀视频在线播放 | 亚洲天堂一区二区三区四区 | 国产一区二区三区久久 | 苏晓晖个人简介军衔 | 射综合网| 欧美高清在线视频一区二区 | 午夜免费| 久草在线看| 午夜影音 | 在线视频 中文字幕 |