关于ios:dyld:未加载库:@ rpath / libswiftCore.dylib

dyld: Library not loaded: @rpath/libswiftCore.dylib

我试着在我的iPhone4S上运行一个Swift应用程序。它在模拟器上运行很好,我的朋友可以在他的iPhone4S上成功运行它。我有iOS8和Xcode6的官方版本。

我试过了

    百万千克1重新启动Xcode、iPhone、计算机百万千克1百万千克1清洁和重建百万千克1百万千克1撤消和创建新的证书/设置配置文件百万千克1百万千克1运行路径搜索路径为$(inherited) @executable_path/Frameworks。百万千克1百万千克1嵌入内容包含swift代码为"是"百万千克1百万千克1代码签名标识是开发人员百万千克1

以下是全部错误

1
2
3
4
5
6
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


对我来说,以前的解决方案都不起作用。我们发现在构建设置中有一个"始终嵌入Swift标准库"标志,需要设置为"是"。默认情况下不是!

Build Settings > Always Embed Swift Standard Libraries

设置此项后,请在重新生成之前清理项目。

对于敏锐的读者来说,一些解释最重要的部分是:

set the Embedded Content Contains Swift Code (EMBEDDED_CONTENT_CONTAINS_SWIFT) build setting to YES in your app as shown in Figure 2. This build setting, which specifies whether a target's product has embedded content with Swift code, tells Xcode to embed Swift standard libraries in your app when set to YES.

enter image description here

这面旗子以前叫Embedded Content Contains Swift Code


令人惊讶的是,我所做的只是"清理"我的项目(shift+cmd+k),它起作用了。但似乎与证书有关。


删除以下内容时,我开始出现此错误:

1
@executable_path/Frameworks

来自我的构建设置中的Runpath Search Paths。替换它可以修复所有问题(感谢源代码管理!)

我不知道它是如何到达那里的,但似乎需要一个二进制文件来找到它的嵌入式Swift运行时。


对于设备,还需要将动态框架添加到项目的General选项卡中的Embedded binaries部分。enter image description here


Xcode中的选项选择为8 Embedded Content Contains Swift Code是不再可用。

它已经到"Always Embed Swift Standard Libraries = YES"更名为

enter image description here


我认为这是一个错误,当证书直接从Xcode生成时。要解决(至少在Xcode 6.1/6A1052D中):

  • 转到管理证书的Apple Developer网站:https://developer.apple.com/account/ios/certificate/certificateList.action
  • 选择您的证书(应在"状态"下显示"由Xcode管理")并将其"吊销"
  • 按照此处的说明手动生成新证书:https://developer.apple.com/library/ios/documentation/ides/conceptive/appdistributionguide/maintainingcertificates/maintainingcertificates.html//apple-ref/doc/uid/tp40012582-ch31-sw32
  • 转到xcode>首选项>帐户>[您的Apple ID]>双击您的团队名称>单击刷新按钮以更新证书和配置配置文件。

  • 好的,在这里分享这个错误的另一个原因。我花了几个小时才弄清楚。

    在我的例子中,我的证书在keychain访问中的信任策略总是可信的,将它改回默认值解决了这个问题。

    要打开"证书设置"窗口,请双击证书的钥匙链访问列表中的证书。

    enter image description hereenter image description here


    我在运行我的swift测试时遇到了这个问题(但不是我的应用程序)。结果表明,测试需要在测试目标的Runpath Search Paths构建设置中包含多于@executable_path/Frameworks。将运行路径搜索路径设置为以下路径对我很有吸引力:

    1
    2
    3
    $(inherited)
    @executable_path/Frameworks
    @loader_path/Frameworks


    您必须将Runpath Search Paths设置为@executable_path/Frameworks,如下构建设置屏幕截图所示:

    enter image description here

    如果您有任何嵌入的框架在Swift中制作,那么您可以将构建选项Embedded Content Contains Swift Code设置为YES


    我认为苹果在参考Swift库libswiftcore.dylib时已经将其总结为Swift应用程序崩溃。

    引用自技术问答QA1886:

    Swift app crashes when trying to reference Swift library
    libswiftCore.dylib.

    Q: What can I do about the libswiftCore.dylib loading error in my
    device's console that happens when I try to run my Swift language app?

    A: To correct this problem, you will need to sign your app using code
    signing certificates with the Subject Organizational Unit (OU) set to
    your Team ID. All Enterprise and standard iOS developer certificates
    that are created after iOS 8 was released have the new Team ID field
    in the proper place to allow Swift language apps to run.

    Usually this error appears in the device's console log with a message
    similar to one of the following:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [....] [deny-mmap] mapped file has no team identifier and is not a platform binary:
    /private/var/mobile/Containers/Bundle/Application/5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1/YourAppNameHere.app/Frameworks/libswiftCore.dylib

    Dyld Error Message:
      Library not loaded: @rpath/libswiftCore.dylib

    Exception Type: EXC_BREAKPOINT (SIGTRAP)
    Exception Codes: 0x0000000000000001, 0x0000000120021088
    Triggered by Thread: 0

    Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
    Reason: no suitable image found. Did find:
    /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
    Dyld Version: 353.5

    The new certificates are needed when building an archive and packaging
    your app. Even if you have one of the new certificates, just resigning
    an existing swift app archive won’t work. If it was built with a
    pre-iOS 8 certificate, you will need to build another archive.

    Important: Please use caution if you need to revoke and setup up a new
    Enterprise Distribution certificate. If you are an in-house Enterprise
    developer you will need to be careful that you do not revoke a
    distribution certificate that was used to sign an app any one of your
    Enterprise employees is still using as any apps that were signed with
    that enterprise distribution certificate will stop working
    immediately. The above only applies to Enterprise Distribution
    certificates. Development certs are safe to revoke for
    enterprise/standard iOS developers.

    当AirSign的人声明问题的根源是内部证书的主题字段中缺少ou属性。

    主题:uid=269j2w3p2l,cn=iphone分发:公司名称,ou=269j2w3p2l,o=company name,c=fr

    我有一个企业发展证书,创建了一个新的,解决了这个问题。


    让我们来看一下P项目正在导入自定义库L,然后必须将L添加到

    P -> Build Phases -> Embed Frameworks -> +。这对我很有用。

    enter image description here


    换了一台新的Mac电脑后,我也遇到了同样的问题,几个小时后,我尝试了所有问题的建议答案,但这些都没有对我起作用。

    我的解决方案是安装这个丢失的证书。http://developer.apple.com/certificationauthority/applewwdrca.cer

    在这里找到了答案。https://stackoverflow.com/a/14495100/976628


    最容易被忽略的和容易的方式:清洁和重建。

    我想这个问题的答案后,以上的和没有工作。


    将目标的copy pods资源更改为:

    1
    "${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"

    到:

    1
    "${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"


    这个错误消息可以在Xcode(和随后引起的升级到新版本的SWIFT)和您的项目使用一种内置A /框架/以前的旧版本的雨燕。

    在这个案例的框架重建和重新添加它想要解决的问题。


    我通过删除派生数据解决了这个问题,这次它工作正常。尝试使用xcode 7.3.1gm


    在尝试了所有的东西之后,我终于发现,构建似乎并不总是一次又一次地包含每一个细节。也许是为了加快进程…为了在设备上运行前确保整个包装,请先进行清洁:shift-cmd-k。然后用:cmd-b构建。然后在你的设备上运行它。容易的。向那个地方所有的好人致以亲切的问候!


    这个问题在Xcode10.2中再次出现。您必须从Apple下载并安装以下软件包。它为命令行工具提供了Swift5运行时支持。

    https://support.apple.com/kb/dl1998?区域环境


    在我的例子中,它只是我目标的名字:

    我把它重新命名为:myapp.something和相同的问题出现了。但是我在构建设置窗口中看到,我的产品模块名称已经像这个MyApp一样被更改了。所以,我删除了目标名称(myappsomething)中的点,问题就消失了。


    对我来说,在尝试了一切但都没有成功的情况下,有效的方法是把@executable_path/FrameworksPackaging section中删除(不知道它最初是如何出现的)。

    enter image description here


    所有的解决方案都不适合我。重新启动手机修复了它。很奇怪,但它起作用了。


    这些解决方案的工作,但当我改变世界的开发者许可证书到Use System defaults然后它工作。我已经包括的步骤和截图在下面的链接

    我会鼓励你登录的票证在bug报告提到这里作为王牌苹果苹果真的应该解决这个巨大的错误:stackoverflow.com http:/ / / / / 41401354 559760


    对于我来说,构建一个依赖于第三方Swift libs(例如sqlite)的MacOS命令行Swift应用程序,上述任何解决方案似乎都不起作用。所做的工作是直接将以下路径添加到构建设置中的运行路径搜索路径:

    /applications/xcode.app/contents//developer/toolchains/xcodedefault.xctoolchain/usr/lib/swift/macosx/

    这样做确实在运行时发出了警告,说xcode已经找到了libswiftcore的两个版本——这是有意义的。但不包括该行导致Xcode找不到libswiftcore的任何版本。

    不管怎样,这对我来说是可行的,即使它看起来不正确——我的应用程序只是一个我不打算发布的实用程序,至少现在可以运行了!


    Xcode 7.2,iOS 9.2在一台设备上,9.0在另一台设备上。两者都有错误。不知道是什么改变了它,但是上面的WWDR解决方案对我来说是正确的。安装该证书并解决问题。

    https://forums.developer.apple.com/message/43547https://forums.developer.apple.com/message/84846


    有很多答案,但它(我想可能是有帮助的答案有一个。

    我有同样的问题,我的程序在模拟器上装置作品精细但有午餐,或应用程序崩溃会偏差。我想所有的答案和解决方案。在我的案例,我的项目,我创建了一个多目标的。目标从目标A,目标B的复制目标A有B厂精细而崩溃会。我使用不同的图像中的每个目标资产。做谷歌搜索后,我找到了一些和它可以帮助到别人。

    应用程序崩溃,当我停止发射图像资产变更名称为这两个应用程序。e.g目标图像launchimage资产名称一次。目标图像launchimage午餐B资产名称和编号在表B中的每个目标的将军。应用精细的作品。


    我在Xcode 8.3.2。我的问题是什么applewwdrca两个系统登录证书和钥匙扣。然后添加删除都只是登录钥匙扣,现在跑细了。2天迷失????????


    我同时安装了多个版本的Xcode。框架是用较新版本的Xcode构建的。我试图编译的应用程序使用的是旧版本的Xcode。当我使用相同版本的Xcode清理和编译框架和应用程序时,一切都正常了。


    我开始得到类似的错误在测试文件添加S3使用AWS服务。下面是错误的。dyld:图书馆需要加载路径awsautoscaling.framework awsautoscaling:/ /

    i搜查了上述解决方案A焊料和乐于助人是我需要的。下面的链接是我解决这个问题。

    http:/ / / / 21292 forums.developer.apple.com线程

    它说,这个问题解决通过重新下载wwdr(苹果全球开发者关系的认证机构)。


    我使用Xcode 8.3.3 Xcode和9.2。我的解决方案是从默认的Xcode的转换器8 9使用Xcode选择:

    美元的Xcode选择打印路径

    $ sudo Xcode选择开关/应用/ xcode-9.2.app

    编辑:我没有什么帮助,这在Xcode 9.2使用Xcode 8.3.3从源数据。不是一个解决方案,但至少它让我前进的是我的工作。


    要添加到企业分发证书解决方案:您可以打开密钥链并检查证书。如果有任何红色文本表示信任链无法验证或被吊销,则它将不起作用!在我的计算机上,我们的分发证书显示为已吊销,即使门户网站显示它仍然有效。我们得到了一个新的发行证书,它在keychain中是绿色的(有效的),这解决了这个问题。


    上述解决方案对我不起作用。我通过以下步骤解决问题:

  • 我必须转到电话(设置>配置文件)并删除手机中的配置文件(包括所有相关应用程序)有了这些资料/规定)。
  • 之后,确保你在Xcode中下载Apple条款。转到xcode设置>帐户并登录到您的Apple Developer帐户。

  • 我用的是Xcode7.2。如果您尝试了以上所有操作,但仍然出现错误,请尝试从钥匙链访问中删除旧证书!最终解决这个问题真是太痛苦了。


    当Xcode要求您重置证书时,您将重置它。而且该应用程序可以在实际设备上运行,而不会因错误消息而崩溃。一旦这个问题在一个Swift项目中得到解决。其他有这个问题的swift项目也会被修复。

    我为此苦苦挣扎了半天,发现在配置门户中一次又一次地重置证书没有帮助。


    在我的例子中,我的一个测试目标是有效的,但另一个没有。它给出了上面的错误,一个丢失的库或者其他什么。我比较了两个测试目标的设置,发现其中一个缺少"测试主机"的配置,所以我从工作的测试目标复制了它,它修复了我的损坏的测试目标!

    enter image description here


    从邮政局github.com cocoapods http:////cocoapods集成规格/拉/文件/ 24,这是需要的,但平均swift.dylib登录失败。即使我失败cocoapod新项目创建一个迅速的支持。


    如果你的项目有不同的cocoapods和更新计划,试运行(是我固定它。


    子说,你想检查"启用bitcode = NO"。它为我。

    在我的案例,我的项目是写在C和包括一个对象的第三方框架写的雨燕。我可以运行我的应用程序是在模拟器和真实设备的开发模式。然而,这一次我取得一个特设的应用程序配置和安装的OTA的佣金在这个真实的IPA装置,它的崩溃会。甚至不是说上传存储。希望这个信息可以帮助。


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

    1
    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 SettingOther Linker FlagReactiveCocoa删除的框架。如果是xxx.framework,你知道,你应该在xxx删除。

    删除的reactivecocoa

    delete the ReactiveCocoa


    在我看来,

    我已经安排好了。

    但是我还必须设置"框架搜索路径"

    1
    $(PROJECT_DIR)/Frameworks

    改为recursive

    对我有用。


    以下步骤对我很有用:

    • 单击您的项目名称(导航器顶部)
    • 再次单击您的项目名称(不在目标上)
    • 单击"生成设置"选项卡
    • 搜索Runpath Search Paths

    • 将其值更改为$(继承的)标志(删除@executable_path/frameworks)。


    在这里,我下面的解决方案禁用"资产包中嵌入产品捆绑"这个问题想了

    enter image description here