stephencelis / SQLite.swift

A type-safe, Swift-language layer over SQLite3.
MIT License
9.57k stars 1.54k forks source link

Symbol not found: _$s6SQLite10ConnectionC15TransactionModeO8deferredyA2EmFWC #1257

Open thiagosan252 opened 2 months ago

thiagosan252 commented 2 months ago

Build Information

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.