質問

IOS7まで、Appleはセキュリティ上の懸念のために動的リンクをサポートしていませんでした。通常、開発者間で通常静止ライブラリに依存しています。これはアプリの実行可能ファイルの一部として構築されました。

IOS8の拡張機能の導入は、拡張機能が別々の実行可能ファイルであるため、これを少し変更しているようです。拡張子とその含有アプリ間のコードを共有することはフレームワークを介して行われます。 Appleは彼らのリリースノートでこれを言っています:

iOSのフレームワーク。 IOS開発者は、 Dynamic フレームワークを作成できるようになりました。 フレームワークはカプセル化するためのコードとリソースの集まりです。 複数のプロジェクトにわたって貴重な機能。フレームワーク 両方で使用できる共有ロジックを拡張機能で完全に動作させる メインアプリケーション、およびバンドルされた拡張子。

強調は私のものです。

ソース: https://developer.apple.com/library/content/documentation/xcode/conceptual/whatsnewxcode-archive/artlics/xcode_6_0.html#//apple_ref/doc/uid/tp40014509-SW14

さらに、拡張開発ガイドでは、「埋め込みフレームワーク」を介して拡張子と包含アプリの間でコードを共有できることを説明しています。

ソース: https://developer.apple.com/library/content/documentation/general/conceptual/extensibilitypg/extensionscenarios.html#//apple_ref/doc/uid/tp40014214-ch21-sw1

私の質問は、組み込みフレームワークとは何ですか、それはどのように動的枠組みとどのように異なりますか、そして私たちは本当にiOS8で適切な動的リンクを見ますか?私が読んだすべての文書はこれについてあいまいなようです。

役に立ちましたか?

解決

「埋め込み」と「動的」フレームワークはフレームワークの同じ側面を参照していません。彼らは互いに反対ではありません。まず、フレームワークとは何を定義しましょう.Apple Lingoでは、フレームワークはいくつかのコンパイル済みコード+上記のコードのパブリックヘッダーを指します。

他のヒント

埋め込みフレームワークは、システムディレクトリにインストールされているグローバルフレームワークではなく、アプリバンドルに含まれているものです。

動的フレームワーク動的にリンクされたフレームワークを意味しません。アプリはまだサンドボックス環境で動作します。カスタムフレームワークがiOSでインストールされることが嫌ではありません。開発した共通のフレームワークを使用するあなたのアプリのそれぞれは、すべてのアプリのバンドルの中にコピーされる予定です。

あなた自身のためにこれを見ることができます。 Xcodeの派生データディレクトリとアプリのデータ内に移動し、すべての組み込みフレームワークがコピーされたすべての埋め込みフレームワークがあります。

静的ライブラリと比較してiOS 8を持つフレームワークを作成した唯一の新しいものは、パブリックヘッダーファイルとアセットがフレームワーク内にバンドルされることです。以前のバージョンのXcodeでこの種のものをしていた場合は、パブリックヘッダーの提供とその後、Xcode設定内の検索パスを追加し、検索パスを追加し、別のバンドルに合格しなければならないアセットを追加します。

私が見るフレームワークを使用することの欠点だけで、私たちは単に lipo を単に使用してすべての種類のアーキテクチャのためのFAT静的ライブラリを生成することはできません。

IMO Appleは「Dynamic」という言葉を使って「独立」を提案しています。

WWDC2014 - 建物現代のフレームワーク詳細については

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top