CommunityToolkit / CommunityToolkit/Maui.NativeLibraryInterop

How to use with CocoaPods

Ouverte
#78 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C#
Étoiles
249
Forks
48
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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)
```

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Begin with the Podfile, DotnetNewBindings.swift, and the .csproj settings described in the reproduction, then inspect the xcodebuild archive output around the missing Pods_NewBinding framework and search the repository for the native binding build entry point. Done means the documented CocoaPods setup can complete dotnet build/archive for arm64 without the reported linker failure.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp, ios, swift
Domaine
build-system, mobile-dev
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
28/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.