我正在试着在我的iPhone 4s上运行Swift应用程序。它在模拟器上运行良好,我的朋友也可以在他的iPhone 4s上成功运行。我有iOS 8和官方发布的Xcode 6。

我试过了

重启Xcode, iPhone,电脑 清洁和重建 撤销并创建新的证书/供应配置文件 运行路径搜索路径是$(inherited) @executable_path/Frameworks 包含Swift代码的嵌入内容是“是” 代码签名身份是开发人员

下面是完整的错误

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib

当前回答

你必须设置Runpath搜索路径为@executable_path/Frameworks,如下面的Build Settings截图所示:

如果你有任何Swift内置框架,那么你可以将Build Options embedded Content Contains Swift Code设置为YES。

其他回答

我试着把所有答案通读一遍。(可能漏掉了一些) 但这是我的解决方案。可能对某人有帮助。 我刚刚在我的项目中创建了一个swift文件(void.swift)。当我添加这个文件时,它要求我创建一个桥接。我答应了。这是所有!它开始起作用了。 背景:我的项目是写在obj c.和我添加了FBSDK pods到我的项目。在那之后,我开始得到这个错误。

我们有一个unity项目,它创建了一个xcode项目,其中包括使用swift的库。

我们尝试了这个话题上的每一个合理的建议。

毫无效果。代码在新设备上运行良好,在iOS上崩溃<=12

看起来swift是如此的聪明,即使你将它设置为"ALWAYS_EMBED_SWIFT_LIBRAIES"="YES",它也不包括swift库。

真正为我们解决问题的是在项目中包含一个虚拟的swift文件。 该文件必须包含对分派、基础库的调用。

显然,这暗示了mighty-xcode强制包含库,但这次是真的。

下面是我们添加的虚拟文件,使其工作:

import Dispatch
import Foundation


class ForceSwiftInclusion {

   init() {

    // Force dispatch library.
    DispatchQueue.main.async {
      print("something")
    }

    // Force foundation library.
    let uuid = UUID().uuidString
    print("\(uuid)")

   }
}

对于统一,也添加项目。AddBuildProperty(target, "SWIFT_VERSION", "Swift 5");到创建xcode项目的后期处理。

下面这些步骤对我很有效:

单击项目名称(在导航器的最上方) 再次点击你的项目名称,(不是目标) 单击“生成设置”选项卡 搜索跑道搜索路径 将其值更改为$(inherited)标志(删除@executable_path/Frameworks)。

我在运行Swift测试时遇到了这个问题(但不是我的应用程序)。事实证明,测试需要在测试目标的Runpath Search Paths构建设置中有更多的@executable_path/Frameworks。以下设置Runpath搜索路径对我来说很有魅力:

$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks

我也有同样的问题,问题是这样的:

dyld: Library not loaded: @rpath/Result.framework/Result Referenced from: /private/var/mobile/Containers/Bundle/Application/74AD1FE2-7095-47D2-B059-520863050EE2/ReactiveCocoaTest.app/Frameworks/ReactiveCocoa.framework/ReactiveCocoa Reason: image not found

我的解决方案如下:

在TARGET -> Build Setting -> Other Linker Flag ->中删除ReactiveCocoa框架。如果是xxx.framework,你应该删除xxx.framework。

删除ReactiveCocoa