mrousavy / nitro

🔥 Insanely fast native C++, Swift or Kotlin modules with a statically compiled binding layer to JSI
https://nitro.margelo.com
MIT License
493 stars 5 forks source link

Build Error when Object has boolean value. #217

Open baronha opened 2 days ago

baronha commented 2 days ago

What's happening?

When I define a HybridObject that contains a boolean value, when I rebuild the library I get an error like this:

Screenshot 2024-10-12 at 12 47 12

Reproduceable Code

import { type HybridObject } from 'react-native-nitro-modules'

export interface Options
  extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
  readonly isExportThumbnail?: boolean // --> It's normal if it's a string type.
}

export interface MultipleImagePicker
  extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
  openPicker(options: Options): Promise<number>
}

Relevant log output

SwiftCompile normal arm64 Compiling\ MultipleImagePickerAutolinking.swift /Users/mac/project/new-arch/react-native-multiple-image-picker/nitrogen/generated/ios/MultipleImagePickerAutolinking.swift (in target 'MultipleImagePicker' from project 'Pods')
    cd /Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods
    builtin-swiftTaskExecution -- /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c /Users/mac/project/new-arch/react-native-multiple-image-picker/ios/HybridMultipleImagePicker.swift /Users/mac/project/new-arch/react-native-multiple-image-picker/nitrogen/generated/ios/swift/HybridMultipleImagePickerSpec.swift /Users/mac/project/new-arch/react-native-multiple-image-picker/nitrogen/generated/ios/swift/HybridMultipleImagePickerSpecCxx.swift /Users/mac/project/new-arch/react-native-multiple-image-picker/nitrogen/generated/ios/swift/HybridOptionsSpec.swift /Users/mac/project/new-arch/react-native-multiple-image-picker/nitrogen/generated/ios/swift/HybridOptionsSpecCxx.swift /Users/mac/project/new-arch/react-native-multiple-image-picker/nitrogen/generated/ios/swift/HybridResultsSpec.swift /Users/mac/project/new-arch/react-native-multiple-image-picker/nitrogen/generated/ios/swift/HybridResultsSpecCxx.swift -primary-file /Users/mac/project/new-arch/react-native-multiple-image-picker/nitrogen/generated/ios/MultipleImagePickerAutolinking.swift -emit-dependencies-path /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/Objects-normal/arm64/MultipleImagePickerAutolinking-3b690fb41808aa9a8ea063df94e31830.d -emit-const-values-path /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/Objects-normal/arm64/MultipleImagePickerAutolinking-3b690fb41808aa9a8ea063df94e31830.swiftconstvalues -emit-reference-dependencies-path /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/Objects-normal/arm64/MultipleImagePickerAutolinking-3b690fb41808aa9a8ea063df94e31830.swiftdeps -serialize-diagnostics-path /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/Objects-normal/arm64/MultipleImagePickerAutolinking-3b690fb41808aa9a8ea063df94e31830.dia -target arm64-apple-ios13.4-simulator -Xllvm -aarch64-use-tbi -enable-objc-interop -cxx-interoperability-mode\=default -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.5.sdk -I /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Products/Debug-iphonesimulator/MultipleImagePicker -I /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Products/Debug-iphonesimulator/HXPhotoPicker -I /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Products/Debug-iphonesimulator/NitroModules -F /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Products/Debug-iphonesimulator/MultipleImagePicker -no-color-diagnostics -enable-testing -g -import-underlying-module -module-cache-path /Users/mac/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 5 -enforce-exclusivity\=checked -Onone -D DEBUG -D COCOAPODS -serialize-debugging-options -const-gather-protocols-file /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/Objects-normal/arm64/MultipleImagePicker_const_extract_protocols.json -enable-bare-slash-regex -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/mac/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift -enable-anonymous-context-mangled-names -Xcc -fmodule-map-file\=/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Products/Debug-iphonesimulator/HXPhotoPicker/HXPhotoPicker.modulemap -Xcc -fmodule-map-file\=/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Products/Debug-iphonesimulator/NitroModules/NitroModules.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/DoubleConversion/DoubleConversion.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/RCTDeprecation/RCTDeprecation.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/RCTFabric/React-RCTFabric.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/RCTTypeSafety/RCTTypeSafety.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React/React-Core.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/ReactCodegen/ReactCodegen.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/ReactCommon/ReactCommon.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React_Fabric/React-Fabric.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React_FabricComponents/React-FabricComponents.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React_NativeModulesApple/React-NativeModulesApple.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/folly/RCT-Folly.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/glog/glog.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/jsi/React-jsi.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/jsinspector_modern/React-jsinspector.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/react_debug/React-debug.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/react_featureflags/React-featureflags.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/react_renderer_debug/React-rendererdebug.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/react_renderer_graphics/React-graphics.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/react_renderer_imagemanager/React-ImageManager.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/react_utils/React-utils.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/yoga/Yoga.modulemap -Xcc -fmodule-map-file\=/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/MultipleImagePicker/MultipleImagePicker.modulemap -Xcc -std\=c++20 -Xcc -ivfsstatcache -Xcc /Users/mac/Library/Developer/Xcode/DerivedData/SDKStatCaches.noindex/iphonesimulator17.5-21F77-c098706a9f71eba4e76ae92ab367209a.sdkstatcache -Xcc -I/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/MultipleImagePicker-generated-files.hmap -Xcc -I/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/MultipleImagePicker-own-target-headers.hmap -Xcc -I/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/MultipleImagePicker-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/MultipleImagePicker-project-headers.hmap -Xcc -I/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Products/Debug-iphonesimulator/MultipleImagePicker/include -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Private -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Private/MultipleImagePicker -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/DoubleConversion -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/FBLazyVector -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/RCT-Folly -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/RCTRequired -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/RCTTypeSafety -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-Core -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-Fabric -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-FabricComponents -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-FabricImage -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-ImageManager -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-NativeModulesApple -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-RCTFabric -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-RCTText -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-callinvoker -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-cxxreact -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-debug -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-featureflags -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-graphics -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-jsi -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-jsiexecutor -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-jsinspector -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-logger -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-nativeconfig -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-perflogger -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-performancetimeline -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-rendererconsistency -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-rendererdebug -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-runtimeexecutor -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-runtimescheduler -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/React-utils -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/ReactCodegen -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/ReactCommon -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/Yoga -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/boost -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/fmt -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Public/glog -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/boost -Xcc -I/Users/mac/project/new-arch/react-native-multiple-image-picker/example/ios/Pods/Headers/Private/Yoga -Xcc -I/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/DerivedSources-normal/arm64 -Xcc -I/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/DerivedSources/arm64 -Xcc -I/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/DerivedSources -Xcc -DPOD_CONFIGURATION_DEBUG\=1 -Xcc -DDEBUG\=1 -Xcc -DCOCOAPODS\=1 -module-name MultipleImagePicker -frontend-parseable-output -disable-clang-spi -target-sdk-version 17.5 -target-sdk-name iphonesimulator17.5 -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.5.sdk/usr/lib/swift/host/plugins\#/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.5.sdk/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.5.sdk/usr/local/lib/swift/host/plugins\#/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.5.sdk/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/swift/host/plugins\#/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/local/lib/swift/host/plugins\#/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/swift-plugin-server -plugin-path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins -plugin-path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/lib/swift/host/plugins -o /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/Objects-normal/arm64/MultipleImagePickerAutolinking-3b690fb41808aa9a8ea063df94e31830.o -index-unit-output-path /Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/Objects-normal/arm64/MultipleImagePickerAutolinking-3b690fb41808aa9a8ea063df94e31830.o -index-store-path /Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Index.noindex/DataStore -index-system-modules

Device

Simulator iOS 15 Pro

Nitro Modules Version

0.11.0

Nitrogen Version

0.11.0

Can you reproduce this issue in the Nitro Example app here?

I didn't try (⚠️ your issue might get ignored & closed if you don't try this)

Additional information

baronha commented 2 days ago

There is another problem when I build the example using expo, it seems to conflict with ExpoModuleCore and I can't resolve it.

mrousavy commented 1 day ago

readonly isExportThumbnail?: boolean // --> It's normal if it's a string type.

Does it work if it's non-optional?

Please share the full build error in Xcode - there must be some kind of Swift error in the window where you took the screenshot. In your screenshot we can only see the build command invocation

mrousavy commented 1 day ago

it seems to conflict with ExpoModuleCore and I can't resolve it.

wdym?

baronha commented 1 day ago

readonly isExportThumbnail?: boolean // --> It's normal if it's a string type.

Does it work if it's non-optional?

Please share the full build error in Xcode - there must be some kind of Swift error in the window where you took the screenshot. In your screenshot we can only see the build command invocation

Showing Recent Messages
/Users/mac/Library/Developer/Xcode/DerivedData/MultipleImagePickerExample-cyaevycghzpzvkespefgrgrozofd/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/MultipleImagePicker.build/DerivedSources/MultipleImagePicker-Swift.h:5294:90: No member named 'bridge' in namespace 'margelo::nitro::imagepicker'
Screenshot 2024-10-12 at 18 46 37

Does this help you, Marc?

baronha commented 1 day ago

it seems to conflict with ExpoModuleCore and I can't resolve it.

wdym?

I don't know but when I use the nitro module, Expo gives me an error like this. So I have to create another example for my library

Screenshot 2024-10-12 at 19 04 18
baronha commented 1 day ago

And when I use HybridObject for the Result object in the callback function, more bridge errors appear.

Screenshot 2024-10-12 at 20 17 27

My code:

import type { Options } from './Options.nitro'

export interface Results
  extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
  readonly path: string
  readonly fileName: string
  readonly localIdentifier: string
  readonly width: number
  readonly height: number
  readonly mime: string
  readonly size: number
  readonly bucketId?: number
  readonly realPath?: string
  readonly parentFolderName?: string
  readonly creationDate?: string
}

export interface MultipleImagePicker
  extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
  openPicker(options: Options, callback: (result: Results) => void): void
}
baronha commented 1 day ago

My nitro.json:

{
  "cxxNamespace": ["imagepicker"],
  "ios": {
    "iosModulename": "MultipleImagePicker"
  },
  "android": {
    "androidNamespace": ["imagepicker"],
    "androidCxxLibName": "MultipleImagePicker"
  },

  "autolinking": {
    "MultipleImagePicker": {
      "swift": "HybridMultipleImagePicker",
      "kotlin": "MultipleImagePicker"
    }
  },
  "ignorePaths": ["node_modules"]
}
mrousavy commented 1 day ago

Ok yea we had the same issue after some testing internally - I'll fix this.

For now, I guess you can use a normal interface for Results, so not a HybridObject

mrousavy commented 1 day ago

The expo modules error is not really clear to me what caused it tbh.

mrousavy commented 1 day ago

Actually I think there might be multiple reasons for this:

baronha commented 1 day ago

Actually I think there might be multiple reasons for this:

  • You need Xcode 16 (Swift 6) for Nitro
  • You need react-native 75 for Nitro (Expo SDK 52 I think?)

Ah Not. I am using XCode 15.x Could this cause the above error?

hannojg commented 1 hour ago

@baronha definitely, XCode 15.x uses another Swift Compiler version, and you need to use the latest XCode