【问题标题】:Unable to run Swift iOS app on device无法在设备上运行 Swift iOS 应用程序
【发布时间】:2015-04-08 11:25:58
【问题描述】:

我知道关于 SO 至少有 5 个不同的问题,其描述完全相同,但是我已经尝试了那里的每一个答案,但没有任何用处。

在过去的 12 天里,我无法解决以下错误:

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/D385AC46-BAB1-4FEB-8C08-7F78D095605E/tes.app/tes
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/D385AC46-BAB1-4FEB-8C08-7F78D095605E/tes.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1000B0000, size=0x0018C000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/D385AC46-BAB1-4FEB-8C08-7F78D095605E/tes.app/Frameworks/libswiftCore.dylib
  • 我已经吊销了将近 15 次证书,验证了它们的主题行与 OU 等有关。
  • 我已将嵌入式 swift 代码标志发送到是
  • 我已将运行路径搜索路径设置为适当的值。

还有其他人可以提供帮助吗?看起来我在 Apple 的无语言版本上浪费了 99 美元。

【问题讨论】:

  • 您是否仅尝试使用自己的应用程序?您应该从网上下载任何示例应用程序,看看是否可以在您的设备上运行该应用程序。你说“无法运行 Swift iOS 应用程序”,这是否意味着你没有 Objective-C 的问题?
  • 请尝试一个完整的干净构建:Product->Clean, Product->(Alt key) Clean Build Folder, Window->Organizer->Deletederived data。然后重新构建
  • 您之前是否能够在设备上运行该应用程序?我总是建议,如果事情不起作用并且似乎无法修复,请卸载并重新安装 Xcode,这可以解决很多问题。试试看:)
  • 我在运行 Objective-C 项目时没有任何问题。只有 swift 代码不会运行,因为它没有正确签名。我已经尝试了默认的“创建新项目”功能,除了 hello world 之外我没有运行任何东西。它在模拟器上完美运行。抄送:@Wouter
  • @LinusG。我已经卸载了 Xcode 并安装了至少 2 个不同的版本。我还多次删除了 XCode 文件、缓存、派生数据。

标签: xcode swift


【解决方案1】:

我终于找到了答案。我不得不删除链钥匙串管理器中的所有证书。

【讨论】:

    【解决方案2】:

    你有没有勾选项目设置中的“Embedded Content Contains Swift Code”设置?

    我在这里找到它:dyld: Library not loaded: @rpath/libswiftCore.dylib

    【讨论】:

    • 是的。我没有那个答案以及该答案中提到的所有其他内容。
    • 所以当你的代码是用 Objective-c 而不是 Swift 编写的时,你可以在设备上运行应用程序吗?当您在“设备”窗口中查看设备时,它是否显示正常?另外,能不能做个存档?看看这个:developer.apple.com/library/ios/documentation/IDEs/Conceptual/…
    • 是的,我可以存档。设备窗口显示我的设备。
    【解决方案3】:

    对于它的价值,我没有详细的推理来支持我的解决方案,而只是一个理论。

    我也遇到过你的情况,一个接一个地尝试失败的解决方案,只是继续循环运行,希望 Apple 的神奇更新能够解决问题。我已经完成了证书的吊销,重新安装 Xcode,检查 Embedded Content Contains Swift Code 为“是”,并确保我的运行路径具有
    @executable_path/Frameworks.

    我经常和越来越多地遇到的一个问题与 Apple 提高文件访问安全性有关。当多个配置文件与一台计算机关联时,这似乎是一个更大的问题。

    我知道从错误消息中忽略很多行话很容易,但让我发现这个问题的是实际找到文件时出现以下错误

    mmap() error
    

    我认为正在发生的事情是尝试重新映射 libswiftCore.dylib '原因:找不到合适的图像。发现:'从预期文件到实际文件位置的映射,正在强制执行未正确处理的文件权限限制,因此导致应用程序崩溃。

    我做了什么?对我所有与 iOS 开发相关的证书强制进行身份验证。此操作是,进入我的钥匙串访问并单击证书私钥并强制我的访问控制“在允许访问之前确认”,并将我的证书信任级别设置为系统默认值。结果导致我的项目构建要求我进行 50-60 多次身份验证,但是,这比调试所花费的时间要少得多。

    这就是为什么我说我的解决方案没有具体的详细答案,因为我几乎使用了包罗万象的方法。由于我最近才开始使用此解决方案,因此我没有进行任何额外的测试来确定具体是什么导致了错误,或者是否将访问控制从 Xcode 更改回允许继续工作。

    这对我有用,根据您的描述,我相信也对您有用。

    【讨论】:

      【解决方案4】:

      我不得不删除所有苹果证书并重新生成我的开发/分发证书。

      我还添加了 Apple WWDRCA 证书并使用以下步骤删除了过期的证书:

      1. https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
      2. 双击安装到钥匙串。然后在钥匙串中,选择查看 - >钥匙串应用程序中的“显示过期证书”。
      3. 它将列出所有过期的证书。从“登录”选项卡中删除“Apple 全球开发者关系证书颁发机构证书”
      4. 并从“系统”选项卡中删除它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-06
        • 1970-01-01
        • 2011-09-28
        • 2022-01-03
        • 2019-08-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多