XCode7添加自定义framework 比如加入swiftjson.framework框架后运行真机出现dyld: Library not loaded的解决方法

解决源文件依赖问题:加入swiftyjson.framework的双重攻略
本文重点介绍了解决源文件依赖问题的方法,特别是在使用swiftyjson框架时需要在两个地方添加该框架才能确保程序运行无误。通过实践案例展示,帮助开发者快速定位并解决依赖问题。

特别是由别人那里发过来的源文件,总是会出现依赖问题,

注意要在两个地方添加framework这样才会完美解决问题。

以下我截张图给大家,我不像别人那样说一半藏一半


两个地方都要加入swiftyjson.framework

在 iOS 应用启动时,如果遇到类似 `dyld: Library not loaded: @rpath/UnityFramework.framework/UnityFramework` 的错误,通常意味着动态链接器无法在运行时找到所需的框架。这在混合开发(如 Unity 与原生 iOS 或 Flutter 集成)中较为常见。以下是一些可能的解决方案: ### 1. 检查 Framework 的嵌入设置 确保 UnityFramework.framework 已正确嵌入到主应用目标中。可以在 Xcode 中执行以下操作: - 选择主应用目标 - 进入 **General** 标签页 - 在 **Frameworks, Libraries, and Embedded Content** 部分,确保 UnityFramework.framework 存在,并且其嵌入模式设置为 **Embed & Sign** ### 2. 验证 Framework 的路径和架构 UnityFramework.framework 的构建路径和架构必须与主应用一致。如果使用 CocoaPods 管理依赖,可以尝试在 `Podfile` 中添加以下代码来确保正确的嵌入: ```ruby post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['LD_RUNPATH_SEARCH_PATHS'] = ['$(inherited)', '@loader_path/Frameworks', '@executable_path/Frameworks'] end end end ``` ### 3. 检查 Framework 的签名 在某些情况下,签名不一致也会导致运行时加载失败。确保 UnityFramework.framework 和主应用使用相同的签名证书和预配文件。 ### 4. 使用 `install_name_tool` 修复路径 如果 UnityFramework.framework 的路径不正确,可以使用 `install_name_tool` 手动修改动态库的路径。例如: ```bash install_name_tool -change @rpath/UnityFramework.framework/UnityFramework @executable_path/Frameworks/UnityFramework.framework/UnityFramework YourAppBinary ``` ### 5. 检查 Build Settings 中的 Runpath Search Paths 确保主应用和 UnityFramework.framework 的 **Runpath Search Paths** 设置为 `@executable_path/Frameworks` 或 `@loader_path/Frameworks`,具体取决于嵌入方式。可以在 Xcode 的 **Build Settings** 中找到该选项。 ### 6. 清理并重新构建项目 有时,Xcode 缓存可能导致构建问题。可以尝试以下操作: - 删除 `DerivedData` 文件夹 - 清理项目并重新构建 ### 7. 更新 Unity 和 Xcode 版本 确保使用的 Unity 和 Xcode 版本兼容。某些旧版本的 Unity 可能在新版本的 Xcode 中出现兼容性问题。 ### 8. 检查 Unity 导出设置 在 Unity 中导出 Xcode 项目时,确保选择了正确的构建选项。例如: - 在 Unity 的 **Player Settings** 中,确保 **SDK Version** 设置为 **Release** 或 **Debug**,具体取决于构建目标 - 确保 **Build Settings** 中的 **Architecture** 设置为与主应用一致(如 arm64、x86_64) ### 9. 手动复制 Framework 如果 UnityFramework.framework 没有正确复制到主应用的 `Frameworks` 文件夹,可以尝试手动将其拖入 Xcode 的 `Frameworks` 组,并确保勾选了 **Copy items if needed**。 ### 10. 使用脚本自动化 Framework 嵌入 可以编写一个自定义脚本,在构建过程中自动将 UnityFramework.framework 复制到正确的位置。例如: ```bash #!/bin/bash UNITY_FRAMEWORK_PATH="../UnityFramework.framework" TARGET_FRAMEWORKS_DIR="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" cp -R "${UNITY_FRAMEWORK_PATH}" "${TARGET_FRAMEWORKS_DIR}" ``` 将该脚本添加Xcode 的 **Build Phases** 中的 **Run Script** 阶段。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值