Как установить swift framework, который имеет зависимость от cocoapod, в ваш проект swift app в Xcode?

#swift #xcode #frameworks #cocoapods

#swift #xcode #фреймворки #cocoapods

Вопрос:

Я просмотрел весь пример по этому вопросу и не смог найти что-то, что соответствует моему вопросу / ситуации.

У меня есть фреймворк swift под названием FrameworkA. В рамках FrameworkA я разместил cocoapod, Alamofire, создав podfile и добавив необходимую информацию о pod. Файл podfile указан следующим.

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

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

  # Pods for FrameworkA
  pod 'Alamofire', '~> 5.2'
end
  

Pod / Alamofire устанавливается правильно, поскольку я тестировал его с помощью простого вызова в тестовом классе внутри FrameworkA. Смотрите код:

 import Foundation
import Alamofire

class TestClass {
    
    let test = AF.request("https:/google.com").response { response in
        debugPrint(response)
    }
    
}
  

На данный момент, когда все работает, я хотел бы разместить FrameworkA внутри проекта Swift App в Xcode.

Здесь я сталкиваюсь с препятствием, поскольку я не могу создать простое приложение ApplicationA с установленной FrameworkA, поскольку Alamofire не найден в FrameworkA. Смотрите изображение.

модуль не найден

Что я пробовал:

Я попытался перетащить файл FrameworkA .xcodeproj в проект ApplicationA в Xcode, а затем добавить фреймворк в раздел «Фреймворки, библиотеки, встроенный контент». Смотрите изображения. перетаскивание модуля

введите описание изображения здесь

При попытке сборки я получаю ошибку компиляции, что FrameworkA не может найти Alamofire. Смотрите изображение:

введите описание изображения здесь

Мои основные вопросы:

  • Как мне добиться успешной сборки ApplicationA, поскольку очевидно, что Alamofire не устанавливается вместе с платформой?

Ответ №1:

Я смог ответить на свой собственный вопрос.

Все, что мне нужно было сделать, это добавить Alamofire в ApplicationA в качестве cocoapod, и все будет построено правильно.

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

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

  # Pods for ApplicationA
  pod 'Alamofire', '~> 5.2'
end
  

Комментарии:

1. Есть ли другой способ избежать интеграции с основным приложением pod? Спасибо