【问题标题】:iOS app archive fails due to openldap and openssl makefile errors由于 openldap 和 openssl makefile 错误,iOS 应用程序存档失败
【发布时间】:2017-01-11 14:45:48
【问题描述】:

我目前正在构建一个用 Objective-C 和 Swift 编写的 iOS 应用程序,其中包含 opensslopenldap 框架,可以毫无问题地构建和运行。

但是,当我尝试归档应用以供发布时,会出现以下错误:

以下是一些附加信息:

  • Xcode 版本为 7.3.1 (7D1014)

  • 项目是一个Xcworkspace(包含一个podfile,但框架没有通过Cocoapods集成)

更新:

经过进一步测试,又出现了一个makefile错误(无论如何都是类似的问题)

此图说明了使用的所有框架和库以及发生的错误。

这是构建日志:

感谢任何帮助,很乐意提供任何其他信息

注意:我仍在寻找答案以解决此问题

【问题讨论】:

  • 我不确定这是否重要,但 Makefile-openssl 不是由 OpenSSL 项目提供的。别人提供的。您可以尝试将其从存档操作中排除,因为它不是 OpenSSL 文件并且它会破坏存档操作。另见Is there a way to exclude some files from submitting to the iOS app store
  • @jww 无法使用您提到的方法将makefile从项目中排除,因为它没有出现在Copy Bundle Resources中
  • 这听起来像一个 Xcode 错误;提交 RADAR 并希望 Apple 修复它。在此期间,也许您可​​以删除 Makefile-openssl,因为一旦配置和构建了库,就不需要它了。还要注意...我已经看到了 很多 OpenSSL 的 POD 版本的问题,因为它们没有正确配置;尤其是胖子。例如,参见Build Multiarch OpenSSL on OS X。这同样适用于所有多架构构建,而不仅仅是 OS X。
  • 我会试试看 - OpenLDAP 的 make 文件怎么样? @jww
  • 如果您确实包含了完整的错误消息,将会很有帮助。截图不够。如果你查看构建日志,它会给你实际的错误。

标签: ios swift xcode openssl openldap


【解决方案1】:

我实际上会推荐一些完全不同的东西。将 opens 和 openldap 作为您刚刚链接到的独立通用静态库。想必这就是 Makefile-openssl 和 Makefile-openldap 正在做的事情(制作通用库)

“我为什么要这么疯狂?”你可能在想。 openssl 和 openldap 的代码没有改变......除非你有一个独特的情况,你已经分叉了代码并进行了一些修改(这可能是一件坏事)。因此没有必要不断地重建它。

“啊,但是如果我想更新版本怎么办?”你可能在想。然后获取最新的源代码并构建一次。完成。

好处是您不会浪费时间构建这些库。虽然您现在可以说这没什么大不了的,但随着项目变得越来越大,您只是在浪费时间重新构建未处于积极开发中的库。此外,您不必担心像这样的任何奇怪的构建问题。

对于我一直在从事的一些项目,我已经说服他们甚至制作了一个预构建的库,其中包含我们在项目中需要的所有可可豆荚库。这样做还有一个额外的好处,那就是让我们的主项目在你的项目中更干净一些(我知道有些人会不同意)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多