Custom Framework: dyld: символ не найден: _$s11CryptoSwift7PaddingO5pkcs7yA2CmFWC

Я использую пользовательскую структуру, созданную с использованием 3 разных кокосов. Я использую эту пользовательскую структуру в клиентском приложении, удаляя созданную структуру xc. Как только клиентское приложение запускается, оно падает с приведенными ниже журналами сбоев. Я видел, как об этой проблеме сообщалось во многих других местах на Apple и StackOverflow, но я не смог найти правильный ответ, который сработал для меня. Теперь я загрузил и клиентское приложение, и репозиторий фреймворка на github, чтобы любой, кто пытается мне помочь, мог увидеть настройку и код. Пожалуйста, может кто-нибудь предложить правильное решение этой проблемы.

Платформа: https://github.com/deepesh259nitk/PaymentsKit

Клиентское приложение: https://github.com/deepesh259nitk/PaymentClient

Журналы сбоев при запуске приложения

dyld: Символ не найден: $s11CryptoSwift7PaddingO5pkcs7yA2CmFWC Ссылка из: /Users/deepesh.vasthimal/Library/Developer/Xcode/DerivedData/PaymentClient-bnsircrdeaciebedmqaliyxezdqe/Build/Products/Debug-iphonesimulator/PaymentsKit.framework/PaymentsUserKit/deep. .vasthimal/Library/Developer/CoreSimulator/Devices/A0876375-98D5-4215-A139-68F29E787388/data/Containers/Bundle/Application/D954732B-EDDC-478E-85C4-C5C9B14FDDEE/PaymentClient.app/Frameworks/CryptoCryptoCwift в /Users/deepesh.vasthimal/Library/Developer/Xcode/DerivedData/PaymentClient-bnsircrdeaciebedmqaliyxezdqe/Build/Products/Debug-iphonesimulator/PaymentsKit.framework/PaymentsKit dyld: запуск, загрузка зависимых библиотек DYLDSHAREDCACHEDIR=/Users/deepesh.vasthimal/Library /Developer/CoreSimulator/Caches/dyld/19H2/com.apple.CoreSimulator.SimRuntime.iOS-14-0.18A372 DYLDROOTPATH=/Users/deepesh.vasthimal/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ Библиотека/Разработчик/CoreSimu Lator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot DYLDLIBRARYPATH=/Users/deepesh.vasthimal/Library/Developer/Xcode/DerivedData/PaymentClient-bnsircrdeaciebedmqaliyxezdqe/Build/Products/Debug-iphonesimulator:/Users/deepesh.vasthimal /Загрузки/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/introspection DYLDINSERTLIBRARIES=/Users/deepesh .vasthimal/Загрузки/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libBacktraceRecording.dylib:/Users/ де

Вещи, которые я пробовал.

  1. Я попытался полностью удалить CryptoSwift, чтобы увидеть, не возникает ли ошибка из-за этого модуля, но затем происходит сбой в JOSESwift, который является другим модулем.
  2. Я понял, что происходит сбой, поскольку он не может найти определенные символы как в CryptoSwift, так и в JOSESwift. А также когда я использую определенные методы этих библиотек.

например, если я использую метод AES CryptoSwift, если вы видите мое репо для фреймворка, добавив приведенный ниже код, произойдет сбой. Простое включение модуля не приводит к сбою, но его использование приводит к сбою.

_$s11CryptoSwift7PaddingO5pkcs7yA2CmFWC

guard let aesObject = try? AES(key: [UInt8](Data()),
               blockMode: CBC(iv: Array(Data())),
               padding: .pkcs7) else {   return "" }
  1. Я также добавляю модули в клиентское приложение, чтобы оно не добавлялось дважды, если вы видите репозиторий клиентского приложения, вы увидите, что все 3 модуля добавлены.

person Max    schedule 03.11.2020    source источник


Ответы (1)


Добавление приведенного ниже сценария в конец файла pod клиентского приложения.

post_install do |installer|
        installer.pods_project.targets.each do |target|
          target.build_configurations.each do |config|
            config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
          end
        end
      end

а затем запустите команды pod

 pod deintegrate
 pod install 

и исправляет сбой.

person Max    schedule 05.11.2020