2017-05-03 69 views
0

我最近在我的應用程序中包含了AWS開發工具包,因爲我需要使用S3服務。雖然我覺得包括一大堆框架,只是爲了上傳和下載一些圖片,但絕對是一種矯枉過正,我沒有找到任何其他選擇。無效捆綁結構 - AWS開發工具包

一切都在建設沒有任何問題。它也在本地設備上運行。

當我試圖存檔,我得到了以下錯誤:

enter image description here

ERROR ITMS-90166:「缺少代碼簽名應享權利沒有在包中發現「com.amazonaws.sdk.ios權利。 AWSResources ...... 「

ERROR ITMS-90171: 」無效的束狀結構 - 二進制文件「 ../Frameworks/AWSLex.framework/AWSResouces.bundle/AWSResources」 不允許你的應用程序可以不包含獨立執行utable或庫....「

我發現的唯一臨時解決方案是刪除AWSResouces.bundle,然後歸檔沒有錯誤。

要添加AWS SDK,我使用Carthage。

GitHub的 「AWS/AWS-SDK-IOS」, 「2.5.5」

+0

當您僅使用AWSS3.framework和AWSCore.framework時,您似乎包含AWSLex.framework。您應該從嵌入式庫列表中刪除其他AWS框架。 – donkon

+0

@donkon我也想過這個解決方案,但我使用的是「https://github.com/lvillani/carthage-copy-frameworks」,而且亞馬遜的做法意味着在每次更新時我需要手動刪除框架。作爲替代方案,也許我可以分叉AWSS3和AWSCore並刪除不必要的依賴。我想知道爲什麼amazon選擇這種方式,爲什麼在AWSLex – zirinisp

+1

上包含一個獨立的可執行文件,您可以添加一個腳本來刪除框架作爲構建腳本的一部分。他們意識到這個問題,但還沒有解決方案。 – donkon

回答

0

的我用的解決方案,這要歸功於donkon是使用腳本來刪除是沒有必要所有的框架。該腳本如下:

find "${SRCROOT}"/Carthage/Build/iOS/AWS* -type d ! -name 'AWSS3*' ! -name 'AWSCore*' -maxdepth 0 -exec rm -rf {} \; 

補充一點,在目標 - >「您的目標」 - >構建階段

enter image description here

我希望在未來亞馬遜將允許我們使用迦太基只添加我們需要的框架。