无法在设备上运行Swift iOS应用程序。

4

我知道在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代码标志设置为是。
  • 我已将运行路径搜索路径设置为适当的值。

还有其他人可以帮忙吗?看起来我在使用苹果的无语言上浪费了99美元。


1
你只试过自己的应用吗? 你应该从网络上下载任何示例应用并查看是否可以在设备上运行。另外,你说“无法运行Swift iOS应用程序”,这是否意味着你在Objective-C方面没有问题? - Wouter
1
请尝试进行完整的清理构建:Product->Clean,Product->(按住Alt键) Clean Build Folder,Window->Organizer->Delete derived data。然后再次构建。 - zisoft
你之前能在设备上运行这个应用吗?如果出现问题并且似乎无法解决,我建议你卸载并重新安装Xcode,这可以解决很多问题。试试吧 :) - LinusGeffarth
我在运行Objective-C项目时没有问题。只有Swift代码无法运行,因为它没有得到正确签名。我尝试过默认的“创建新项目”功能,并且我没有运行除了“Hello World”之外的任何东西。它在模拟器上完美运行。抄送:@Wouter - Aryan R
@LinusG。我已经卸载了Xcode,并安装了至少2个不同版本。我也多次删除了XCode文件、缓存和派生数据。 - Aryan R
4个回答

1

我最终找到了答案。我需要在钥匙串管理器中删除所有证书链。


0

就我所知,我没有详细的理由支持我的解决方案,只有一个理论。

我也曾经处于你的情况,尝试了一个又一个失败的解决方案,只是不断地在循环中奔跑,希望苹果的一个神奇更新能够解决这个问题。我已经经历了吊销证书、重新安装Xcode、将嵌入式内容包含Swift代码设置为“是”,并确保我的运行路径具有
@executable_path/Frameworks。

我经常遇到的一个问题是与苹果增加文件访问安全性有关的问题。当与计算机关联的多个配置文件时,这似乎是一个更大的问题。

我知道忽略错误消息中的大量术语很容易,但是当实际找到文件时,以下错误提示引起了我的注意:

mmap() error

我认为发生的情况是在尝试重新映射libswiftCore.dylib时,“原因:未找到合适的映像。找到了:”从预期文件到实际文件位置的映射正在执行一个未正确处理的文件权限限制,从而导致应用程序崩溃。
我做了什么?强制对所有与iOS开发相关的证书进行身份验证。这个操作是进入我的钥匙串访问并单击证书私钥,强制我的访问控制“在允许访问之前确认”,并将我的证书信任级别设置为系统默认值。这样做的结果是,我的项目构建要求我进行50-60次身份验证,但这比花费数小时进行调试要少得多。
这就是为什么我说我的解决方案没有具体详细的答案,因为我基本上使用了一个通用方法。由于我最近才采用这种解决方案,因此我还没有进行任何其他测试来确定具体是什么导致了错误,或者将访问控制从Xcode更改回允许是否会在今后起作用。
这就是对我有效的方法,根据您的描述,我相信这对您也有效。

0

是的,我已经做了那个答案中提到的一切。 - Aryan R
当你有用Objective-C编写的代码时,可以在设备上运行应用程序,但不能使用Swift?当您在“设备”窗口中查看设备时,它是否正常显示?此外,您能否创建存档文件?请查看以下链接:https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/LaunchingYourApponDevices/LaunchingYourApponDevices.html#//apple_ref/doc/uid/TP40012582-CH27-SW1 - Bryan Cimo
是的,我可以制作一个归档文件。设备窗口显示我的设备。 - Aryan R

0

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

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

  1. https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
  2. 双击安装到钥匙串中。然后在钥匙串中,选择查看->"显示过期证书"。
  3. 它会列出所有过期的证书。从"登录"选项卡中删除"苹果全球开发者关系认证机构证书"。
  4. 也要从"系统"选项卡中删除它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接