.framework 是 iOS/macOS 上的動態庫打包格式,包含:
OpenCV)Headers/)Modules/module.modulemap)供 Swift/ObjC 混編簡單說:你下載的 OpenCV iOS 包裡的 opencv2.framework 就是所需的全部。
opencv-4.x.x-ios-framework.zip。opencv2.framework 拖到 Xcode 專案導航欄,勾選 Copy items if needed、Create groups、目標 Target。Framework Search Paths 加入 $(PROJECT_DIR)(若非自動)。Enable Bitcode 設為 NO(OpenCV 官方框架暫不支援 Bitcode)。// Objective-C
#import <opencv2/opencv.hpp>
// Swift 需橋接頭文件
#import <opencv2/opencv.hpp>
.m 文件需改為 .mm(Objective-C++)。| 現象 | 原因 | 解決 |
|---|---|---|
| 找不到頭文件 | Framework Search Paths 缺失 | 添加 $(PROJECT_DIR) 並勾選 recursive |
編譯報錯 std::vector 等 | 未改為 .mm | 重命名源文件為 .mm |
運行崩潰 dyld: Library not loaded | Embed & Sign 缺失 | Target → General → Frameworks 選 Embed & Sign |
cv::Mat img = cv::imread([[NSBundle mainBundle] pathForResource:@"test" ofType:@"jpg"]);
NSLog(@"Image size: %dx%d", img.cols, img.rows); // 輸出尺寸即成功
OpenCV.framework 就是 OpenCV 庫的標準 iOS 發布形式,直接拖入、配置路徑、改 .mm、關 Bitcode 四步走,即可在 iOS 專案中享受完整的計算機視覺能力。