SQLite.swift icon indicating copy to clipboard operation
SQLite.swift copied to clipboard

Symbol not found: _$s6SQLite10ConnectionC15TransactionModeO8deferredyA2EmFWC

Open thiagosan252 opened this issue 1 year ago • 0 comments

Build Information

  • Include the SQLite.swift version, commit or branch experiencing the issue.
    • SQLite.swift/standalone 0.15.0/0.15.1
  • Mention Xcode and OS X versions affected.
    • Xcode 15.3
  • How do do you integrate SQLite.swift in your project?
    • CocoaPods

Problem

I am generating a multiplatform binary framework bundle (xcframework) and I am integrating it with another app. There are no errors when generating xcframework, only when I try to run it on a device (iOS 17.4.1) through another project.

Error

dyld[18076]: Symbol not found: _$s6SQLite10ConnectionC15TransactionModeO8deferredyA2EmFWC
  Referenced from: <931E6C3A-1F51-3B81-BE9E-62579541948D> /private/var/containers/Bundle/Application/<app-id>/MyApp.app/Frameworks/CustomFramework.framework/CustomFramework
  Expected in:     <B53E70F7-EE8C-33DB-81A5-A7BC1C6097F7> /private/var/containers/Bundle/Application/<app-id>/MyApp.app/Frameworks/SQLite.framework/SQLite

Podfile

# Uncomment the next line to define a global platform for your project
platform :ios, '12.0'

target 'SDKmRDC' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for SDKmRDC
  pod 'SQLite.swift/standalone'
    
  #Remove the folder to fix the error
  post_install do |installer|
    installer.generated_projects.each do |project|
        project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
                config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = "arm64"
            end
        end
    end
  end
end

When I change the framework link from dynamic to static, it works without errors.

use_frameworks! :binding => :static

However, I keep receiving the following messages on my app:

objc[18370]: Class PodsDummy_sqlite3 is implemented in both /private/var/containers/Bundle/Application/<app-id>/MyApp.app/Frameworks/CustomFramework.framework/CustomFramework (0x1045816c0) and /private/var/containers/Bundle/Application/<app-id>/MyApp.app/Frameworks/sqlite3.framework/sqlite3 (0x10306a5f0). One of the two will be used. Which one is undefined.
objc[18370]: Class PodsDummy_SQLite_swift is implemented in both /private/var/containers/Bundle/Application/<app-id>/MyApp.app/Frameworks/CustomFramework.framework/CustomFramework (0x104581670) and /private/var/containers/Bundle/Application/<app-id>/MyApp.app/Frameworks/SQLite.framework/SQLite (0x1031de078). One of the two will be used. Which one is undefined.
objc[18370]: Class _TtC6SQLite6Backup is implemented in both /private/var/containers/Bundle/Application/<app-id>/MyApp.app/Frameworks/CustomFramework.framework/CustomFramework (0x1045866a8) and /private/var/containers/Bundle/Application/<app-id>/MyApp.app/Frameworks/SQLite.framework/SQLite (0x1031de118). One of the two will be used. Which one is undefined.

thiagosan252 avatar Apr 14 '24 21:04 thiagosan252