ios - 如何在 *.framework 包中省略或签署未签名的文件

标签 ios objective-c swift cocoa-touch

谁能解释一下那些未签名的文件(下图中未突出显示的文件)如何进入框架(Cocoa Touch Framework)包以及如何使这些文件远离那里?

此外,从那里手动删除它们是否安全?

This is the Frameworks folder inside result app

要获取并查看这些文件,我执行以下操作:

  1. 构建应用
  2. 找到并解压它的 *.ipa 文件
  3. 然后负载 -> 应用程序 -> “显示包内容” -> 框架

注意!对于框架项目中的每个 *.swift 文件,它都会在其中创建这些文件的集合:

Set of files for each swift file

<小时/>

这是我解决问题的方法。

  1. 在 Objectvie-C 中创建基础项目或采用任何旧的维护的 Objective-C 项目
  2. 在 Swift 中创建并实现一个框架(Cocoa Touch Framework)项目
  3. 为该框架创建 podspec 并将其上传到存储库
  4. 使用 CocoaPods 将该框架包含到基础项目中
  5. 在模拟器和有线设备上构建并运行应用程序正常(一切按预期运行)
  6. 构建和/或上传到 iTunesConnect 是不行的,它会失败!

这是关于该案例的更详细讨论 Signing errors with use_frameworks! and unique provisioning profiles

我怀疑 XFeature.framework 中所有未突出显示的文件不属于那里。 为什么?

因为当我将包含这些文件的 ipa 包上传到 iTunesConnect 时 它抛出此错误(对于每个未突出显示的文件):

ERROR ITMS-90171 Invalid Bundle Structure - The binary file 'XApp.app/Frameworks/XFeature.framework/XView.o' is not permitted. Your app can’t contain standalone executables or libraries, other than the CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https-:-//developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure.

另一方面,当我删除它们(手动简单删除)时,错误就会消失并且上传成功。

所以我猜想这些文件要么不需要,要么根本没有正确签名。

从这里该走哪条路?

  1. 找到一种方法使这些文件远离框架内容
  2. 或者找到一种方法来签署这些文件

欢迎任何帮助!

最佳答案

好的,所以这次我用自己的方式解决了这个问题。 通常,解决方案比想象的要容易。

这次 bugger 错误 ERROR ITMS-90171 的原因是 cocoa pod 的 *.podspec 文件中的指令。

这个:s.resource = 'MyPod/*'

不知道我是如何错过这个的,但是“MyPod/*”字面意思是,包括 MyPod 目录中的所有内容,除了图形资源之外还包含 *.swift 文件。

因此,由于我只需要将 Graphics aaset 作为资源包含在内,然后通过将该行更改为:s.resource = 'MyPod/Graphics.xcassets' 解决了问题。不再出现错误 ITMS-90171。

<小时/>

Cocoapods 团队还创建了增强问题,以帮助避免将来发生此类情况。 Add a linter on the files found inside spec.resources #5794

关于ios - 如何在 *.framework 包中省略或签署未签名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39179641/

相关文章:

ios - 渐变颜色在非英语语言的 UILabel 中被截断

ios - 重新激活 NSLayoutConstraint 在解包可选时发现 nil

ios - 如何修复 UIPageViewController 页面中突出显示状态的 UIButton 延迟?

swift - 有没有办法让文本字段快速只接受字母和空格

ios - 使用 PPBadgeView 的自定义角标(Badge)未显示在导航项中 - swift

ios - 如何在CABasicanimation中设置 anchor

ios - 比较 1 个 NSarray 和 1 个 NSset 在其中的 1 个中重复计数

ios - 如果 allowsEditing=NO,选择器不会返回任何图像

ios - 在 AppDelegate 中模态呈现来自 UITabBarController 的 VC

c++ - 使用 appendBezierPathWithGlyphs 获取字形轮廓的问题