Skip to content

Support adding Objective-C plugins as static libraries to existing Swift app with CocoaPods #40289

@jmagman

Description

@jmagman

Steps to Reproduce

  1. Create a Flutter module with Objective-C platform code like url_launcher
  2. Add the module to an existing Swift app. Make sure use_frameworks! is not in the existing app Podfile to create the plugins as static libraries.
  3. Build

Build failure:
error: no such module 'FlutterPluginRegistrant'

Logs

Showing Recent Messages
CompileSwift normal x86_64 /Users/m/Projects/flutter-swift-test-31104/SampleiOSFlutter/SampleiOSFlutter/AppDelegate.swift (in target 'SampleiOSFlutter' from project 'SampleiOSFlutter')
    cd /Users/m/Projects/flutter-swift-test-31104/SampleiOSFlutter
    /Users/m/Applications/Xcode-beta6.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/m/Projects/flutter-swift-test-31104/SampleiOSFlutter/SampleiOSFlutter/ViewController.swift -primary-file /Users/m/Projects/flutter-swift-test-31104/SampleiOSFlutter/SampleiOSFlutter/AppDelegate.swift -emit-module-path /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/Objects-normal/x86_64/AppDelegate\~partial.swiftmodule -emit-module-doc-path /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/Objects-normal/x86_64/AppDelegate\~partial.swiftdoc -serialize-diagnostics-path /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/Objects-normal/x86_64/AppDelegate.dia -emit-dependencies-path /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/Objects-normal/x86_64/AppDelegate.d -emit-reference-dependencies-path /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/Objects-normal/x86_64/AppDelegate.swiftdeps -target x86_64-apple-ios12.2-simulator -enable-objc-interop -sdk /Users/m/Applications/Xcode-beta6.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.0.sdk -I /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Products/Debug-iphonesimulator -F /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Products/Debug-iphonesimulator -F /Users/m/Projects/flutter-swift-test-31104/FlutterModule/.ios/Flutter -F /Users/m/Projects/flutter-swift-test-31104/FlutterModule/.ios/Flutter/engine -enable-testing -g -module-cache-path /Users/m/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 5 -enforce-exclusivity=checked -Onone -D DEBUG -serialize-debugging-options -Xcc -working-directory -Xcc /Users/m/Projects/flutter-swift-test-31104/SampleiOSFlutter -enable-anonymous-context-mangled-names -Xcc -I/Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/SampleiOSFlutter-generated-files.hmap -Xcc -I/Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/SampleiOSFlutter-own-target-headers.hmap -Xcc -I/Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/SampleiOSFlutter-all-target-headers.hmap -Xcc -iquote -Xcc /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/SampleiOSFlutter-project-headers.hmap -Xcc -I/Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/m/Projects/flutter-swift-test-31104/SampleiOSFlutter/Pods/Headers/Public -Xcc -I/Users/m/Projects/flutter-swift-test-31104/SampleiOSFlutter/Pods/Headers/Public/FlutterPluginRegistrant -Xcc -I/Users/m/Projects/flutter-swift-test-31104/SampleiOSFlutter/Pods/Headers/Public/url_launcher -Xcc -I/Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/DerivedSources-normal/x86_64 -Xcc -I/Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/DerivedSources/x86_64 -Xcc -I/Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -DCOCOAPODS=1 -module-name SampleiOSFlutter -o /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Build/Intermediates.noindex/SampleiOSFlutter.build/Debug-iphonesimulator/SampleiOSFlutter.build/Objects-normal/x86_64/AppDelegate.o -index-store-path /Users/m/Library/Developer/Xcode/DerivedData/SampleiOSFlutter-dynfdplugzidvkdmfalgbckdklna/Index/DataStore -index-system-modules

/Users/m/Projects/flutter-swift-test/AppDelegate.swift:11:8: error: no such module 'FlutterPluginRegistrant'
import FlutterPluginRegistrant
       ^

Metadata

Metadata

Assignees

Labels

a: existing-appsIntegration with existing apps via the add-to-app flowplatform-iosiOS applications specificallytoolAffects the "flutter" command-line tool. See also t: labels.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions