原因:没有找到合适的图片

Reason: no suitable image found

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb) 

我在 iPhone 上构建时遇到此错误。我能够在模拟器上构建。我已经重做了我所有的配置文件,但是我仍然无法在我的 iPhone 上构建。我的Xcode是这样的

这是框架问题还是签名问题?这在 Xcode 6 中没有发生。谢谢。

你可能在该库中没有正确的 arch,你可以做一个

file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib

它应该会向您显示该库中的拱门...我不确定您是如何链接的,但这可能不是正确的方法(如果 libswiftcore 是一个工厂库,如果它是一些添加库然后它可能没有正确编译)

我在这个问题上搜索了很久。有多种原因导致此问题。

如果您和 Swift code/library 在 Objectice C 项目中遇到问题,您应该尝试解决方案 1-2-3

如果您在新的 Swift 项目中遇到此问题,解决方案 4 最适合您。

解决方案 1:

重新启动 Xcode,然后重新启动计算机和 iPhone

解决方案 2:

转到项目构建设置并将 Embedded Content Contains Swift 代码标志设置为 YES

方案三:

转到项目构建设置并将 @executable_path/Frameworks 添加到运行路径搜索路径选项

方案四:

如果上述none有效,这应该。正如 AirSign post

中提到的那样,Apple 似乎是忍者修补证书

InHouse 证书

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

他们添加了一个名为 OU

的新字段
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

所以你应该重新创建证书和配置

我以前有过这个问题,因为我不小心吊销了我的证书。然后我所有的swift项目都有这个问题。有两种方法可以解决这个问题:

点击产品 →清理(​​或CMD + Shift + K

或通过手动清理 Xcode 设置文件:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.apple.dt.Xcode

删除 DerivedData 对我有用。

通过 Xcode -> 首选项 -> 位置 -> 单击 DerivedData 路径后面的箭头并删除 Finder 中的整个 DerivedData 文件夹。

如果您不小心重置了钥匙串,可能是因为钥匙串中缺少 Apple 证书。我按照 this 上的答案解决了我的问题。

I had the same issue and was able to fix by re-downloading the WWDR (Apple Worldwide Developer Relations Certification Authority). Download from here: http://developer.apple.com/certificationauthority/AppleWWDRCA.cer

我也有这个问题,但是我在上面和其他几个帖子中尝试的都没有用..除了这个。

对我来说,我更改了包标识符,因为我们有不同的分发包 ID 和开发包 ID。

此条款允许我的硬件,我的团队帐户有效,但它在其他一些框架上引发了上述错误。

原来我需要从我的 phone 中完全删除旧版本的应用程序。而不仅仅是以标准方式删除它。

解决方案:

  1. 确保目标 phone 已连接
  2. 在 xcode 菜单中单击 [Window>设备]
  3. select 左侧菜单中的目标设备。
  4. 右侧是您设备中的应用程序列表。找到您尝试测试的应用程序并将其删除。

显然,在同一个团队下以不同的 bundle ID 安装同一个应用程序,如果您不是完全从头开始,那么有些框架参考会变得混乱。

希望这对某人有所帮助。

引用自Technical Q&A QA1886

Swift 应用程序在尝试引用 Swift 库 libswiftCore.dylib 时崩溃。

问:当我尝试 运行 我的 Swift 语言应用程序时,我的设备控制台出现 libswiftCore.dylib 加载错误,我该怎么办?

答:要更正此问题,您需要使用代码签名证书对您的应用程序进行签名,并将主题组织单位 (OU) 设置为您的团队 ID。 iOS 8 发布后创建的所有企业和标准 iOS 开发人员证书在适当的位置都有新的团队 ID 字段,以允许 Swift 语言应用程序 运行。

通常此错误会出现在设备的控制台日志中,并显示类似于以下内容之一的消息: [....] [deny-mmap] 映射文件没有团队标识符,也不是平台二进制文件: /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

构建存档和打包应用程序时需要新证书。即使您拥有其中一个新证书,仅重新签署现有的 swift 应用程序存档也行不通。如果它是使用 iOS 8 之前的证书构建的,您将需要构建另一个存档。

重要提示:如果您需要撤销和设置新的企业分发证书,请谨慎使用。如果您是内部企业开发人员,则需要注意不要撤销用于签署应用程序的分发证书,您的任何一位企业员工仍在使用任何使用该企业分发证书签名的应用程序将立即停止工作。以上仅适用于企业分发证书。 enterprise/standard iOS 开发人员可以安全地撤销开发证书。

正如 AirSign 人员所述,问题根源在于内部证书的主题字段中缺少 OU 属性。

主题:UID=269J2W3P2L,CN=iPhone 分布:公司名称,OU=269J2W3P2L,O=公司名称,C=FR

我有企业开发证书,新建一个解决了问题。

Xcode->Product->Clean + Xcode Restart

在尝试了许多其他提到的解决方案之后,让我永远感到尴尬的是,执行 Xcode->Product->Clean 并重新启动 Xcode,成功了。

对我来说,这个问题是由于 WWRD 证书而出现的——我的是最新的,但由于某种原因它被设置为 'always trust' 而不是 'use system default',这显然有所不同。

我这边是在命令行中通过 xcodebuild 和 xcrun PackageApplication 构建应用程序时发生的,并使用企业配置文件对应用程序进行签名。在我们的 CI 构建服务器上,证书在钥匙串中设置为 "Always Trust"(select 证书 -> 获取信息 -> 信任 -> "Use System Default" 可以更改为 "Always Trust").我必须将其设置回 "Use System Default" 才能完成这项工作。 最初我们将其设置为 "Always Trust" 以解决软件更新和证书更新后出现的钥匙串对话框。

我刚刚通过 alt Product menu

清理了项目和 Clean Build Folder

以下步骤成功。

1) 在动态库中安装名称必须是“@loader_path”

2) 在主项目中,运行路径搜索路径必须是“@loader_path”和“@loader_path/Frameworks”

3) 从钥匙串使用视图-->显示过期证书并删除所有内容。

4) 删除分发证书并重新安装。

5) 下载 developer.apple.com/certificationauthority/AppleWWDRCA.cer 并安装。

您可以重新生成您的证书并重新启动您的 iPhone。

这对我有用,希望对你有所帮助。

  1. 从设备中删除该应用程序
  2. 清理项目(CMD + SHift + K)
  3. Build/Run 在设备上

我通过检查我的本地 keychains.Keep login.keychain 是否具有正确的证书

来解决问题

冒着造成更多混乱的风险,我在更新到 XC8 时遇到了这个问题。

None 这些建议,也不是来自任何其他线程,解决了它。 DID 的工作是从 "Link Binary with Libraries" 构建阶段、"Target Dependencies" 构建阶段和 "Linked Frameworks and Libraries" 常规设置中删除所有内容。

仅供参考,我正在使用 Carthage 并将 $(PROJECT_DIR)/Carthage/Build/tvOS 添加到 FRAMEWORK_SEARCH_PATHS 构建设置,以便可以找到我的框架。

仅供参考 2,这个项目和框架是 100% swift 并且正在构建框架 DEFINES_MODULE = YES

我最近遇到了这个问题。我尝试了所有可能的解决方案,但没有任何效果。最后我只是退出 Xcode ,删除钥匙串中的证书并安装所有新的东西并重新启动 mac。幸运的是它很有魅力:)

我遇到了同样的问题,可以通过重新下载 WWDR (Apple Worldwide Developer Relations Certification Authority) 来解决。从 here 下载:

并在钥匙串中设置为始终信任。更改为 Use System Default

对我有用,希望对你有帮助

在我的例子中,钥匙串显示证书不受信任,为了解决这个问题,我将证书的信任选项设置为 "Always trust"。将证书设置为 "Always trust" 是崩溃的主要原因。我无法将应用程序安装到设备中。通过将信任选项设置为 "System defaults" 而不是 "Always trust" 解决了这个问题。它对我有用。

如果您在 Xamarin Studio 中工作并且正在引用需要执行 PCL 诱饵和切换技巧的可移植库,您会看到相同的症状。如果引用项目相对于引用的库已过时,则会发生这种情况。我发现我已经将我的公共库更新到一个更新的框架,更新了我的包但没有更新我的 iOS 包以匹配。更新软件包为我解决了这个错误。

您需要为项目中链接(直接或间接)的每个动态框架设置证书(只是证书而不是配置文件)

在我的例子中,我删除了 Xcode 创建并下载的所有证书。让 xcode 8.1 管理应用程序的认证,它运行良好! 希望这可以帮助某人。

我只在模拟器上遇到过这个问题。它似乎与我们应用程序中的一些无效权利有关,但是当我们 运行 在设备上时不会出现该问题。

我用这些技巧解决了。

第 1 步:

转到项目构建设置并将@executable_path/Frameworks 添加到运行路径搜索路径选项

第 2 步:

转到目标构建设置并将@executable_path/Frameworks 添加到运行路径搜索路径选项和框架搜索路径。

第 3 步:

重新下载WWDR(Apple Worldwide Developer Relations Certification Authority),设置为使用系统默认作为选项。

第 4 步:

使用终端删除所有派生数据

rm -rf ~/Library/Developer/Xcode/DerivedData/*

步骤 5:

删除所有证书并将其重新安装到钥匙串。我启用了“使用系统默认值”选项。

第 6 步:

重启Xcode.

面临同样的问题

  1. 我的开发者证书已过期,因此创建了新的开发者 证书及下载
  2. 清理并重新启动xcode这对我有用

我 运行 用 XCode 9 解决了这个问题。以上都没有解决。这对我有用:

Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"$(PROJECT_DIR)(递归)

这解决了我的错误-

重新下载WWDR(Apple Worldwide Developer Relations Certification Authority),设置为使用系统默认作为选项。

就我而言,这是我使用的 pods 之一的问题。我最终删除了那个 pod 并将代码从它手动放入我的项目中。

我也有类似的问题,详细信息如第一张图。

我的解决方案是将证书始终信任切换为使用系统默认设置。 就像:

尝试过@Jieyi Hu 的回答后,您可能仍然会遇到此问题。可能它似乎已修复,但如果它再次出现(可能在 xCode 9 上)。

但是,此解决方法似乎有效(适用于 Cocoapods 1。5.x):

  1. 清理你的项目
  2. 关闭 Xcode 并删除 DerivedData
  3. 在您的项目中打开 Podfile 并添加:

    post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end

  4. 广告连播更新

来源:

https://github.com/evgenyneu/Cosmos/issues/105

https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911

谢谢@Cédric

不管怎样,我在 XCode 9.0.1 中遇到了类似的错误。我尝试卸载并重新安装我所有的证书,但当我重新安装时,它们似乎记得我之前的信任设置。最终对我有用的(似乎)是关闭 "Apple Worldwide Developer Relations Certification Authority" 证书的 'Always Trust' 设置,然后重新启动。多么神秘的问题!