我正在尝试运行由另一个开发人员创建的IOS应用程序,该应用程序正在使用我无法访问的私有存储库中的cocoapod。我设法从IPA中提取.framework包并将其添加到xcode项目中但它没有被识别(我得到“没有这样的模块”)。
有可能做我想要实现的目标吗?
到目前为止,我已经尝试过了:
谢谢!
答案 0 :(得分:3)
从ipa文件中获取项目中使用的框架并不是那么容易。
当应用程序第一次运行时,同样在归档应用程序时,所有链接的.frameworks都将转换为动态库.dylib。
什么是静态库 - 在编译时链接的代码单元,不会更改。
什么是动态库 - 在运行时链接的代码和/或资产单元,可能会发生变化。
框架 - 框架是一个分层目录,它将动态库,头文件和资源(如故事板,图像文件和本地化字符串)封装到单个包中。使用框架的应用程序需要将框架嵌入应用程序包中。
动态lib文件只驻留在框架文件夹中。
以下是Apple文档中的说明
外面的动态库 一个框架包,通常有文件扩展名.dylib, iOS,watchOS或tvOS不支持,系统除外 Xcode提供的Swift库。
因此,您不能简单地将.dylib复制到xcode包并只使用它。也有某种安全性。
可以从.ipa文件反编译源代码。您将从以下链接中了解。
答案 1 :(得分:0)
似乎将应用程序存档进行分发时,{。1work}和Headers
文件夹已从.framework捆绑包中删除。
Modules
文件夹包含Objective-C的.h标头,而Header
文件夹包含Swift的.swiftmodule等效文件。
没有这些文件,您就没有框架二进制文件可使用的公共API,因此不幸的是,如果不进行逆向工程,这将使框架无法使用。