dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON
dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON
我一直在使用模拟器来测试我的应用程序。今天我决定在模拟器中使用其他设备进行测试,令我惊讶的是它在一些设备上启动时会崩溃,而在其他设备上则完全正常。
我的应用程序可以在以下设备上构建和运行:
- iPad Air
- 可调整大小的iPad
- iPhone 5S
- iPhone 6
- iPhone 6plus
- 可调整大小的iPhone
我的应用程序在以下设备上崩溃:
- iPad 2
- iPad Retina
- iPhone 4S
- iPhone 5
我遇到的错误是:
dyld:未加载库:@rpath/SwiftyJSON.framework/SwiftyJSON
引用自:/Users/data/Library/Developer/CoreSimulator/Devices/2ACCFF1F-D35F-444A-B709-2A41AC9CC7D2/data/Containers/Bundle/Application/DA7480F6-4032-4EB5-A51F-5D028088FFE1/Demo Mobile.app/Demo Mobile 原因:未找到合适的图像。 (lldb)
有时我甚至会得到更多信息:
引用自:/Users/data/Library/Developer/CoreSimulator/Devices/2ACCFF1F-D35F-444A-B709-2A41AC9CC7D2/data/Containers/Bundle/Application/DA7480F6-4032-4EB5-A51F-5D028088FFE1/Demo Mobile.app/Demo Mobile
原因:未找到合适的图像。发现:
/Users/data/Library/Developer/CoreSimulator/Devices/2ACCFF1F-D35F-444A-B709-2A41AC9CC7D2/data/Containers/Bundle/Application/DA7480F6-4032-4EB5-A51F-5D028088FFE1/Demo Mobile.app/Frameworks/SwiftyJSON.framework/SwiftyJSON:mach-o,但架构错误
/Users/data/Library/Developer/CoreSimulator/Devices/2ACCFF1F-D35F-444A-B709-2A41AC9CC7D2/data/Containers/Bundle/Application/DA7480F6-4032-4EB5-A51F-5D028088FFE1/Demo Mobile.app/Frameworks/SwiftyJSON.framework/SwiftyJSON:mach-o,但架构错误
/Users/data/Library/Developer/CoreSimulator/Devices/2ACCFF1F-D35F-444A-B709-2A41AC9CC7D2/data/Containers/Bundle/Application/DA7480F6-4032-4EB5-A51F-5D028088FFE1/Demo Mobile.app/Frameworks/SwiftyJSON.framework/SwiftyJSON:mach-o,但架构错误
(lldb)
我通过Cocoapods安装了SwiftyJson。我的Podfile包含:
platform :ios, '8.0' use_frameworks! pod 'SQLite.swift', git: 'https://github.com/stephencelis/SQLite.swift.git' target 'thinx Mobile' do pod 'SwiftyJSON', '~> 2.2.1' end
我尝试过:
- 清理和重新构建
- 从dyld:未加载库:@rpath/libswift_stdlib_core.dylib的解决方案1、2、3
(dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON)这个问题的出现的原因是在使用Xcode 8.0(Swift 3.0)和SwiftyJSON 3.1.3时,发生了一些错误。在Stack Overflow上的一个帖子(iOS app with framework crashed on device, dyld: Library not loaded, Xcode 6 Beta)中提到了解决这个问题的方法,而且这个方法也适用于这种类型的错误。
一个可能的解决方法是检查项目的Build Phases设置。在这个设置中,我们需要确保SwiftyJSON.framework已经被正确添加到项目中,并且已经设置了正确的路径(@rpath/SwiftyJSON.framework/SwiftyJSON)。如果路径设置不正确,我们需要将其更正为正确的路径。
另一个可能的解决方法是检查项目中的链接器设置。在这个设置中,我们需要确保引用的库文件已经正确链接到项目中。如果SwiftyJSON.framework未正确链接到项目中,我们需要手动添加它。
此外,我们还可以尝试在项目中重新导入SwiftyJSON.framework。在这个过程中,我们需要确保选择了正确的版本,并且将其正确地导入到项目中。
当出现(dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON)这个错误时,我们可以通过检查Build Phases设置、链接器设置和重新导入SwiftyJSON.framework来解决这个问题。这些方法适用于Xcode 8.0(Swift 3.0)和SwiftyJSON 3.1.3,也可以作为一般性的解决方案来解决类似的错误。
文章标题:解决dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON问题
在经过一整天的搜索之后,我决定重新构建项目(新建项目、新的podfile、新的文件,但是在每个文件中复制粘贴原始项目的源代码)。现在应用程序可以编译并且在每个模拟器上完美运行,没有任何错误。
然而,在实际设备上仍然遇到了一个类似的错误(但原因不同)。我关闭了这个问题,但对于这个问题还有一个后续问题:dyld: Library not loaded: /SwiftyJSON.framework/SwiftyJSON。
根据这段描述,我们可以得出以下结论:
问题原因:在实际设备上,出现了dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON错误。这个错误的原因是找不到SwiftyJSON.framework/SwiftyJSON库。
解决方法:重新构建项目,并确保SwiftyJSON.framework/SwiftyJSON库正确链接。
代码示例:
1. 新建一个新项目
2. 更新或安装CocoaPods(如果需要)
3. 在新项目的根目录下创建一个新的podfile,并添加以下内容:
platform :ios, '9.0'
use_frameworks!
target 'YourProjectName' do
pod 'SwiftyJSON'
end
4. 保存并关闭podfile
5. 打开终端,并导航到新项目的根目录
6. 运行命令:pod install
7. 重新打开新项目的.xcworkspace文件
8. 在需要使用SwiftyJSON的文件中,导入SwiftyJSON库:
import SwiftyJSON
9. 在需要使用SwiftyJSON的地方使用它,确保没有错误
10. 编译并运行新项目,确保没有dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON错误出现
通过按照上述步骤重新构建项目,并确保正确链接SwiftyJSON库,你应该能够解决dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON错误。