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

之前想做持续集成,然后在电脑上安装了Jenkins,一通操作踩了无数坑之后,持续集成没有搞好,后面在真机上运行工程的时候反而出现了报错。错误信息如下:

CodeSign /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app
cd /Users/me/Desktop/MyAppFolder1/MyAppFolder2/MyAppxcode
export CODESIGN_ALLOCATE=/Users/me/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Users/me/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Users/me/Downloads/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "iPhone Developer: My Name (**********)"
Provisioning Profile: "iOS Team Provisioning Profile: com.**********.*********"
                  (********-****-****-****-************)

/usr/bin/codesign --force --sign **************************************** --entitlements /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/IntermediateBuildFilesPath/MyApp.build/Release-iphoneos/MyApp.build/MyApp.app.xcent --timestamp=none /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app

/Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

还有这种错误:

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

然后真机运行的时候也不断的要求输入管理员账号密码,关键是一直要求输入,正确了也不能允许运行。

现在提供自己的解决方案:

1.修改证书私钥的访问控制权限

由于Jenkins的原因,我对钥匙串进行了一定的操作。我最终确认应该是这种操作导致了上述问题。

  1. 将 钥匙串 -> 登录 上的开发者证书拷贝到钥匙串 -> 系统 中。
  2. 然后在系统下选中证书,显示简介,信任选择始终信任。
  3. 再选中系统下开发者证书的私钥,显示简介后在访问控制中勾选“允许所有应用程序访问该项目”。
    4.重新运行Xcode。
dyld: Library not loaded: @rpath/libswiftCore.dylib错误_第1张图片
screenshot.png

但是在搜索解决办法的过程中,我发现了可能还有其他操作也会导致这样的问题,所以后面是一些其他原因导致的解决办法。

2.升级Xcode和系统

如果Xcode不是最新系统,而手机系统版本又比较高,升级Xcode吧。为了保险起见,系统也升级。这个很有用。

3.Stack Overflow上的解决方式

Stack Overflow上面有一个这个提问,里面回答非常多,可见不少人遇到了这样的问题。我先精简几个重要的解决办法:

  1. 清除缓存派
    这种方法主要是认为缓存原因造成的,解决方式包括:Xcode Clean、删除DerivedData(包括ModuleCache中的)、重新生成证书、Xcode重启、Mac重启、iPhone重启,保证完全的清零状态,然后解决。

  2. 修改设置参数派
    这种方法认为是参数的影响导致了问题。所以需要修改Build setting里面的参数。

    Embedded Content Contains Swift Code 设置成 "Always Embed Swift Standard Libraries = YES"

    Runpath Search Paths 设置成 $(inherited) @executable_path/Frameworks

Stack Overflow问题地址

你可能感兴趣的:(dyld: Library not loaded: @rpath/libswiftCore.dylib错误)