この質問は、podspec
ベンダー フレームワークに関するものでありuse_frameworks!
、pod file
Podspec
フレームワーク (swift
およびobj-c
コードを含む)用に を作成しました。前述pod spec
は、vendor framework
すでに iOS としてコンパイルされている (つまり、クローズドソース) 用embedded framework
であり、それ自体に swift および Objective-C コード (「混合プロジェクト」) が含まれています。
フレームワークにはアンブレラ ヘッダーがありmodule
、プロジェクトに直接埋め込まれ (ポッドを使用せずに手動でプロジェクトにドラッグ アンド ドロップ)、ホスティング アプリで次の構文を使用すると、 が定義され、期待どおりに機能します。
#import <MyFramework/Myframework.h>
フレームワーク ヘッダーには標準的な行があります。
//! Project version number for MyFramework.
FOUNDATION_EXPORT double MyFrameworkVersionNumber;
//! Project version string for MyFramework.
FOUNDATION_EXPORT const unsigned char MyFrameworkVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <MyFramework/PublicHeader.h>
#import <MyFramework/Header_one.h>
#import <MyFramework/Header_two.h>
... etc.
私が試している対応するポッド仕様(およびそれらの多くの組み合わせ...)
Pod::Spec.new do |s|
s.name = "MyFramework"
s.version = "1.0.0"
s.summary = "MyFramework SDK."
s.description = "Some sort of long description of the pod"
s.homepage = "http://MyFramework.com/"
s.license = { :type => "Commercial", :text => "MyFramework Copyright 2015 ...." }
s.author = { "Avner Barr" => "avner@abc.com" }
s.platform = :ios, "8.0"
s.source = { :http => "http://somewhere_over_the_rainbow/MyFramework.zip" }
s.public_header_files = "MyFramework.framework/Headers/*.h"
s.module_map = "MyFramework.framework/Modules/module.modulemap"
s.preserve_paths = "InsertFramework.framework/*"
s.vendored_frameworks = "MyFramework.framework"
s.requires_arc = true
end
ホスト アプリのポッド ファイル内:
source '.../.../MyPrivateTestingPodSpecRepo.git'
use_frameworks!
target 'TestPSpec1' do
pod 'MyFramework'
end
ポッドは、期待どおりにワークスペースをダウンロードして作成しますが、実行しようとすると迅速なコードになります。
import MyFramework
エラーが発生します:
Include of non-modular header inside framework module 'MyFramework'
Objective-Cヘッダー (<>
構文)に「赤い」エラーがあります。
すなわち
MyFramework.h
#import <MyFramework/Header_one.h> Include of non-modular header inside framework module 'MyFramework'