Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 添加从IPA提取的swift框架_Xcode_Cocoapods_Ipa_Swift Framework - Fatal编程技术网

Xcode 添加从IPA提取的swift框架

Xcode 添加从IPA提取的swift框架,xcode,cocoapods,ipa,swift-framework,Xcode,Cocoapods,Ipa,Swift Framework,我正在尝试运行由另一个开发人员创建的IOS应用程序,该开发人员正在使用我无权访问的私有存储库中的cocoapod。我设法从IPA中提取.framework捆绑包并将其添加到xcode项目中,但它没有被识别(我得到“没有这样的模块”) 有可能做到我想达到的目标吗 到目前为止,我所尝试的: 在发行版中构建它,因为我猜IPA中的框架正在发行 将.framework添加为嵌入式二进制文件 将.framework添加为链接的框架和库 将.framework复制到~/System/Library/fram

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

有可能做到我想达到的目标吗

到目前为止,我所尝试的:

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

谢谢

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

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

什么是静态库——编译时链接的代码单元,不会更改

什么是动态库-运行时链接的可能更改的代码和/或资产单元

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

动态库 一个动态lib文件就驻留在framework文件夹中

以下是apple文档中的描述

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

参考:

因此,您不能简单地将.dylib复制到xcode捆绑包并直接使用它。也有某种安全感

另一种方法 可以从.ipa文件反编译源代码。你将从下面的链接中获得想法


当应用程序被归档以进行分发时,似乎会从.framework捆绑包中删除
标题
模块
文件夹

标题
文件夹包含Objective-C的.h标题,
模块
文件夹包含Swift的.swiftmodule等效文件


如果没有这些文件,您就没有用于框架二进制文件的公共API,因此不幸的是,如果没有反向工程,框架将无法使用。

那么您是如何获得.framework文件的?它将是.dylib文件..@ivowiblo你能添加到你所拥有的文件的问题列表中吗我很好奇。我不能在iOS上使用
dlopen