iOS xcframework项目提示“ld: framework not found”

iOS xcframework项目提示"ld: framework not found"

问题描述

公司有一个项目,同时引用了.framework和.xcframework, 但是使用xcode编译的时候,

bash 复制代码
xcodebuild archive -project ${project_Name}.xcodeproj -target ${target_Name} -configuration ${build_model} -sdk iphoneos16.2 || exit -1

总是报一个srp的framework找不到,问题log如下:

ld: framework not found srp

clang: error: linker command failed with exit code 1 (use -v to see invocation)

日志中搜索关键字发现"-framework srp" 字样。

检查源代码配置,发现文件路径如下:

Lib/Coss/srp.xcframework/ios-arm64_armv7s/srp.framework

问题定位分析

1、 在网上查找了xcframework与framework的区别:

1.1. XCFramework 是一种相对较新的分发代码的方式,特别是用于跨平台开发或支持不同架构的应用程序。

1.2 XCFramework 可以包含多个 Framework,每个 Framework 都针对不同的架构(例如 iOS、macOS、arm64、x86_64 等)进行了优化。

1.3 XCFramework 允许开发者将多个架构的库打包到一个文件中,以便在不同平台上使用。这使得跨平台开发更加方便,同时也允许为不同架构提供不同版本的库。

2、然后找了xcframework的配置和引用方式:

配置 Xcode 项目 : 在 Xcode 项目中,确保已将 XCFramework 添加到项目的 "Frameworks, Libraries, and Embedded Content" 部分。这可以通过打开 Xcode 项目,然后导航到项目设置的 "General" 标签下完成。在 "Frameworks, Libraries, and Embedded Content" 部分,单击加号(+)按钮,然后选择您的 XCFramework 文件并添加到项目中。
指定 Framework Search Paths: 在 Xcode 项目的 "Build Settings" 下,搜索 "Framework Search Paths" 设置。确保该设置包含XCFramework 的路径。通常,这个路径是相对于 Xcode项目文件的路径,例如 $(PROJECT_DIR)/Frameworks。

3、按照上述描述,先配置了General部分,然后在Build Settings下遇到了问题:

3.1 在"Framework Search Path" 中先填写到$(PROJECT_DIR)/Lib/Coss/srp.xcframework, 然后执行编译命令,失败;

3.2 $(PROJECT_DIR)/Lib/Coss/srp.xcframework/ios-arm64_armv7s/srp.framework, 失败;

3.3 $(PROJECT_DIR)/Lib/Coss/srp.xcframework/ios-arm64_armv7s/srp.framework/, 在xcode界面执行编译,成功;但是执行命令行,失败;

3.4 $(PROJECT_DIR)/Lib/Coss/srp.xcframework/ios-arm64_armv7s/, 界面执行成功,命令行也成功,开心不已!

解决方案

最终解决方案是,直接将srp.framework放到Lib/Coss下面, 删除xcframework,同时 General下 srp.framework仍然为Embedded。

记之。

相关推荐
wvy2 小时前
Xcode 26还没有适配SceneDelegate的app建议尽早适配
ios
游戏开发爱好者83 小时前
苹果 App 上架流程,结合 Xcode、CI 等常见工具
macos·ios·ci/cd·小程序·uni-app·iphone·xcode
前端老白3 小时前
webview在微信小程序中,安卓加载失败,IOS正常加载
android·ios·微信小程序·webview
2501_915106323 小时前
用 HBuilder 上架 iOS 应用时如何管理Bundle ID、证书与描述文件
android·ios·小程序·https·uni-app·iphone·webview
2501_915909063 小时前
资源文件混淆在 iOS 应用安全中的实际价值
android·安全·ios·小程序·uni-app·iphone·webview
2501_915918413 小时前
iOS App 性能测试中常被忽略的运行期问题
android·ios·小程序·https·uni-app·iphone·webview
Name_NaN_None4 小时前
iPhone怎么投屏到电脑上?
ios·电脑·iphone
sweet丶16 小时前
UIWindowScene 使用指南:掌握 iOS 多窗口架构
ios
崽崽长肉肉21 小时前
swift中的知识总结(一)
ios·swift
2501_915106321 天前
HTTP 协议详解,HTTP 协议在真实运行环境中的表现差异
网络·网络协议·http·ios·小程序·uni-app·iphone