分发依赖于静态框架的动态框架的正确方法是什么?

2024-02-16

我正在构建一个闭源动态框架。它依赖于第三方闭源静态框架。

我将静态依赖框架链接到我的框架的项目/目标,如中所述这个苹果技术说明 https://developer.apple.com/library/content/technotes/tn2435/_index.html:

同一篇苹果技术说明中提到:

应用程序目标负责嵌入所有框架, 包括其他框架依赖的任何框架。

所以我也给我的客户提供了我所依赖的框架的副本。然而,在同一份技术说明中,Apple(指嵌入静态库/框架)指出:

由于这些情况下的二进制文件是静态库,因此应用程序无法 将其嵌入应用程序包中。

...该库应保留在“Link Binary with Libraries”中 部分。

没关系 - 所以我只是让我的客户链接静态框架依赖项而不是嵌入它,一切都工作正常。

然而,当我的客户需要时,问题就出现了-ObjC他们使用的其他库的链接器标志。此链接器标志导致我的(objective-c)静态框架依赖项加载其所有类两次,并且客户端在其控制台中随处可见重复的类日志。

这里一种可能的解决方案是让客户识别他们使用的需要的库-ObjC链接器标志并指定force_load这些库的标志。但是,在客户端使用 CocoaPods 的情况下,此解决方案也会导致问题,因为 CocoaPods 将覆盖其链接器标志的任何更改-ObjC再次与每个pod install. 对于这个问题还有其他解决方案/想法吗?

P.S.我知道之前的苹果技术说明也提到:

静态框架不是共享静态库的受支持方式。

但不幸的是,我目前受到业务限制的束缚,我必须包含这个静态框架依赖项。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分发依赖于静态框架的动态框架的正确方法是什么? 的相关文章

  • 运行工具链时出现“xcrun:错误:无法找到 SDK“iphonesimulator””

    我正在尝试将 Kivy 程序编译到 iOS 上 但是当我运行构建 Kivy 发行版的命令时 我不断收到此错误 xcrun 错误 无法找到 SDK iphonesimulator 我的电脑上有 xcode 到底是怎么回事 有点晚了 但我在尝试
  • 当应用程序置于后台时,GCD 分派操作未运行

    我启动了一种方法 本质上是一个无限循环 使用dispatch queue create进而dispatch async 然后代码循环位于分派块内 循环完美运行 但是 当应用程序进入后台时 它会暂停 然后当应用程序进入前台时它会重新启动 我怎
  • xcode 中的 Git(无分支)

    在我的 ios 项目中 我使用 git 作为 scm Xcode 存储库列表包括 至少在 Xcode 中 无分支 的内容 前段时间我可能检查了以前的提交 但没有创建分支 从那时起我已经做出了大约 40 次提交 现在我想从我的下一个最后提交分
  • UIPageViewController 并删除当前视图控制器

    I setup UIPageViewController通过一些视图控制器前进和后退 我有一个问题 当视图控制器添加到UIPageViewController内存使用量将会增加 直到编译器给我Received memory warning然
  • 如何使用 Firebase 数据库和 Firebase 通知构建聊天应用的通知系统

    我正在 Android 中使用 Firebase 数据库开发聊天应用程序 我已经完成了核心 聊天和用户列表活动 但我还没有完成通知系统 我想要的是 当一个用户被添加到对话 单个或组 并且另一个用户向对话写入新消息时 第一个用户必须收到一条通
  • 具有开发配置的 .ipa 和具有临时分发配置文件的 .ipa 之间有什么区别?

    我查看了堆栈溢出有很多类似的问题 但无法准确理解 据我所知 配置文件分为三种类型 开发配置文件 即席分发配置文件 应用程序商店分发配置文件 开发配置文件允许测试和调试 用于 Beta 测试的临时发行版 无需使用 Xcode 但我的问题是 i
  • 使用 PHP 发送器和 Swift 在后台未收到 IOS GCM 推送通知

    我正在努力让后台通知在带有 GCM 的 IOS 上工作 非后台通知已经可以工作了 以下是我集成后台通知的步骤 在 UIBackgroundmodes 中启用远程通知标签 将内容可用密钥添加到我的通知负载中 在我的委托中编写 applicat
  • NSDate 返回错误的年份

    在 MyappAppDelegate m 文件中的 application didFinishLaunchingWithOptions 方法中 我刚刚写道 NSDateFormatter df NSDateFormatter alloc i
  • 显示键盘时 Admob 广告不会出现在 UITableView 页脚中

    我用它在 UITableView 的页脚上显示 Admob 广告 UIView tableView UITableView tableView viewForFooterInSection NSInteger section GADBann
  • 如何用RXSwift实现UIPickerView

    就像 UITableView 一样 items bindTo tableView rx items cellIdentifier cellIdentifier cellType AttentionTableViewCell self row
  • Swift iOS - 视觉框架文本识别和矩形

    我试图在使用 Vision 框架找到的文本区域上绘制矩形 但它们总是有点偏离 我这样做是这样的 public func drawOccurrencesOnImage occurrences CGRect image UIImage gt U
  • 需要一些关于调度队列、线程和 NSRunLoop 的澄清

    以下是我所知道和理解的事情 全局队列是一个同时队列 可以将任务分派给多个线程 不保证执行任务的顺序 例如 dispatch async dispatch get global queue DISPATCH QUEUE PRIORITY DE
  • 为什么 UIAElement 的孩子不等于他们自己?

    我注意到我不久前编写的 UIAutomation 脚本中有一些奇怪的行为 但我已经有一段时间没有运行了 我的主张失败了 经过一些挖掘后 我发现在迭代 UIAElement 时 elements 子元素似乎不等于它们自己 这在过去对我来说如预
  • 将光标移动到 UItextview 开头[重复]

    这个问题在这里已经有答案了 可能的重复 将光标移动到 UITextField 的开头 https stackoverflow com questions 4180263 moving the cursor to the beginning
  • 如何在 OauthSwift 库中设置回调 URL

    我正在开发一个项目 其中我正在实现 OAuthSwift 库以连接到同时使用 OAuth1 和 OAuth2 的多个不同社交网站 我已将应用程序设置为加载 Web 视图 将我带到我的社交网站 但我无法让应用程序重定向回来 一旦我加载我的凭据
  • 如何制作抗崩溃的ios应用程序

    我现在正在编写 ios 应用程序一段时间 但我的应用程序仍然经常崩溃 并且需要时间才能使它们变得非常稳定 我觉得这很烦人 那么 有没有关于防崩溃编程ios应用程序的编程模式呢 打开编译器警告 删除所有警告 运行静态分析器 删除所有警告 使用
  • 快速检测屏幕上任意位置的触摸

    我知道你可以使用touchesBegan touchesEnded等来检测触摸 这些都有效 唯一的问题是 它们只检测视图本身的触摸 而不检测视图顶部的任何内容 例如文本字段 我的目标是在一段时间不活动后创建一个超时 如果触摸屏幕 超时将被重
  • 同时输入两个 uitextfield

    我想同时输入两个uitextfield 这可能吗 您可以使用以下代码来完成此操作 Typein2 h 声明了三个文本字段的类 textFieldBeingEdited textField是为了知道哪个textField text1或text
  • Swift Joint:在可观察对象中使用计时器发布者

    在这个问题被标记为重复之前这另一个问题 https stackoverflow com questions 57199922 create a timer publisher using swift combine 我试图了解出版商是如何运
  • Xcode 问题导航器中不显示警告

    我的项目构建时出现警告 但它没有显示在 问题导航器 中 我怎样才能收到此警告并解决它 我尝试单击窗口顶部的警告 但没有任何作用 我正在使用 Xcode 4 3 我遇到了同样的问题 我发现它只是因为下面的过滤器输入有问题 您可以通过在下面的过

随机推荐