2011-06-15 89 views
2

我在爲各種企業進行第三方iOS開發的公司工作。我一直致力於研究更好的方法來爲這些企業構建和部署代碼。基於Apple TOS,他們不能使用通過我們的企業證書籤名的應用程序(他們不是「內部」)。該代碼需要與他們的(我們的客戶)企業證書籤署。以下是我見過的一些可能的解決方案 -代碼簽名證書,.p12文件和移動設備的命令行安裝

1)將代碼發送到客戶端,並讓客戶端構建它。 這是一個不用去

2)創建一個包含應用程序代碼的庫,並將.so文件和頭文件發送到客戶端進行構建。 我們目前正在這樣做,但正在考慮讓客戶/我們更容易。

3)讓客戶發送他們的證書,mobileprovision和.p12文件,然後我們使用他們的證書構建應用程序。 這可能會工作,但可能會成爲一個管理噩夢。

我們想出了一種構思,就是將這些構思混合在一起。這個想法涉及建立一個客戶門戶,客戶可以將他們的文件(cert,p12,provision)上傳到我們的Mac服務器,Mac將自動構建他們的應用程序,並進行正確簽名。但是,我遇到的問題是我似乎無法找到如何自動安裝證書和規定。

那麼,有沒有人知道從命令行安裝CodeSign證書(帶有.p12文件)和移動配置文件的方法?一旦安裝,還有一種方法可以從命令行中刪除項目?

任何幫助,想法和/或輸入將不勝感激。謝謝!

回答

4

您應該能夠使用securityhttp://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/security.1.html)命令管理鑰匙串中的資源。我用來控制命令行版本的腳本可能是一個有用的參考:https://gist.github.com/949831

+0

這看起來可能是我們需要的,但我還沒有時間去測試它。今天我會研究這個,所以希望這會爲我們提供我們的答案! :) 非常感謝! (如果這確實起作用,將標記爲答案) – 2011-06-24 13:03:56

+0

太好了。如果您發現任何要添加到該腳本中的內容,您認爲這些內容對於開發者來說通常很有用,請通過要點告訴我,或訪問http://blog.carbonfive.com/2011/05/04/automated-ad -hoc-builds-using-xcode-4/ – Jonah 2011-06-24 18:08:08

+0

我已經能夠得到這個(主要)工作感謝您的輸入。還有一些我必須放在一起,但這使我在我的駝峯。非常感謝! :) – 2011-06-28 11:50:25

2

無可否認,我一次只有最多2個外部客戶加我自己的東西,所以它大多隻是同一個噩夢它通常是默認的,但如果您必須手動執行除供應配置文件以外的任何操作,那麼會有多糟?根據我的經驗,一旦客戶端證書被添加,即使有新項目(來自同一客戶端),我也再也沒有真正混淆它們。

您可以通過將文件簡單複製到〜/ Library/MobileDevice/Provisioning中來處理配置文件配置文件,並在不再需要時刪除它們。這聽起來像你已經設置了自動化的過程。

如果您當前正在通過「將它們放到xcode中」來安裝供應配置文件,我建議您通過將其複製到文件夾中來執行此操作,因爲這樣文件名就會保留下來,所以您實際上可以告訴您所擁有的通過簡單地查看文件夾安裝。

+0

我們面臨的問題是,我們的一些客戶不願意讓他們的證書無限期地坐在開發者機器上。我們的解決方案是嘗試創建一個自動構建過程,客戶可以將其文件上傳到安全服務器,獲取構建,然後刪除其信息。它使這個過程更加安全,並使我們客戶的思想變得輕鬆(所以我們希望!)。 – 2011-06-24 12:53:25

+0

在這種情況下,Jonah的答案看起來似乎會照顧到你的證書。我很確定這是困難的部分,配置文件只是複製/刪除的問題。是1)不是一種選擇,因爲你不希望客戶有權訪問源代碼?如果沒有,您是否考慮過使用客戶端構建腳本,它首先完成構建所需的所有文件的SVN更新?我從來沒有爲iOS做過這樣的事情,但是對於Windows託管的項目。 – jimkberry 2011-06-24 13:07:40

+0

首先,您對配置文件的評論非常有幫助。我已經改變了我們現在的做法,以適應您的建議:D我們考慮過一個客戶端腳本來從SVN撤出並構建,但由於各種原因(有些我不明白),我們的首席執行官100%反對給予無論是源代碼還是任何類型的源代碼訪問,無論它是否被刪除。我們也有幾個100%反對給我們證書的客戶。他們害怕它無限期地坐在開發機器上。這真是一個令人討厭的問題,但你和約拿已經指出我們更接近解決方案! – 2011-06-24 14:52:13