2014-09-20 110 views
15

我剛剛升級到XCode 6,並試圖構建我的開發人員ID簽署的Mac應用程序。 不過,我現在得到以下的協同設計錯誤:Codesign:什麼是未密封的內容?

unsealed contents present in the root directory of an embedded framework 

這適用於我使用Dropbox.framework。顯然這是無法簽署的。錯誤是什麼意思?哪裏不對?

回答

7

看一看OS X Code Signing In Depth

與OS X版本10.9.5開始,將有在根據預期的OS X版本10.9或更高版本如何OS X識別簽名的軟件

Structure your bundle變化:

  • 只包含應包含有符號 代碼的目錄中的已簽名代碼。
  • 只包含應包含
    資源的目錄中的資源。
  • 請勿使用--resource-rules標誌或ResourceRules.plist。他們 已被廢棄,將被拒絕。
+2

第二個鏈接你給出了關於框架的內容,關於應用程序呢? – 2014-11-25 10:27:12

10

問題是駐留在Dropbox.framework中的version.txt文件。雖然這對了解框架的版本很有用,但對於編碼簽名來說似乎不再適用。

當我刪除文件一切正常工作再次。

+2

感謝您的解決方案。刪除version.txt後一切工作正常 – user3152121 2014-10-05 17:11:30

2

我今天遇到了類似的問題......我的錯誤是「未打開的內容存在於捆綁根目錄」。我的修補程序是刪除我的應用程序上的自定義圖標。 AppName.app/Icon?以某種方式損壞...

+4

或者它可能在一個不應該包含資源的目錄中。他關於bundle中代碼的允許位置'這些地方應該只包含代碼。放置任意數據文件將導致它們被拒絕.' Codesign -vvv 將顯示它拒絕的文件夾。 – Will 2014-09-29 19:35:23

4

今天有幾個小時有同樣的問題,因爲我試圖將優勝美地前的框架套件改編成優勝美地。最後,問題是我所做的符號鏈接,而不是目錄中的嚴格文件。

最初,該軟件包的根目錄中有一個損壞的符號鏈接。我解決了它。

符號連接我說:

Headers -> Versions/Current/Headers/ 

它需要什麼樣的是:

Headers -> Versions/Current/Headers 

這個多餘的斜槓是殺手。

注意,該位我兩次在兩個不同點:我也有

Current -> 1.8.0/ 

地方,我需要

Current -> 1.8.0 

我沒有太大的* nixer的,所以也許這是常見的感覺,但希望它可以幫助像我這樣的其他Windows開發人員。

1

我今天研究了一段時間,並沒有任何建議,我發現幫助,我的sdl_mixer。框架有五個嵌入式框架,我無法通過iTunesConnect。我的解決方案是刪除其中三個我實際上並不需要的,另外兩個作爲獨立框架添加到我的項目中,而不是嵌入到sdl_mixer中。希望這有助於某人,我花了幾個小時。

0

我已經打了兩次了,所以我添加了原因,因爲codesign是非常不透明的,並且通常拒絕告訴你問題資源是什麼。

有一次,我有一個無符號的二進制可執行文件。每個可執行文件和框架需要在整體演唱包之前單獨簽名。

然後我又打了另一個案子。我簽署我的代碼作爲發佈過程的一部分,重新​​簽署每個可執行文件和框架。但是,Xcode也簽署了捆綁包,事實證明這是在_CodeSignature文件夾後面留下的痕跡。所以,現在,簽署每個可執行文件和框架,然後捆之前,我預先刪除Xcode的生成_CodeSignature文件夾的東西,如:

find MyApp.app -name _CodeSignature -type d -exec rm -rf {} + 

希望這來之不易的信息會節約一些時間一天。

0

我有同樣的問題,什麼工作是刪除DerivedData文件夾的內容。 Xcode並沒有說哪個資源導致了問題,所以我從頭開始重新構建了所有的東西。清潔也沒有工作。

0

在我的情況下,我試圖用一些舊的框架簽署一個應用程序。這些建議都沒有幫助。原來,我不得不從框架中刪除PkgInfo文件,以讓這條消息消失。

0

我在試圖簽署另一個框架時遇到了問題,這裏的答案非常鼓舞人心,這裏肯定是框架結構存在一些問題,但是我確實找到了它們。結構似乎是正確的,符號鏈接沒有tailling「/」,沒有額外的文件(檢查與ls)...

經過多次嘗試,我終於意識到在框架中有一個額外的.DS_Store,這實在是煩人:(

所以,如果你還在打錯誤,請嘗試檢查是否有任何隱藏的文件。