我认为Apple 在尝试引用Swift库libswiftCore.dylib时已经在Swift应用程序崩溃下对其进行了总结
被技术问答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
构建档案和打包应用程序时需要新证书。即使您拥有新证书之一,仅辞职现有的快速应用程序存档也将不起作用。如果它是使用iOS 8之前的证书构建的,则需要构建另一个存档。
重要提示:如果您需要吊销和设置新的Enterprise Distribution证书,请谨慎使用。如果您是内部企业开发人员,则需要注意不要撤销用于签署应用程序的发行证书,任何您的企业员工仍在使用通过该企业发行证书签名的任何应用程序将立即停止工作。以上仅适用于企业分发证书。对于企业/标准iOS开发人员而言,可以撤销开发证书。
正如AirSign专家指出的那样,问题源于内部证书的主题字段中缺少OU属性。
主题:UID = 269J2W3P2L,CN = iPhone发行:公司名称,OU = 269J2W3P2L,O =公司名称,C = FR
我拥有企业开发证书,创建了一个新的证书可以解决该问题。