swift 如何解决与模拟器不兼容的框架?

p8h8hvxi  于 2022-10-31  发布在  Swift
关注(0)|答案(1)|浏览(227)

我正在使用一个只兼容设备的框架。问题是如果我把它添加到我的应用中,我就不能再在模拟器上运行我的应用了。
我要求框架开发人员与我合作,并为我提供一个模拟器和设备兼容的框架,但他们能做的最好的是提出两个版本:一个是仅与设备兼容,一个是仅与模拟器兼容。
我有两个问题:
1.让一个框架同时兼容设备和模拟器真的那么难吗?
1.在相关的运行脚本中是否可以使用环境变量,它可以告诉我是为模拟器还是为设备构建?我的想法是添加两个框架版本,并根据当前的构建架构选择一个。
任何建议都是受欢迎的。我已经想了一段时间了,但我对这个问题不是很精通。

  • 谢谢-谢谢
ee7vknir

ee7vknir1#

首先,我对你的问题感到困惑,
我认为您正在谈论XCFramework。

对于XCFramework,首先转到Xcode〉〉文件〉〉新建〉〉目标〉〉框架

将源代码放入此框架中。在构建设置中设置构建分发库〉〉是
和构建一次。
成功构建后,转到您的框架源文件夹,并在框架项目终端中依次运行以下3个不同命令。
将FRAMEWORK_NAME替换为您的框架名称

//适用于iPhone //

xcodebuild归档文件

  • 方案框架名称
  • 配置发布
  • 目标'通用/平台=iOS'
  • 存档路径'./build/框架名称.框架-iphoneos.xcarchive'
    -sdk iPhone
    跳过安装=否
    构建用于分发的库=是

//用于模拟器//

xcodebuild归档文件

  • 方案框架名称
  • 配置发布
  • 目标'通用/平台=iOS模拟器'
  • 存档路径'./build/框架名称.框架模拟器-x86_64.xcarchive'
    -sdk iPhone模拟器
    跳过安装=否
    构建用于分发的库=是

//用于合并两个框架xcarchive //

xcodebuild -创建xcframework
-framework './build/框架名称.框架模拟器-x86_64.xcarchive/产品/库/框架/框架名称. framework'

  • 框架'./build/框架名称.框架-iphoneos.xcarchive/产品/库/框架/框架名称.框架'
  • 输出'./build/框架名称.xcframework'
    成功运行以上命令后,您将看到,创建了一个'Build'文件夹,其中包含模拟器和带有最终框架iPhone xcarchive

完成您的最终XCFramework,您可以将其用于iPhone和模拟器。

相关问题