我正在尝试在iPhone 4s上运行Swift应用程序。它在模拟器上工作正常,我的朋友可以在他的iPhone 4s上成功运行它。我有iOS 8和Xcode 6的正式版本。
我试过了
$(inherited) @executable_path/Frameworks
以下是完整错误
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
答案 0 :(得分:529)
对我来说,以前的解决方案都没有奏效。我们发现有一个"始终嵌入Swift标准库"构建设置中的标志需要设置为YES。默认情况下是NO!
Build Settings > Always Embed Swift Standard Libraries
设置完成后,在重新构建之前清理项目。
For keen readers some explanation 最重要的部分是:
在您的应用中将嵌入式内容包含Swift代码(EMBEDDED_CONTENT_CONTAINS_SWIFT)构建设置设置为YES,如图2所示。此构建设置指定目标产品是否嵌入了带Swift代码的内容,告诉Xcode当设置为YES时,在应用程序中嵌入Swift标准库。
该旗帜以前称为Embedded Content Contains Swift Code
答案 1 :(得分:130)
令人惊讶的是,我所做的只是" Clean"我的项目(shift + cmd + K)并且有效。似乎与证书有关。
答案 2 :(得分:95)
我删除后开始收到此错误:
@executable_path/Frameworks
来自我的构建设置中的Runpath Search Paths
。更换它会再次修复所有内容(谢谢源代码控制!)
我不知道它是如何实现的,但是二进制文件似乎需要找到它的嵌入式Swift运行时。
答案 3 :(得分:59)
答案 4 :(得分:56)
在Xcode 8中,var box1 = document.querySelector('.nav');
var startx = 0;
var starty = 0;
var dist = 0;
var endx=0;
var endy=0;
box1.addEventListener('touchstart', function(e){
var touchobj = e.changedTouches[0];
startx = parseInt(touchobj.clientX);
选项的选项不再可用。
它已重命名为box1.addEventListener('touchmove', function(e){
e.preventDefault();
var touchobj = e.changedTouches[0];
endx = parseInt(touchobj.clientX);
endy = parseInt(touchobj.clientY);
let dist = endy - starty;
window.scrollBy(0, dist);
}, false);
box1.addEventListener('touchend', function(e){
var touchobj = e.changedTouches[0];
endx = parseInt(touchobj.clientX);
endy = parseInt(touchobj.clientY);
}, false);
答案 5 :(得分:27)
我认为直接从Xcode生成证书时会出现错误。要解决(至少在Xcode 6.1 / 6A1052d中):
答案 6 :(得分:25)
好的,在这里分享此错误的另一个原因。我花了几个小时来解决这个问题。
在我的情况下,我的证书在Keychain Access中的信任政策是始终信任,将其更改回默认值解决了问题。
要打开证书设置窗口,请双击证书的Keychain Access列表中的证书。
答案 7 :(得分:22)
我遇到了运行Swift测试的问题(但不是我的应用)。事实证明,测试需要在测试目标的@executable_path/Frameworks
构建设置中超过Runpath Search Paths
。将Runpath搜索路径设置为以下内容对我来说很有魅力:
$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks
答案 8 :(得分:17)
您必须将Runpath Search Paths
设置为@executable_path/Frameworks
,如以下构建设置屏幕截图所示:
如果你有任何在Swift中构建的嵌入式框架,那么你可以设置为YES
构建选项Embedded Content Contains Swift Code
。
答案 9 :(得分:16)
我认为Apple已在Swift app crashes when trying to reference Swift library libswiftCore.dylib
下对其进行了总结引自技术Q& A QA1886 :
Swift应用程序在尝试引用Swift库时崩溃了 libswiftCore.dylib。
问:关于我的libswiftCore.dylib加载错误,我该怎么办? 当我尝试运行我的Swift语言应用程序时发生的设备控制台?
答:要解决此问题,您需要使用代码对应用进行签名 签署证书时,主题组织单位(OU)设置为 你的团队ID。所有企业和标准iOS开发人员证书 在iOS 8发布后创建的具有新的Team ID字段 在适当的地方允许Swift语言应用程序运行。
通常此错误会显示在设备的控制台日志中,并显示一条消息 类似于以下之一:
[....] [deny-mmap] mapped file has no team identifier and is not a platform binary:
/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之前的证书中,您需要构建另一个存档。
重要提示:如果您需要撤销并设置新的,请谨慎使用 企业分发证书。如果您是内部企业 开发人员,你需要小心,你不要撤销 用于签署任何一个应用程序的分发证书 企业员工仍在使用任何已签名的应用程序 企业分发证书将停止工作 立即。以上仅适用于企业分发 证书。开发证书可以安全撤销 企业/标准iOS开发人员。
作为AirSign的人state,问题源于内部证书的主题字段中缺少的 OU 属性>
主题:UID = 269J2W3P2L,CN = iPhone发行:公司名称, OU = 269J2W3P2L ,O =公司名称,C = FR
答案 10 :(得分:10)
答案 11 :(得分:7)
移动到新Mac后我遇到了同样的问题,几小时后,在问题中尝试了所有建议的答案,这些都不适用于我。
我的解决方案是安装此缺失的证书。 http://developer.apple.com/certificationauthority/AppleWWDRCA.cer
答案 12 :(得分:6)
从以下位置更改目标的复制窗格资源:
"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"
为:
"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"
答案 13 :(得分:6)
此问题在 Xcode 10.2 中再次发生。您必须从Apple下载并安装以下软件包。它为命令行工具提供 Swift 5运行时支持。
答案 14 :(得分:6)
最简单,最容易忽略的方法:清理并重建。
在尝试了以上答案后,此问题得以解决,但没有成功。
答案 15 :(得分:6)
我通过删除派生数据来解决,这次它正常工作。尝试使用 Xcode 7.3.1GM
答案 16 :(得分:6)
当升级Xcode(以及随后的Swift的新版本)时,也会导致此错误消息,并且您的项目使用使用旧版/早期版本的Swift构建/编译的框架。
在这种情况下,重建框架并重新添加它将解决问题。
答案 17 :(得分:5)
在尝试了所有内容后,我终于发现,构建似乎并不总是一次又一次地包含每个细节。也许是为了加快这个过程...... 为了在设备上运行之前确保整个包装,首先进行清洁:Shift-Cmd-K。 然后使用:Cmd-B构建。 之后,在您的设备上运行它。 简单。 亲切的问候你在那个地方的所有好人!
答案 18 :(得分:4)
这些解决方案都不适合我。重启手机修好了。奇怪但它有效。
答案 19 :(得分:4)
答案 20 :(得分:4)
就我而言,这只是我目标的名称:
我将其重命名为: MyApp.something 并出现了同样的问题。 但是我在构建设置窗口中看到,我的产品模块名称已经更改为 MyApp-something 。 所以,我删除了目标名称中的点( MyAppSomething ),问题就消失了。
答案 21 :(得分:3)
这些解决方案似乎都不起作用,但当我将全球开发人员证书的许可更改为Use System defaults
时,它就起作用了。我已在下面的链接中包含了步骤和屏幕截图
我建议你在苹果错误报告中记录这张票,因为苹果真的应该解决这个大错误: https://stackoverflow.com/a/41401354/559760
答案 22 :(得分:2)
Xcode 7.2,iOS 9.2在一台设备上,9.0在另一台设备上。两者都有错误。不知道是什么改变了它,但上面的WWDR解决方案对我来说是正确的。安装该证书并解决问题。
https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846
答案 23 :(得分:2)
那里有很多答案,但可能我的答案会帮助一些人。
我有同样的问题,我的应用程序在模拟器上工作正常,但在设备上崩溃,因为我推出应用程序,并给出如上所述的错误。我已经尝试了所有答案和解决方案。在我的案例中,我的项目我有多个目标。我已经从目标A创建了重复的目标B.目标B在目标A崩溃时正常工作。我为每个目标使用不同的Image资源。搜索并做谷歌后,我找到了一些可能对某人有帮助的东西。
当我更改两个应用的启动图像资源名称时,应用停止崩溃。例如,目标A启动图像资产名称LaunchImage A.目标B午餐图像资产名称LaunchImage B并在每个目标的“常规”选项卡中正确分配。我的应用程序运行正常。
答案 24 :(得分:2)
我们有一个统一的项目,可以创建一个xcode项目,其中包括使用swift的库。
我们在此线程上尝试了所有合理的建议。
没有任何效果。代码可以在新设备上正常运行,并在iOS <= 12
上崩溃看来swift非常聪明,即使将其设置为“ ALWAYS_EMBED_SWIFT_LIBRAIES” =“ YES”,它也不包含swift库。
实际上为我们解决了这个问题的是在项目中包含一个虚拟swift文件。 该文件必须包含对调度基础库的调用。
显然,这暗示了强大的xcode会强制包含库,但这一次是真实的。
这是我们添加的使其工作的虚拟文件:
import Dispatch
import Foundation
class ForceSwiftInclusion {
init() {
// Force dispatch library.
DispatchQueue.main.async {
print("something")
}
// Force foundation library.
let uuid = UUID().uuidString
print("\(uuid)")
}
}
为了统一起见,还请在创建xcode项目的后期处理中添加project.AddBuildProperty(target, "SWIFT_VERSION", "Swift 5");
。
答案 25 :(得分:2)
对于我来说,构建一个依赖于第三方Swift库(例如SQLite)的MacOS命令行Swift应用程序似乎都不起作用。起作用的是直接在“构建设置”中将以下路径添加到我的“运行路径搜索路径”中:
/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx /
这样做确实在运行时发出警告,说Xcode找到了2个版本的libswiftCore-这很有意义。除了不包括该行,导致Xcode找不到任何版本的libswiftCore。
无论如何,即使它看起来不正确,它也将为我服务-我的应用只是我不打算分发的实用程序,至少现在可以运行!
答案 26 :(得分:1)
我在Xcode 8.3.2上。对我来说,问题是AppleWWDRCA证书是在系统和登录密钥链中。删除了两个,然后添加到登录钥匙串,现在它再次运行正常。失去2天
答案 27 :(得分:1)
我正在使用Xcode 8.3.3和Xcode 9.2。我的解决方案是使用Xcode Select:
将我的默认Xcode从8切换到9$ xcode-select --print-path
$ sudo xcode-select -switch /Applications/Xcode-9.2.app
编辑:实际上似乎有用的是Xcode 9.2使用了来自Xcode 8.3.3的派生数据。不是解决方案,但至少它可以让我继续我的工作。
答案 28 :(得分:1)
我开始在测试使用AWS服务添加S3文件时遇到类似的错误。以下是错误。 dyld:未加载库:@ rpath / AWSAutoScaling.framework / AWSAutoScaling
我搜索了很多,以上解决方案对我也没有帮助。以下链接帮助我解决了这个问题。
https://forums.developer.apple.com/thread/21292
通过重新下载WWDR (Apple Worldwide Developer Relations Certification Authority)来解决此问题。
答案 29 :(得分:1)
如果您遇到这样的错误:
无法加载捆绑包“ YourFrameworkTests”,因为 损坏或缺少必要的资源。尝试重新安装捆绑软件。 (dlopen_preflight(/ some / path /.../ YourFrameworkTests.xctest / YourFrameworkTests): 库未加载:@ rpath / SomeOther.framework / SomeOther引用 来自:/ some / path /...)
并在框架中使用 CocoaPods ,然后尝试编辑Podfile
并从inherit! :search_paths
目标中删除Test
,然后运行pod install
再次。
有关更多详细信息,请参见https://github.com/CocoaPods/CocoaPods/issues/8868。
答案 30 :(得分:1)
我同时安装了多个版本的Xcode。该框架是使用较新版本的Xcode构建的。我尝试编译的应用程序是旧版本的Xcode。当我使用相同版本的Xcode清理和编译框架和应用程序时,事情就有效了。
答案 31 :(得分:0)
我测试了所有上述解决方案,但没有解决任何问题。 我正在使用Xcode 10.2和macOS 10.14.3。 首先,我为命令行工具安装了swift 5运行时支持,但未做任何更改 第二我将操作系统更新为10.14.4,没有任何改变 第三,我将Xcode更新为11.2.1,并解决了问题(不要使用Xcode 11.2,它有存档问题并已弃用)
答案 32 :(得分:0)
当我试图在私有Pod上运行单元测试时遇到了这个问题。
我做了所有人都建议的一切。没事。
我要做的就是在不同的模拟器上运行单元测试。
我没有尝试重置模拟器的内容和设置,也许效果不错¯_(ツ)_ /¯
答案 33 :(得分:0)
两年后遇到了同样的问题。我认为this post解释了我的原因(但可能不是这个问题的原因)。使用订阅的开发者帐户或静态库可能会有所帮助。就像删除use_frameworks!
中的Podfile
一样。
答案 34 :(得分:0)
就我而言,这是早期版本iOS13的错误。
https://forums.developer.apple.com/thread/128435
坎巴拉
2020年3月25日上午12:41
仅供参考,此问题已在13.4版中修复
答案 35 :(得分:0)
在Xcode 11中对我有用的是转到General-> Frameworks,Libraries和Embedded Content,然后将所讨论的框架的“ Embed”选项更改为“ Embed&Sign”
答案 36 :(得分:0)
我遇到了同样的问题
那里有很多答案,但我的答案可能会对某些人有所帮助。
// MARK: - 核心数据栈
lazy var persistentContainer: NSPersistentContainer = {
/*
The persistent container for the application. This implementation
creates and returns a container, having loaded the store for the
application to it. This property is optional since there are legitimate
error conditions that could cause the creation of the store to fail.
*/
let mom = NSManagedObjectModel.mergedModel(from: [Bundle(for: Self.self)])!
let container = NSPersistentContainer(name: "Test", managedObjectModel: mom)
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
// Replace this implementation with code to handle the error appropriately.
// fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
/*
Typical reasons for an error here include:
* The parent directory does not exist, cannot be created, or disallows writing.
* The persistent store is not accessible, due to permissions or data protection when the device is locked.
* The device is out of space.
* The store could not be migrated to the current model version.
Check the error message to determine what the actual problem was.
*/
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
答案 37 :(得分:0)
我有同样的问题,问题是这样的:
dyld: Library not loaded: @rpath/Result.framework/Result Referenced from: /private/var/mobile/Containers/Bundle/Application/74AD1FE2-7095-47D2-B059-520863050EE2/ReactiveCocoaTest.app/Frameworks/ReactiveCocoa.framework/ReactiveCocoa Reason: image not found
我的解决方案如下:
在TARGET
- &gt; Build Setting
- &gt; Other Linker Flag
- &gt;删除ReactiveCocoa
框架。如果是xxx.framework
,您应该删除xxx
。
删除ReactiveCocoa
答案 38 :(得分:0)
简而言之,您是否尝试过“启用Bitcode = NO”。这个对我有用。
就我而言,我的项目是用Object-C编写的,包括一个用swift编写的第三方框架。我可以在开发人员模式下在模拟器和真实设备上运行我的APP。但是,一旦我使用Ad-hoc配置文件获得APP并在真实设备上安装了这个ipa OTA,它就崩溃了。甚至没有提到上传到商店。希望这些信息可以提供帮助。
答案 39 :(得分:0)
如果你的项目有cocoapods和不同的方案,请尝试运行pod update,为我修复它。
答案 40 :(得分:0)
从https://github.com/CocoaPods/cocoapods-integration-specs/pull/24/files的帖子中,这意味着swift.dylib需要签名但失败了。我甚至无法通过cocoapod支持创建一个新的快速项目。
答案 41 :(得分:0)
就我而言,我的一个测试目标是工作但另一个不是。这是错误的库或其他什么给出上述错误。我比较了两个测试目标的设置,发现其中一个缺少“测试主机”的配置,所以我从工作测试目标中复制了它,并修复了我破坏的测试目标!
答案 42 :(得分:0)
当Xcode要求您重置证书时,您重置。该应用程序可以在实际设备上运行而不会因错误消息而崩溃。一旦这个问题在一个快速项目中得到解决。其他有这个问题的快速项目也是固定的。
我在这些问题上花费了大约半天时间,我发现在配置门户网站中一次又一次地重置证书并没有帮助。
答案 43 :(得分:0)
就我而言,
我已设置@executable_path/Frameworks
但我还必须设置“框架搜索路径”
$(PROJECT_DIR)/Frameworks
更改为recursive
哪个适合我。
答案 44 :(得分:0)
我正在使用Xcode 7.2。如果您尝试了上述所有操作并且仍然出现错误,请尝试从Keychain Access中删除旧证书!终于解决这个问题真是太痛苦了。
答案 45 :(得分:0)
以上解决方案对我不起作用。 我通过以下步骤解决了这个问题:
答案 46 :(得分:0)
要添加到企业分发证书解决方案:您可以打开钥匙串并检查证书。如果有任何红色文字说信任链无法验证或被撤销,它将无效!在我的计算机上,即使Web门户网站显示它仍然有效,我们的分发证书也显示为已撤销。我们获得了一个新的分发证书,它在Keychain中是绿色的(有效的),这解决了这个问题。
答案 47 :(得分:-1)
答案 48 :(得分:-1)
按照这些步骤为我工作:
搜索Runpath Search Paths
将其值更改为$(继承)标志(删除@ executable_path / Frameworks)。
答案 49 :(得分:-1)