use*_*185 393 xcode dyld ios swift
我想在我的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
Run Code Online (Sandbox Code Playgroud)
小智 540
对我来说,以前的解决方案都没有奏效.我们发现Build Settings中有一个"Always Embed Swift Standard Libraries"标志,需要设置为YES.默认是NO!
Build Settings > Always Embed Swift Standard Libraries
设置完成后,在再次构建之前清理项目.
对于敏锐的读者一些解释 最重要的部分是:
在您的应用程序中将嵌入式内容包含Swift代码(EMBEDDED_CONTENT_CONTAINS_SWIFT)构建设置设置为YES,如图2所示.此构建设置指定目标产品是否嵌入了带Swift代码的内容,告诉Xcode在您的应用程序中嵌入Swift标准库设置为YES时.

国旗原先被称为 Embedded Content Contains Swift Code
roy*_*rma 135
令人惊讶的是,我所做的只是"清理"我的项目(shift + cmd + K)并且它有效.似乎与证书有关.
jem*_*ons 95
我删除后开始收到此错误:
@executable_path/Frameworks
Run Code Online (Sandbox Code Playgroud)
来自Runpath Search Paths我的构建设置.更换它会再次修复所有内容(谢谢源代码控制!)
我不知道它是如何实现的,但似乎二进制文件需要找到它的嵌入式Swift运行时.
Hle*_*kyi 69
这里是 Xcode 13(13.1 带有 React-Native)。
创建了一个干净的react-native项目并将其视为Runpath Search Paths/usr/lib/swift中的条目 。
添加后,我的项目终于运行了,没有崩溃!
之前的建议没有任何帮助。
Mus*_*afa 61
对于设备,还需要将动态框架添加到项目选项卡中的Embedded binaries部分General.

Bon*_*nie 61
在Xcode 8中,选项Embedded Content Contains Swift Code选项不再可用.
它已被重命名为 "Always Embed Swift Standard Libraries = YES"
小智 27
我认为直接从Xcode生成证书是一个错误.要解决(至少在Xcode 6.1/6A1052d中):
nal*_*exn 25
好的,在这里分享这个错误的另一个原因.我花了几个小时来解决这个问题.
在我的情况下,我的证书在Keychain Access中的信任策略是Always Trust,将其更改回默认值解决了问题.
要打开证书设置窗口,请双击证书的Keychain Access列表中的证书.

Don*_*Lea 23
运行我的Swift测试时遇到了这个问题(但不是我的应用程序).事实证明,测试需要具有超过测试目标@executable_path/Frameworks的Runpath Search Paths构建设置.将Runpath搜索路径设置为以下内容对我来说很有魅力:
$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks
Run Code Online (Sandbox Code Playgroud)
Jim*_*ray 20
Xcode 10.2中再次发生此问题。您必须从Apple下载并安装以下软件包。它为命令行工具提供了Swift 5运行时支持。
https://support.apple.com/kb/DL1998?locale=zh_CN
lor*_*isi 17
你必须设置Runpath Search Paths以@executable_path/Frameworks作为显示在生成设置的下面的截图:
如果你有任何在Swift中YES构建的嵌入式框架,那么你可以设置为Build Options Embedded Content Contains Swift Code.
fla*_*nka 16
我想Apple 在尝试引用Swift库libswiftCore.dylib时已经在Swift app崩溃下进行了总结
引自QA1886技术问答:
尝试引用Swift库libswiftCore.dylib时,Swift应用程序崩溃.
问:在我尝试运行Swift语言应用程序时,我的设备控制台中的libswiftCore.dylib加载错误怎么办?
答:要解决此问题,您需要使用代码签名证书对您的应用进行签名,并将主题组织单位(OU)设置为您的团队ID.发布iOS 8之后创建的所有Enterprise和标准iOS开发人员证书都在适当的位置使用新的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
Run Code Online (Sandbox Code Playgroud)
在构建存档和打包应用程序时需要新证书.即使您拥有其中一个新证书,只需重新签署现有的swift应用程序存档也行不通.如果它是使用iOS 8之前的证书构建的,则需要构建另一个存档.
重要提示:如果您需要撤消并设置新的企业分发证书,请谨慎使用.如果您是内部企业开发人员,则需要注意不要撤销用于签署应用程序的分发证书,任何一个企业员工仍然使用该证书作为使用该企业分发证书签名的任何应用程序将立即停止工作.以上仅适用于企业分发证书.对于企业/标准iOS开发人员,可以安全地撤销开发证书.
由于AirSign球员状态从丢失的问题根源OU中的属性主题的现场内务证书.
主题:UID = 269J2W3P2L,CN = iPhone发行:公司名称,OU = 269J2W3P2L,O =公司名称,C = FR
移动到新的Mac后我遇到了同样的问题,几小时后,在问题中尝试了所有建议的答案,这些都不适合我.
我的解决方案是安装这个缺失的证书. http://developer.apple.com/certificationauthority/AppleWWDRCA.cer
在这里找到答案. /sf/answers/1014657031/
当我创建发布版本时,Xcode 13+ 也遇到了同样的问题。不得不浪费我的时间来解决这个问题。最后我能够通过以下步骤解决该问题。
我在构建设置 -> 链接的运行路径搜索路径中添加了一个新的发布条目。
/usr/lib/swift
添加后,我可以运行我的应用程序而不会崩溃!
从以下位置更改目标的复制窗格资源:
"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"
Run Code Online (Sandbox Code Playgroud)
至:
"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"
Run Code Online (Sandbox Code Playgroud)
升级Xcode(并随后升级到Swift的新版本)并且您的项目使用使用旧版/旧版Swift构建/编译的框架时,也可能导致此错误消息。
在这种情况下,重新构建框架并重新添加框架将解决此问题。
我们有一个 unity 项目,它创建一个 xcode 项目,其中包含使用 swift 的库。
我们尝试了该线程上的每一个合理建议。
什么都没起作用。代码在新设备上运行良好,在 iOS<=12 上崩溃
看来 swift 是如此聪明,即使你将其设置为“ALWAYS_EMBED_SWIFT_LIBRAIES”=“YES”,它也不包含 swift 库。
真正为我们解决问题的是在项目中包含一个虚拟的 swift 文件。该文件必须包含对调度、基础库的调用。
显然,这暗示 mighty-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)")
}
}
Run Code Online (Sandbox Code Playgroud)
为了统一,还要添加project.AddBuildProperty(target, "SWIFT_VERSION", "Swift 5");到创建 xcode 项目的后处理中。
小智 5
在尝试了所有内容之后,我终于发现,构建似乎并不总是一次又一次地包含每个细节.也许是为了加快这个过程...为了确保在设备上运行之前的整个包装,先做一个Clean:Shift-Cmd-K.然后使用:Cmd-B构建.之后,在您的设备上运行它.简单.亲切的问候你们在那个地方的所有好人!
| 归档时间: |
|
| 查看次数: |
187354 次 |
| 最近记录: |