2017-05-03 71 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

我希望在未来亚马逊将允许我们使用迦太基只添加我们需要的框架。