CommunityToolkit / CommunityToolkit/Maui.NativeLibraryInterop

How to use with CocoaPods

Đang mở
#78 4 bình luận 0 reaction 0 người được giao Xem trên GitHub
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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.