Umbrella-Header uses wrong import syntax after `pod install`

30 views Asked by At

I am developing a local Expo module in which I am using a 3rd party Framework.

My .podspec looks something like this:

Pod::Spec.new do |s|
  # root specification

  s.dependency 'ExpoModulesCore'
  s.vendored_frameworks = 'Frameworks/MyLocalFramework.framework'
  s.public_header_files = "Frameworks/MyLocalFramework.framework/Headers/*"

  # Swift/Objective-C compatibility
  s.pod_target_xcconfig = {
    'DEFINES_MODULE' => 'YES',
    'SWIFT_COMPILATION_MODE' => 'wholemodule'
  }

  s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}"
end

After running pod install in my prebuilded iOS app, which implements my module, I am able to import and use MyLocalFramework in my Objective-C and Swift files without issues.

However, once I try to run my app with npx expo run:ios I get a build error saying an import in my ModuleName-umbrella.h failed. There it tries to import the Frameworks headers via the "Header.h" syntax (this was generated after pod install).

Now, when I manually change the imports using the <MyLocalFramework/Header.h> syntax I can build and run the app without issues. My question is: Why does pod install use the "" import syntax here instead of <>? I don't want to manually change the imports every time I run pod install.

Additional information: Under my modules Build Phases > Headers > Project I specified the ModuleName-umbrella.h as well as the MyLocalFramework headers.

0

There are 0 answers