如何在* .framework包内省略或签名未签名的文件
任何人都可以解释这些未签名的文件(下面的图片中没有突出显示的文件)是如何进入框架(Cocoa Touch Framework)包以及如何将这些文件从那里拿走的?
另外,是否可以安全地从那里手动删除它们?
为了得到并看到这些文件,我做了如下:
- 构build应用程序
- find并解压缩* .ipa文件
- 然后Payload – > App – >“Show Package Contents” – > Frameworks
注意! 对于框架项目中的每个* .swift文件,都会在其中创build这些文件的集合:
这是我如何解决问题。
- 在Objectvie-C中创build基础项目或者采用任何旧的维护的Objective-C项目
- 在Swift中创build并实现一个框架(Cocoa Touch Framework)项目
- 为该框架创buildpodspec并将其上传到存储库
- 使用CocoaPods将该框架包含到基础项目中
- 在模拟器和有线设备上构build和运行应用程序是可以的(一切按预期工作)
- build立和/或上传到iTunesConnect是不行的,它失败了!
下面是关于这种情况的更详细的讨论use_frameworks签名错误! 和独特的configuration文件
我怀疑XFeature.framework中的所有非高亮文件都不属于那里。 为什么?
因为当我上传ipa包到iTunesConnect与这些文件包括它引发此错误(对于每个非高亮的文件):
错误ITMS-90171无效的包结构 – 不允许使用二进制文件“XApp.app/Frameworks/XFeature.framework/XView.o”。 您的应用程序不能包含独立的可执行文件或库,除了受支持的软件包的CFBundleExecutable。 有关iOS应用程序捆绑结构的信息,请参阅https – : – // developer.apple.com/go/?id=bundle-structure中的“捆绑软件编程指南”。
另一方面,当我删除它们(手动简单地删除),然后错误消失,上传成功。
所以我猜这些文件或者不是必需的,或者他们没有正确签名。
从哪里走?
- find一种方法,让这些文件远离框架内容
- 或者find一个如何签署这些文件的方法
任何帮助,欢迎!
好的,所以我用自己的方式解决了这个问题。 通常情况下,解决scheme比以前想象的更容易。
错误原因错误ITMS-90171是这次在cocoa pod的* .podspec文件中的一个指令。
这一个: s.resource = 'MyPod/*'
不知道我是怎么错过的,但是'MyPod / *'字面意思是,除了graphics资源包含* .swift文件之外,还包括MyPod目录中的所有内容。
所以,因为我只需要graphicsaasets包括作为资源,然后通过更改该行一点点修复: s.resource = 'MyPod/Graphics.xcassets'
解决了这个问题。 没有错误ITMS-90171了。
此外,Cocoapods团队已经创造了增强的问题,以帮助避免这样的事情在未来。 在spec.resources#5794中find的文件上添加一个linter