iOS xcframework項(xiàng)目提示“l(fā)d: framework not found”
問題描述
公司有一個(gè)項(xiàng)目,同時(shí)引用了.framework和.xcframework, 但是使用xcode編譯的時(shí)候,
xcodebuild archive -project ${project_Name}.xcodeproj -target ${target_Name} -configuration ${build_model} -sdk iphoneos16.2 || exit -1
總是報(bào)一個(gè)srp的framework找不到,問題log如下:
ld: framework not found srp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
日志中搜索關(guān)鍵字發(fā)現(xiàn)“-framework srp” 字樣。
檢查源代碼配置,發(fā)現(xiàn)文件路徑如下:
Lib/Coss/srp.xcframework/ios-arm64_armv7s/srp.framework
問題定位分析
1、 在網(wǎng)上查找了xcframework與framework的區(qū)別:
1.1. XCFramework 是一種相對(duì)較新的分發(fā)代碼的方式,特別是用于跨平臺(tái)開發(fā)或支持不同架構(gòu)的應(yīng)用程序。
1.2 XCFramework 可以包含多個(gè) Framework,每個(gè) Framework 都針對(duì)不同的架構(gòu)(例如 iOS、macOS、arm64、x86_64 等)進(jìn)行了優(yōu)化。
1.3 XCFramework 允許開發(fā)者將多個(gè)架構(gòu)的庫打包到一個(gè)文件中,以便在不同平臺(tái)上使用。這使得跨平臺(tái)開發(fā)更加方便,同時(shí)也允許為不同架構(gòu)提供不同版本的庫。
2、然后找了xcframework的配置和引用方式:
配置 Xcode 項(xiàng)目: 在 Xcode 項(xiàng)目中,確保已將 XCFramework 添加到項(xiàng)目的 “Frameworks, Libraries, and Embedded Content” 部分。這可以通過打開 Xcode 項(xiàng)目,然后導(dǎo)航到項(xiàng)目設(shè)置的 “General” 標(biāo)簽下完成。在 “Frameworks, Libraries, and Embedded Content” 部分,單擊加號(hào)(+)按鈕,然后選擇您的 XCFramework 文件并添加到項(xiàng)目中。
指定 Framework Search Paths: 在 Xcode 項(xiàng)目的 “Build Settings” 下,搜索 “Framework Search Paths” 設(shè)置。確保該設(shè)置包含XCFramework 的路徑。通常,這個(gè)路徑是相對(duì)于 Xcode項(xiàng)目文件的路徑,例如 $(PROJECT_DIR)/Frameworks。
3、按照上述描述,先配置了General部分,然后在Build Settings下遇到了問題:
3.1 在“Framework Search Path” 中先填寫到$(PROJECT_DIR)/Lib/Coss/srp.xcframework, 然后執(zhí)行編譯命令,失敗;
3.2 $(PROJECT_DIR)/Lib/Coss/srp.xcframework/ios-arm64_armv7s/srp.framework, 失?。?br> 3.3 $(PROJECT_DIR)/Lib/Coss/srp.xcframework/ios-arm64_armv7s/srp.framework/, 在xcode界面執(zhí)行編譯,成功;但是執(zhí)行命令行,失?。?br> 3.4 $(PROJECT_DIR)/Lib/Coss/srp.xcframework/ios-arm64_armv7s/, 界面執(zhí)行成功,命令行也成功,開心不已!
解決方案
最終解決方案是,直接將srp.framework放到Lib/Coss下面, 刪除xcframework,同時(shí) General下 srp.framework仍然為Embedded。文章來源:http://www.zghlxwxcb.cn/news/detail-769322.html
記之。文章來源地址http://www.zghlxwxcb.cn/news/detail-769322.html
到了這里,關(guān)于iOS xcframework項(xiàng)目提示“l(fā)d: framework not found”的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!