2014-12-05 37 views
3

我無法理解如何將我的Mac應用程序打包到安裝程序(.pkg)中並在App Store(例如我自己的網站)上簽名以在之外分發簽署Mac App安裝程序時出現混亂

的Xcode 6的組織者/檔案館窗口爲您提供了四個選項導出Mac應用程序歸檔:

  1. 導出一個開發者ID簽名的應用 - 簽名身份:開發者ID申請:(< 10-位十六進制數字>)

  2. 節省Mac App Store的部署 - 簽約身份:第三方Mac開發者應用程序(< 10位十六進制數字>)

  3. 導出爲一臺Mac安裝程序包簽名身份:第三方Mac開發者應用程序(< 10位十六進制數字>)

  4. 導出爲Mac適用的 - (提示輸入保存位置的時候了)

注意如何大於出口選項安裝程序包不使用「第三方Mac開發者安裝」身份(這certif icate我也在我的鑰匙串中),但是「第三方Mac開發者應用程序」簽名的身份。這是爲什麼?也許這裏簽署的是安裝程序中包含的應用程序,我仍然必須自己簽署包裹? (順便說一下,我嘗試過,但在通過電子郵件發送pkg給自己之後,雙擊它會產生可怕的「無法打開,因爲它來自不知名的開發者」警告)

Apple的文檔是有點簡潔,涵蓋了很多地方(簽名包,可執行文件,框架等),似乎圍繞命令行工具codesignproductsign;在S.O.中也可以這樣說相關的問題。那麼,上面列出的主辦方出口選項#3的目的是什麼?我可以使用它嗎?我應該使用命令行來構建包嗎?還是我可以利用這個Xcode/GUI工具並在之後簽署導出的.pkg? (使用命令行,我猜)。

爲什麼Xcode不能「正常工作」,並且一次打包/簽名應用/軟件包?我的安裝程序不需要任何花哨的邏輯或設置任何支持文件/目錄結構;它只是我的.app的「包裝」。

附錄:我試圖代替從組織者導出一個.app束,簽署「顯影劑ID的應用」(上面的選項#1),與舊的包PackageMaker.app它和簽名,使用命令行。但是我仍然收到「未知的開發者」錯誤,並且在隔離後無法打開安裝程序。

回答

1

傻傻的我;我正在使用虛假證書名稱「第三方Mac Developer Installer :(我的名字)」而不是「Developer ID Installer :(我的名字)」。

快速測試使用:

spctl --assess --type install <packagename>.pkg

給出:

<packagename>.pkg: rejected

...這意味着該包不運行作爲安裝程序我想正確簽名。

固定標識名稱,並簽署.pkg文件後使用(帶有PackageMaker或Xcode中內置):

productsign --sign "Developer ID Installer <MyName>" ./Unsigned.pkg ./Signed.pkg

,該spctl命令運行無聲(無反饋 - 成功?),如果我將生成的軟件包通過電子郵件發送給自己,並下載它們(隔離),安裝程序將啓動並安裝該應用程序,而不會出現問題。

編輯:我會等待幾天,然後再接受我自己的答案,以防某人共享更多知識點。

+0

但是,嚴重的是,Xcode應該簽署包以及包含的二進制文件。 – 2014-12-05 07:36:38