2016-08-23 134 views
1

我有一個Swift自定義框架的Swift項目。該應用程序生成並運行成功,但當我嘗試使用應用程序加載器上傳到iTunes Connect時,出現以下三種框架錯誤:如何解決應用程序加載器錯誤:無效的包。該包...包含不允許的文件'Frameworks'

錯誤ITMS-90206:「Invalid Bundle。'XXX.app/Frameworks /YYY.framework'包含不允許的文件'Frameworks'。「

正如在this SO answer中所討論的那樣,我已經在框架中將'Embedded Content Contains Swift Code'設置爲NO,並且在應用程序中將YES設爲YES,但是此錯誤仍然存​​在。

這三個框架都是我自己的(我正在認真考慮重新進行項目以避免框架完全,但這是我現在要避免的一件雜事)。

我沒有使用椰子樹。

有關如何解決此錯誤的任何想法?

+0

查看此解決方案:[http://stackoverflow.com/questions/35748933/error-itms-90206-invalid-bundle-contains-disallowed-file-frameworks/35751497](http://stackoverflow.com/問題/ 35748933/error-itms-90206-invalid-bundle-contain-disallowed-file-frameworks/35751497) – Jake

+0

謝謝@Jake,是的,我也試過這個 - 沒有運氣,恐怕錯誤依然存在。 –

+0

在此處查看我的答案 - http://stackoverflow.com/questions/29608264/error-itms-90451-cfbundleidentifier-collision-error/40396491#40396491 – Kumar

回答

0

因此,這不是一個很好的答案,但它是我做過什麼來解決這個問題:

我創建了一個新的項目,並複製在我的所有文件 - 在不框架扁平結構,編輯剛剛刪除相關進口報表。它現在上傳很好。所以這是框架結構是問題的根源。不知道是否Swift嵌入式自定義庫的想法是剛剛打破或我做錯了什麼,所以仍然尋找更好的答案...

3

解決這個問題的關鍵是,除了ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO,還設置EMBEDDED_CONTENT_CONTAINS_SWIFT=NO爲除之外的所有目標構建主應用目標的設置。必須清除派生的數據,但之後一切都很好。

0

在(SE-0133)的the Xcode 8.3 Release note,有一個描述關於EMBEDDED_CONTENT_CONTAINS_SWIFT設置:

The new build setting ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES replaces the EMBEDDED_CONTENT_CONTAINS_SWIFT setting, which has been deprecated. This new setting indicates that Xcode should always embed Swift standard libraries in a target for which it has been set, whether or not the target contains Swift code. A typical scenario for using this setting is when a target directly uses or embeds another product that contains Swift code. (26158130)

這意味着ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES取代EMBEDDED_CONTENT_CONTAINS_SWIFT,因此你需要改變前者(ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES)到擴展目標中的NO

相關問題