CommunityToolkit / CommunityToolkit/Maui.NativeLibraryInterop
How to use with CocoaPods
- Ngôn ngữ chính
- C#
- Star
- 249
- Fork
- 48
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Hello!
I've tried to bind MLKit BarcodeScanning for iOS.
1. Initialize cocoapods : `pod init`
2. Add pod to Podfile: `pod 'GoogleMLKit/BarcodeScanning', '7.0.0'`
3. Run `pod install`
4. Add new method to DotnetNewBindings.swift:
```swift
@objc
public static func detectBarcodes(image: UIImage) async throws -> String? {
let format = BarcodeFormat.all
let barcodeOptions = BarcodeScannerOptions(formats: format)
let barcodeScanner = BarcodeScanner.barcodeScanner(options: barcodeOptions)
let visionImage = VisionImage(image: image)
visionImage.orientation = image.imageOrientation
let barcodes = try await barcodeScanner.process(visionImage)
guard !barcodes.isEmpty else {
return nil
}
for barcode in barcodes {
return barcode.displayValue
}
return nil
}
```
5. Ensure the target platform is arm64 (It doesn't work with emulators)
6. Build project. Build passed.
7. Add `ios-arm64;` in csproj
8. Run dotnet build.
I get errors:
```
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Xlinker -reproducible -target arm64-apple-ios16.6 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.2.sdk -Os -L/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/IntermediateBuildFilesPath/EagerLinkingTBDs/Release-iphoneos -L/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.2.sdk/usr/lib/swift -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/IntermediateBuildFilesPath/EagerLinkingTBDs/Release-iphoneos -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/GTMSessionFetcher -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/GoogleDataTransport -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/GoogleToolboxForMac -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/GoogleUtilities -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/PromisesObjC -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/nanopb -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/native/NewBinding/Pods/MLImage/Frameworks -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/native/NewBinding/Pods/MLKitBarcodeScanning/Frameworks -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/native/NewBinding/Pods/MLKitCommon/Frameworks -F/Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/native/NewBinding/Pods/MLKitVision/Frameworks -filelist /Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/IntermediateBuildFilesPath/NewBinding.build/Release-iphoneos/NewBinding.build/Objects-normal/arm64/NewBinding.LinkFileList -install_name @rpath/NewBinding.framework/NewBinding -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/IntermediateBuildFilesPath/NewBinding.build/Release-iphoneos/NewBinding.build/Objects-normal/arm64/NewBinding_lto.o -Xlinker -final_output -Xlinker /Library/Frameworks/NewBinding.framework/NewBinding -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/IntermediateBuildFilesPath/NewBinding.build/Release-iphoneos/NewBinding.build/Objects-normal/arm64/NewBinding.swiftmodule -ObjC -framework Pods_NewBinding -Xlinker -no_adhoc_codesign -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/IntermediateBuildFilesPath/NewBinding.build/Release-iphoneos/NewBinding.build/Objects-normal/arm64/NewBinding_dependency_info.dat -o /Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/InstallationBuildProductsLocation/Library/Frameworks/NewBinding.framework/NewBinding
ld: warning: search path '/Users/vladislav/Virtual Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/GTMSessionFetcher' not found
ld: warning: search path '/Users/vladislav/Virtual Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/GoogleDataTransport' not found
ld: warning: search path '/Users/vladislav/Virtual Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/GoogleToolboxForMac' not found
ld: warning: search path '/Users/vladislav/Virtual Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/GoogleUtilities' not found
ld: warning: search path '/Users/vladislav/Virtual Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/PromisesObjC' not found
ld: warning: search path '/Users/vladislav/Virtual Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/BuildProductsPath/Release-iphoneos/nanopb' not found
ld: framework 'Pods_NewBinding' not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)
note: Disabling previews because SWIFT_VERSION is set and SWIFT_OPTIMIZATION_LEVEL=-O, expected -Onone (in target 'NewBinding' from project 'NewBinding')
** ARCHIVE FAILED **
The following build commands failed:
Ld /Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/InstallationBuildProductsLocation/Library/Frameworks/NewBinding.framework/NewBinding normal (in target 'NewBinding' from project 'NewBinding')
Archiving project NewBinding with scheme NewBinding
(2 failures)
0>Microsoft.MaciOS.Sdk.Xcode.targets(80,5): Error : xcodebuild exited with code 65:
** ARCHIVE FAILED **
The following build commands failed:
Ld /Users/vladislav/Virtual\ Machines.localized/Shared/MLKitBinding/macios/NewBinding.MaciOS.Binding/obj/Debug/net9.0-ios/xcode/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/NewBinding/InstallationBuildProductsLocation/Library/Frameworks/NewBinding.framework/NewBinding normal (in target 'NewBinding' from project 'NewBinding')
Archiving project NewBinding with scheme NewBinding
(2 failures)
```
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu với Podfile, DotnetNewBindings.swift và các thiết lập .csproj được mô tả trong phần tái hiện, sau đó kiểm tra đầu ra archive của xcodebuild xung quanh framework Pods_NewBinding bị thiếu và tìm trong repository entry point cho quá trình build native binding. Hoàn tất khi thiết lập CocoaPods được ghi lại có thể hoàn thành dotnet build/archive cho arm64 mà không gặp lỗi linker đã báo cáo.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- csharp, ios, swift
- Lĩnh vực
- build-system, mobile-dev
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 28/100