添加从 IPA 中提取的 swift 框架

Ivo*_*Ivo 5 xcode ipa cocoapods swift-framework

我正在尝试运行另一个开发人员创建的 IOS 应用程序,该应用程序使用我无权访问的私人存储库中的 cocoapod。我设法从 IPA 中提取 .framework 包并将其添加到 xcode 项目中,但它没有被识别(我得到“没有这样的模块”)。

是否有可能实现我想要实现的目标?

到目前为止,我已经尝试过:

  • 在发布版本中构建它,因为我猜 IPA 中的框架正在发布中
  • 将 .framework 添加为嵌入式二进制文件
  • 添加 .framework 作为链接框架和库
  • 将 .framework 复制到 ~/System/Library/Framework
  • 更新框架搜索路径,包括 $(SRCROOT)、递归、硬编码路径等。
  • 将 .framework 位置更改为“相对于构建产品”

谢谢!

Sar*_*ith 3

从ipa文件中获取项目中使用的框架并不是那么容易。

当应用程序第一次运行时,以及当您归档应用程序时,所有链接的 .frameworks 将转换为 .dylib,即动态库。

什么是静态库- 在编译时链接的代码单元,不会改变。

什么是动态库- 在运行时链接的可能会发生变化的代码和/或资产单元。

框架- 框架是一个分层目录,它将动态库、头文件和资源(例如故事板、图像文件和本地化字符串)封装到单个包中。使用框架的应用程序需要将框架嵌入到应用程序的捆绑包中。

动态库

动态 lib 文件仅驻留在框架文件夹内。

以下是苹果文档中的描述

框架包外部的动态库(通常具有文件扩展名 .dylib)在 iOS、watchOS 或 tvOS 上不受支持,但 Xcode 提供的系统 Swift 库除外。

参考:文档

所以你不能简单地将 .dylib 复制到 xcode 包并使用它。也有某种安全性。

另一种方法

可以从 .ipa 文件反编译源代码。您将从以下链接中获得想法。

SO 关于反编译ipa文件的问题

反编译的可能性