Private CocoaPod — модуль не найден, хотя модуль установлен

Я создал новый фреймворк CocoaPod, вот копия моего файла 'podspec':

Pod::Spec.new do |s|

# 1
s.platform = :ios
s.ios.deployment_target = '12.0'
s.name = "IdFramework"
s.summary = "IdFramework is a framework containing functionality."
s.requires_arc = true

# 2
s.version = "0.1.0"

# 3
s.license = { :type => "MIT", :file => "LICENSE" }

# 4 - Replace with your name and e-mail address
s.author = { "Idan Israel" => "myEmail" }

# 5 - Replace this URL with your own GitHub page's URL (from the address bar)
s.homepage = "link"

# 6 - Replace this URL with your own Git URL from "Quick Setup"
s.source = { :git => "{link to my framework on Github}",
             :tag => "#{s.version}" }

# 7
s.framework = "UIKit"
s.dependency 'Firebase'

# 8
"IdFramework/**/*"

# 9

# 10
s.swift_version = "4.2"

end

'podspec' успешно загружен, я вижу исходники на GitHub.

Я создал новый проект, в котором пытаюсь использовать только что созданный файл CocoaPod. Вот как выглядит Podfile:

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

source 'https://github.com/CocoaPods/Specs.git'
source '{Link to my source code on GitHub}'

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

  # Pods for TestingPods
  pod 'IdFramework', '~> 0.1.0'

end

Вот код, который у меня есть внутри фреймворка:

import Foundation
import Firebase

public class FirebaseConfig {
    public static func setupFirebase() {
        let arguments = ProcessInfo.processInfo.arguments as [String]
        var plistFileName = "GoogleService-Info-"

        if let environment = arguments.first?.split(separator: " ").last {
            plistFileName += environment
            
            guard let plistPath = Bundle.main.path(forResource: plistFileName, ofType: "plist"), let options =  FirebaseOptions(contentsOfFile: plistPath) else {
                return
            }
            
            if FirebaseApp.app() == nil{
                FirebaseApp.configure(options: options)
            }
        }
    }
}

CocoaPod и все его зависимости установлены правильно, я также вижу IdFramework под Pods в Xcode, однако, когда я пытаюсь импортировать IdFramework, я получаю сообщение об ошибке No such module 'IdFramework'.

Я пробовал следующее:

  1. pod deintegrate, затем pod install.
  2. Проверка Pods под Manage Schemes и сборка обоих проектов.
  3. Убедитесь, что iOS version и Swift version совпадают.
  4. Полностью очистил мой проект и перестроил.

Ничего из вышеперечисленного не помогло мне, и проблема не устранена. В чем может быть проблема?


person Idanis    schedule 16.05.2021    source источник


Ответы (1)


Замените №8 на:

s.source_files  = "IdFramework/**/*"
person Yonat    schedule 16.05.2021
comment
Однако большое спасибо, когда я это делаю, я получаю сообщение об ошибке при попытке создать модуль — проверка не находит «Firebase» — есть идеи, почему? - person Idanis; 18.05.2021
comment
Не знаю, извини. Возможно, попробуйте pod repo update, а затем повторите попытку, просто чтобы убедиться. - person Yonat; 18.05.2021
comment
На самом деле, я смог решить эту проблему, но затем возникла другая: у меня две одинаковые ошибки в файле Info.plist: «Цель IdFramework» (проект «Pods») имеет команду копирования из...' . Я проверил «Копировать ресурсы пакета» — там нет копируемых файлов («Info.plist» был там раньше, но я его удалил). Любая подсказка? - person Idanis; 18.05.2021
comment
Не знаю, трудно сказать, не видя кода. - person Yonat; 18.05.2021
comment
Я обновил свой вопрос своим кодом - пока у меня есть только один файл в фреймворке. Спасибо! - person Idanis; 18.05.2021
comment
О, я имел в виду все это - проект и все такое. Вероятно, это выходит за рамки вопроса о переполнении стека - вам может потребоваться исключить некоторые файлы или добавить preserve_paths. Хороший ресурс — github.com/bielikb/xcframeworks . - person Yonat; 18.05.2021
comment
Спасибо! Попробую разобраться. Отметив ответ как ответ, он решит мой первоначальный вопрос. Спасибо. - person Idanis; 19.05.2021