xcode7中,無需證書即可進行真機編譯調試!

iOS開發總是面臨一個問題,借不到機器進行測試,自己的機器又不能使用。每到這個時候我都在想,蘋果什麼時候給力一點?

現在,蘋果終於給力了!Xcode7全新特性來襲,下面爲大家介紹:

無需證書的真機編譯調試

首先來一發蘋果官方文檔
https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_7_0.html
文檔中有一段話:

Free On-Device Development

Now everyone can run and test their own app on a device—for free. You
can run and debug your own creations on a Mac, iPhone, iPad, iPod
touch, or Apple Watch without any fees, and no programs to join. All
you need to do is enter your free Apple ID into Xcode. You can even
use the same Apple ID you already use for the App Store or iTunes.
Once you’ve perfected your app the Apple Developer Program can help
you get it on the App Store.

讀懂了嗎?是的,蘋果終於更大程度的放開了真機調試的權限,現在,只要你擁有一個蘋果賬號,再加一臺蘋果機器,就可以進行真機調試!

當Master.G大神第一次告訴我這個消息時,我是拒絕的,怎麼可能?蘋果終於幡然悔悟了嗎!然而這是真的,100%如假包換,有些觀衆可能還不信,那麼讓我們來一鑑真假。


首先拿一個demo工程來做實驗。新建一個工程
這裏寫圖片描述

大家看到,這個工程的bundle id爲abc.TestBuildWithoutProvision,無團隊,也無證書
這裏寫圖片描述
這裏寫圖片描述

這樣的工程,肯定沒法真機編譯啊,xcode有一萬種理由拒絕我
這裏寫圖片描述

好吧,可是這個測試工程,不能加到管理後臺裏,怎麼辦呢?
回頭來看看蘋果的文檔,它是怎麼說的:

All you need to do is enter your free Apple ID into Xcode. You can
even use the same Apple ID you already use for the App Store or
iTunes.

只需要一個蘋果ID,只要是在appstore能用的,無論是否是開發者賬號,都可以

我趕快找一個賬號試一下吧,這裏我用一個[email protected],是我美國區的賬號。
打開xcode設置
這裏寫圖片描述

在賬號設置頁面,增加一個account
這裏寫圖片描述

添加好後,賬號會顯示在列表中。注意,我畫圈的地方,寫着“Fetching Info for xxx”,它在獲取這個賬號的開發者信息,耐心等待一會
這裏寫圖片描述

當信息獲取完成,這裏會顯示如下,是一個個人免費賬號
這裏寫圖片描述

也就是說,蘋果默認把我的賬號也算作一個開發者了。其實這也就是原理所在,它放寬了開發者的範圍。
好,有了這個賬號,那麼接下來要做什麼呢?

記不記得,一開始編譯的報錯?
這裏寫圖片描述

說我們沒有選擇團隊,好,那就選一個團隊,選擇剛剛添加的賬號
這裏寫圖片描述

這個時候提示什麼呢?沒有證書啊(蘋果真是好煩好煩的)
這裏寫圖片描述

別急,點擊Fix Issue修復問題。
這裏寫圖片描述

有時候會提示timeout,多試幾次就好
這裏寫圖片描述

修復成功後,這裏顯示如下,這次沒有報錯了。
這裏寫圖片描述

好的,我們編譯。編譯成功後就可以安裝。在安裝時,如果設備有鎖屏,會提示需要解鎖
這裏寫圖片描述

好了,到這裏應用已經安裝了,接下來問題來了,xcode又報錯了
這裏寫圖片描述

這又是爲啥呢?原來,這個應用是非正常安裝的,與企業應用一樣,需要在設置中授權
這裏寫圖片描述

在設置中去信任自己的開發者賬號
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

再次build&run,大功告成,撒花!


停,先別急着慶祝,這裏是示例工程,如果是公司的項目,怎麼搞呢?

這裏以一個線上項目爲例,同樣選擇個人team,會怎樣呢?
這裏寫圖片描述

當然是報錯,因爲bundle id是唯一的,不同的team不能存在相同的bundle id。解決方法就是隨便改一個bundle id,例如com.wohensuiyi.nibufume,自己念念~
這裏寫圖片描述

搞定,萬事大吉!羨慕嗎,快來試試吧~


PS:與企業安裝包一樣,無證書編譯的應用無法調試一些蘋果服務,例如蘋果支付和遠程推送。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章