4

私は現在、Apple フレームワークと同じようにフレームワークとして使用したいコードを作成していますimport MyCustomFramework(将来的には、それらも配布したいと考えています)。

それについていくつか質問があります:

  • 必要なフレームワークを構築する最も簡単な方法は何ですか? これを Xcode で直接行うことは可能ですか、それともターミナルでコマンド ライン ツールを使用する必要がありますか?
  • このフレームワークは複数のプラットフォームと互換性がありますか (私はすべての Apple プラットフォームについて考えていますが、Linux などの Swift でサポートされている他のプラットフォームについても考えています)。
  • Swift フレームワークと Swift Package Manager の間のリンクは正確には何ですか? フレームワークを構築するには SPM が必要ですか、それともこの 2 つの異なるツールですか?

ありがとうございました。

4

2 に答える 2

3
  • Xcode を使用してフレームワーク ターゲットを作成する方法について、2 週間前の回答で詳細な回答を提供しまし。特にフレームワークに関する質問ではなかったので、検索で出てこないのは理解できます。(ここにコピーして貼り付けるのは歓迎されないと思いますが、間違っている場合はそうします。)

  • 今のところ、Swift Framework ターゲットは、UIKit、Foundation、およびコア コードを独自のフレームワークに分離すれば、Apple プラットフォーム間で互換性があります。(もっといい方法があるかもしれませんが、それが私が知っている最善の方法です。

  • Swiftコア コードについて: 現在、Swift は (まだ) 急速に進化しています。Swift 3 は本番サーバー側での使用と Linux での使用が開始されていますが、現時点ではバイナリ互換性がないため (これは Swift 4 の一部です)、Apple プラットフォームに固執します。

  • Swift 2 と 3 の間の Swift バージョンの互換性について矛盾することを聞いたことがあります。これは、同じプロジェクトで両方を使用できることを意味しますが、使用する場合はハードルがあります。

于 2016-12-27T15:32:37.123 に答える
3

現在、Swift Package Manager (SPM) と Xcode フレームワークは異なるパスをたどっています。Linux の場合、Linux の迅速なアプリケーションをコンパイルする唯一の方法は SPM を使用することであるため、SPM パスに従う必要があります。macOS コマンド ライン アプリの場合は、SPM パスをたどることもできます。iOS アプリと macOS UI アプリの場合、Xcode Frameworks パスに従う必要があります。

SPM パスの場合、フレームワークのプロジェクトをSPM 対応にします。ファイルを追加Package.swiftし、SPM 規則に従ってプロジェクトのファイル レイアウトを設定します。また、プロジェクトは git リポジトリである必要があります。次に、プロジェクトの git リポジトリを、他の SPM 対応のフレームワーク/アプリケーションへの依存関係として指定できます。SPM 対応の各プロジェクトは、コマンドを使用していつでも Xcode プロジェクトに変換できますswift package generate-xcodeproj

Xcode フレームワーク パスは、Xcode を使用してフレームワークを操作するための SPM 以前の標準的な方法であり、別の場所で説明されています。フレームワークを定義する Xcode プロジェクトを作成します。

そのため、Linux および macOS コマンド ライン アプリ用の SPM 対応プロジェクトと、iOS および macOS UI アプリ用の Xcode 対応プロジェクトの両方でフレームワークを使用する場合は、デュアル パスに従う必要があります。プロジェクトを SPM 対応にし、フレームワークを定義する Xcode プロジェクトを追加します。Package.swiftプロジェクト情報を 2 回 (ファイルと Xcode プロジェクトで)維持する必要があります。

于 2016-12-31T09:15:21.443 に答える