我们正在用Objective-C开发一个SDK,作为对SDk消费者的服务的一部分,我们有一个工具来检查开发项目中是否存在所有必需的框架。 为了做到这一点,我们使用 NSBundle.allFrameworks ,它应该返回所有框架,并在返回的结果中搜索所需的框架。
我们看到该调用在操作系统版本之间发生变化的怪异行为。 例如,当我们在iOS上调用 NSBundle.allFrameworks 时,返回的列表不包含某些框架,例如 MobileCoreServices,CoreGraphics,UIKit,SystemConfiguration
如果我们在iOS 11设备上运行相同的调用,则唯一缺少的框架是 SystemConfiguration 。
有人熟悉这种行为吗? 我们真的很想为我们的用户提供该功能
答案 0 :(得分:0)
根据docs,它返回:
代表框架的所有应用程序捆绑包的数组。仅包括其中包含一个或多个Objective-C类的框架。
讨论部分提到:
返回的数组包括在构建应用程序时链接到应用程序的框架以及已动态创建的框架的捆绑包。
这表示显示了至少包含一个Objective-C类的框架,这些框架捆绑在应用程序内/与应用程序链接。
例如如果应用程序和捆绑的框架都未针对特定框架进行链接,则该应用不会出现在列表中。