私と私のチームは、基本プロジェクトとプライベートポッドを含む奇妙な状況に陥っています。XCodeは、プライベートポッド(Swift)内で定義されたプロトコルを使用しようとすると「宣言されていないタイプの使用」と言います。
私たちの問題は、基本アプリケーションコードから(プライベートポッドに定義されている)(プロトコル)識別子の一部にアクセスできないということです。
私たちの問題は、これらの2つのスタックオーバーフロースレッドで説明した問題とまったく同じように見えますが、その解決策は私たちと協力していません。
スレッド1:Source files not found in Swift
スレッド2:CocoaPod installed but doesn't see Swift code
私たちが使っているスケルトンは、このいずれかになります。
当社コモンズポッド(私達はできないプロトコルで私たちの基本アプリから見てください)は、この.podspecファイルで定義されています:
Pod::Spec.new do |s|
s.name = "Commons"
s.version = "0.1.10"
s.summary = "Commons framework"
s.description = <<-DESC "Commons framework"
DESC
s.homepage = "http://EXAMPLE/Commons"
s.license = { :type => "Commercial" }
s.author = { "Author" => "[email protected]" }
s.source = { :git => "GITLAB_PRIVATE_URL/commons-iOS-Pod.git", :tag => s.version }
s.source_files = "Commons", "Commons/**/*.{h,m,swift}"
s.exclude_files = "Commons/Exclude"
end
基本アプリからは、次のPodfile(メインのxcworkspaceにCommonsポッドを追加する)があります。
# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
target 'ios-appbase' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'Alamofire'
pod 'ViewDeck'
pod 'JLRoutes'
pod 'Commons', :git => 'GITLAB_PRIVATE_URL/commons-iOS-Pod.git', :tag => '0.1.4', :branch => 'develop'
pod 'RestManager', :git => 'GITLAB_PRIVATE_URL/RestManager-iOS-Pod.git', :tag => '0.1.3'
pod 'BaseClasses', :git => 'GITLAB_PRIVATE_URL/BaseClasses-iOS-Pod.git', :tag => '0.1.3'
pod 'DesignManager', :git => 'GITLAB_PRIVATE_URL/DesignManager-iOS-Pod.git', :tag => '0.1.2'
end
私たちのプロトコルは、「Pods」プロジェクトの中にあるため、公開されていると定義されています。
他に何を調べる必要がありますか?
PS:私たちのカスタムプロトコルは、私たちのメインアプリケーションだけでなく、私たちのメインアプリケーションに含まれる別のポッドであるAlamofire内で定義されたプロトコルも "不可視"です。私たちはそれらを使用しようとし、コンパイル時にXcodeは文句を言います。
ありがとうございます。 ご挨拶。
EDIT1:私たちの問題を絞り込むと、コンパイル時に何か起きていると思う。どうして? XCodeは、CMD + Click(Podsのファイル構造で定義されている2つのプロトコル)を押しても問題のあるシンボルを解決できますが、コンパイラはそれを行うことはできず、 "宣言されていない型の使用"
ポッドを追加した後でプロジェクトをクリーニングしてみますか? – impression7vx
私たちは前後にプロジェクトをきれいにしました。派生したデータ。 – Isaac