ios dyld:未加载库:@rpath/libswiftCore.dylib仅适用于Xcode 9

dgsult0t  于 2022-11-19  发布在  iOS
关注(0)|答案(8)|浏览(305)

我最近从8.3.3升级到了Xcode 9。
我们的项目是用Objective-C编写的,我们使用的所有其他框架也是如此。我添加了一个用Swift(版本3.0)编写的框架。在Xcode 8中,我可以在模拟器和设备上毫无问题地构建和运行项目。在Xcode 9中,我无法在模拟器或设备上运行项目,原因是错误:

dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: .../libraryname
Reason: image not found

降级后,我能够再次运行该项目。
我的配置有:

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
STRIP_SWIFT_SYMBOLS = NO;
SWIFT_VERSION = 3.0;
rn0zuynd

rn0zuynd1#

在与这个错误斗争了几个小时并尝试了各种解决方案后,我的解决方案与这里的其他解决方案不同,所以我将它添加给可能受益的其他人。
我已尝试:-始终嵌入SWIFT标准库=是- LD运行路径搜索路径= $(继承的)@可执行文件路径/框架
没有运气。原来这个问题是更基本的。我的项目有多个构建目标,不知何故,主机应用程序的设置被取消了。x1c 0d1x

vql8enpb

vql8enpb2#

Swift框架必须使用与您的项目相同的Swift版本构建(在本例中,Swift 4是继承的,因为您升级并通过Xcode 9运行)。
使用新版本重新构建和重新添加/替换框架,它应该可以工作。

dw1jzc5e

dw1jzc5e3#

您是否使用Carthage并且在您的机器上有多个XCode_s?我最近遇到了一个问题,当我在命令行中选择xcode8.3.3时运行carthage update --use-ssh --platform iOS。然后将构建的框架包含到构建中。
要使它在XCode9中工作,您需要对www.example.com运行switch命令sudo xcode-select --switch /Applications/Xcode.app/Contents/DeveloperXcode.app,然后再次运行carthage。
希望能有所帮助。

n8ghc7c1

n8ghc7c14#

有同样的问题。我使用Xcode 9.2,Swift 4和我的设备运行在iOS 11.1.
解决方法:
我删除了钥匙链访问中的苹果全球开发者关系证书颁发机构,并替换为一个新的(您可以下载certificate here
之后,我将“信任”(双击证书)从“始终信任”更改为“系统默认”。

kcugc4gi

kcugc4gi5#

尝试重新启动Xcode。我尝试了其他所有方法,这就是停止问题的原因。

gtlvzcf8

gtlvzcf86#

主要发生在您的凭证信任设定设为“永远信任”时。请将其变更为“系统预设值”,然后重新建立组建。这应该可以解决问题:https://egeek.me/2017/10/21/code-signing-blocked-mmap-on-ios-device/

nr7wwzry

nr7wwzry7#

我在Xcode 9.4.1上也遇到了同样的问题,但在任何帮助下都无法解决。我遇到的问题是,Xcode不断提示我使用钥匙串,但无法完成请求--尽管我提供了密码。应用程序成功构建并安装。但在设备上运行后立即崩溃。
我的问题是这样解决的。

  • 已删除证书和公钥/私钥对
  • 创建新证书(通过CSR)并将其安装在我的计算机上
  • 已将新证书链接到预置描述文件并在Xcode上安装了该描述文件
  • 已清除组建并删除装置上的现有组建
  • 万岁!!!

希望这对正在搜索地球的人有帮助!

z0qdvdin

z0qdvdin8#

只要干净和建立解决这个问题。测试在Xcode 9.2和Swift 4

相关问题