我正在试着在我的iPhone 4s上运行Swift应用程序。它在模拟器上运行良好,我的朋友也可以在他的iPhone 4s上成功运行。我有iOS 8和官方发布的Xcode 6。

我试过了

重启Xcode, iPhone,电脑 清洁和重建 撤销并创建新的证书/供应配置文件 运行路径搜索路径是$(inherited) @executable_path/Frameworks 包含Swift代码的嵌入内容是“是” 代码签名身份是开发人员

下面是完整的错误

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

当前回答

简单地说,你有没有试着检查“启用Bitcode=NO”。这对我很管用。

以我为例,我的项目是用Object-C编写的,包括一个用swift编写的第三方框架。我可以在模拟器和真实设备上以开发者模式运行我的应用程序。然而,一旦我实现了Ad-hoc provision profile的APP,并在真实设备上安装了这个ipa OTA,它就崩溃了。更不用说上传到存储了。希望这些信息能有所帮助。

其他回答

如果你得到一个这样的错误:

“YourFrameworkTests”包无法加载,因为它已经加载了 损坏或缺少必要的资源。尝试重新安装bundle。 (dlopen_preflight(/一些/道路/…/ YourFrameworkTests.xctest / YourFrameworkTests): 库未加载:@rpath/SomeOther.framework/SomeOther引用 来自:/一些/道路/…)

并在框架中使用CocoaPods,然后尝试编辑Podfile并删除继承!:search_paths从Test目标,并再次运行pod install。

详情请见https://github.com/CocoaPods/CocoaPods/issues/8868。

要添加到企业分发证书解决方案:您可以打开Keychain并检查证书,如果有任何红色文本表示信任链无法验证或正在撤销,那么它将不起作用!在我的电脑上,我们的分发证书显示为已撤销,尽管门户网站显示它仍然有效。我们获得了一个新的分发证书,在Keychain中是绿色的(有效的),这解决了这个问题。

我认为直接从Xcode生成证书是一个错误。要解析(至少在Xcode 6.1 / 6A1052d中):

go to the Apple Developer website where certificates are managed: https://developer.apple.com/account/ios/certificate/certificateList.action select your certificate(s) (which should show "Managed by Xcode" under "Status") and "Revoke" it follow instructions here to manually generate a new certificate: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW32 go to Xcode > Preferences > Accounts > [your Apple ID] > double-click your team name > hit refresh button to update certificates and provisioning profiles

我在Xcode 13和iOS 12手机中也得到了完全相同的错误。

这里我的项目部署信息是12.0,但我的框架部署信息在iOS 15.0。

我已经将我的框架部署信息更改为12.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
        }()