Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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
Ios 在Swift中将外部框架嵌入到自制的私有框架中_Ios_Swift_Ios Frameworks - Fatal编程技术网

Ios 在Swift中将外部框架嵌入到自制的私有框架中

Ios 在Swift中将外部框架嵌入到自制的私有框架中,ios,swift,ios-frameworks,Ios,Swift,Ios Frameworks,我使用Xcode 6和Swift构建了一个框架,我的框架使用作为依赖项添加到。我存档了我的框架,并使用lipo为模拟器和iOS设备创建了一个构建,当我试图将我的框架用于一个空应用程序时,我在运行时遇到了崩溃: dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON Referenced from: /Users/hd/Library/Developer/CoreSimulator/Devices/324FD1CD-4A06

我使用Xcode 6和Swift构建了一个框架,我的框架使用作为依赖项添加到。我存档了我的框架,并使用
lipo
为模拟器和iOS设备创建了一个构建,当我试图将我的框架用于一个空应用程序时,我在运行时遇到了崩溃:

dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON
Referenced from: /Users/hd/Library/Developer/CoreSimulator/Devices/324FD1CD-4A06-459B-AE6D-318197B5697E/data/Containers/Bundle/Application/555871BB-7AA1-4AED-90CE-EE0A628A794F/CollaborativeTodo.app/Frameworks/XXXXX.framework/XXXXX
Reason: no suitable image found.  Did find:
/Users/hd/Library/Developer/CoreSimulator/Devices/324FD1CD-4A06-459B-AE6D-318197B5697E/data/Containers/Bundle/Application/555871BB-7AA1-4AED-90CE-EE0A628A794F/CollaborativeTodo.app/Frameworks/SwiftyJSON.framework/SwiftyJSON: no matching architecture in universal wrapper
这是我的树状结构的样子——我的框架名称被故意模糊了:

“常规”选项卡:

建造阶段:


如果我在我的项目中包含使用迦太基的SwiftyJSON,它就会起作用,但我不希望用户被迫包含第三方库如何将SwiftyJSON嵌入到我的框架中,并告诉Xcode在运行时使用嵌入的版本,而不是试图在项目中查找框架?

你无法避免让应用程序直接包含SwiftyJSON。更好的说法是,你不应该避免让应用程序包含SwiftlyJSON。如果应用程序由于其他原因已经有了SwiftlyJSON,那么由于重复的符号,您将给他们带来巨大的痛苦。取决于他们做事情的具体方式,他们可能不会出错,只是没有定义的行为,这更糟糕。自动包含是一种非常好的功能,直到它完全爆炸,没有人知道如何修复它。如果在StackOverflow上搜索“ios复制符号”,我估计其中大约一半是由于框架试图自动包含子框架(通常是
SBJSON


记录所依赖的内容,并将其作为嵌套依赖项包含在Cartfile中。迦太基将为他们构建它(他们仍然需要将它拖到他们的项目中)。

我已经计划使用迦太基来分发它,并使SwiftyJSON成为一个依赖项,但我想知道是否有最聪明的解决方案。谢谢!有关此问题的任何更新。。我的自定义动态框架依赖于外部库。使用my framework的主机应用程序找不到这些依赖项。获取外部连接的链接器错误frameworks@AnilVarghese我不确定你说的“更新”是什么意思。要求没有改变,要求的理由也没有改变。消费应用程序必须将所有依赖项链接在一起。主机应用程序是否已配置为链接所有框架(包括您的依赖项)?@RobNapier我们有一个动态框架项目,用于在多个应用程序(消费者)之间共享通用代码,称之为SDK。SDK项目已配置为链接到几个外部框架,如Facebook、OpenTok等。该项目已添加到共享消费者项目的工作区中。SDK构建成功。现在我想访问一个外部框架,该框架通过我的SDK从消费者应用程序链接。然后消费者应用程序失败,出现链接器错误。我如何告诉链接器,它引用的框架在SDK中。我不想保留同一作品的两份副本。Thanks@AnilVarghese第三方框架不应该“通过我的SDK”链接。它们应该由应用程序直接链接。应用程序应该在其链接步骤中明确列出Facebook。是这样配置的吗?