4

この質問は、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'
4

1 に答える 1

-1

ターミナルで podfile があるプロジェクト ディレクトリのルートに移動し、「pod install」と入力して Enter キーを押します。それでもうまくいかない場合は、「pod uodate」と入力してみてください

于 2016-01-18T10:07:31.293 に答える