如何使用Xcode 10.2.1创建通用库?

时间:2019-06-21 19:30:29

标签: ios xcode macos

我是为iOS创建库的新手(而且对iOS开发来说是新的-我昨天刚完成了我的第一个“ Hello,World”应用程序),所以请不要担心会给儿童带来长期困扰答案。

我的目标是构建一个将AVPlayer与一些业务逻辑和API集成在一起的SDK,以便我们可以分发该库,并且客户可以轻松创建与我公司的视频流平台兼容的应用。

要开始使用(学习iOS开发,但实际上尚未在SDK上工作),我一直在关注iOS static library tutorial by Ray Wenderlich。在某一时刻,它提到我刚刚创建的库只能在模拟器上运行,而不能在真实设备上运行,并继续说明如何创建在两个模拟器上都可以运行的通用库。那时候一切都崩溃了。

  • 指向lipo 404文档的链接
  • lipo手册页对解释lipo是什么或应该做什么没有太大帮助
  • lipo上四处搜寻似乎并没有带来太多信息
  • Xcode能够创建“跨平台”目标以及“聚合”目标,听起来lipo可能已被弃用?
  • Xcode release notes似乎暗示lipo 被淘汰
  • 从我正在遵循的教程中复制“运行脚本”构建阶段会导致Clang抛出错误(“ i386是无效的构建目标”)
  • 谷歌搜索此错误,看来i386在iOS 10及更低版本上是正确的,但是对于新版本的iOS无效?
  • 我知道iPad Mini(以及其他设备)无法升级到iOS 9以外的版本。如果我不能针对i386进行构建,我如何支持这些设备?
  • 剥离-arch i386引发了一个完全不同的错误:“无法附加数据库”
  • 谷歌搜索此错误,我发现将OBJROOT=...添加到运行脚本的建议。这引发了关于无法加载清单文件的 错误,然后导致我的CPU风扇在Xcode停止运行时以最大速度旋转
  • 在寻找其他教程时,绝大多数似乎已过时,指向Xcode中不再存在的菜单选项或按钮,或者提到不在我的选项列表中的构建目标

有人可以确切地指导我建立通用库吗?

1 个答案:

答案 0 :(得分:-1)

ssh -N -L 8888:127.0.0.1:80 -i KEYFILE bitnami@SERVER-IP尚未被弃用。它是用于处理通用(或“胖”)Mach-O文件的工具。通过在lipo环境变量中添加lipo,然后运行/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man,可以阅读Terminal中的MANPATH手册页。

该Wenderlich教程来自2013年。自iOS 11(于2017年发布)以来,iOS仅支持64位应用程序和库。您的部署目标是否可能设置为iOS 11或更高版本?如果是这样,也许Xcode意识到它不应该允许您为该部署目标构建i386库。

如果您只希望定位具有64位功能的设备和iOS版本,请尝试使用man lipo体系结构。

请注意,即将发布的Xcode 11(当前在beta 2中,将于2019年9月或10月左右正式发布)支持新的x86_64格式,该格式将用于多种架构的框架(或静态库)组合为一个捆绑包,而没有(直接)使用xcframeworkHarlan Haskins解释了如何在WWDC 2019 Session 416: Binary Frameworks in Swift中创建和使用xcframework文件。