1

クライアントがプロジェクトにドラッグ アンド ドロップするだけで使い始めることができるように、プロジェクトのためにクライアントに提供するプライベート フレームワークを開発しています。

不要なライブラリ インポート参照パス セットとビルド設定への追加を回避するために、成果物を整理するためのフレームワークを構築することは、Watch OS、IPod、Ipad、IPhone をすべて 1 つにまとめることができるはるかに優れたソリューションであると述べました。

他のサードパーティが使用するポッドでユニバーサル フレームワークを作成したかったのです。サイズをコンパクトにし、インターフェースファイルのみを除いてソースコードを公開せずに配信することでこれを達成する方法を教えてください。

構造が期待されます。

MYCustomFramework

  • - - -バージョン
  • --------- 一部のアセットバンドル
  • --------- サードパーティの Pod ライブラリ
  • --------------- Pod を使用した XMPP フレームワーク
  • --------------- ドキュメンテーション フレームワーク
  • --------------- ログ フレームワーク -

次に、このフレームワークを自分のポッドを持つ My Test プロジェクトに追加したいと思います

MyTestProject.xcworkspace MyTestProject.xcproj MYCustomFramework.framework -- これには、以下のすべてのブラケットが内部でコンパイルされるため、インターフェイス以外のソースは公開されません。{

  • - - -バージョン
  • --------- 一部のアセットバンドル
  • --------- サードパーティの Pod ライブラリ
  • --------------- Pod を使用した XMPP フレームワーク
  • --------------- ドキュメンテーション フレームワーク
  • --------------- ログ フレームワーク}

これをどのように達成し、できるだけ小さいサイズで作成するか。

4

2 に答える 2

1

いろいろ試行錯誤した結果、最終的に以下の方法でこの作品を作りました。

1) Pod (テスト プロジェクトがリリース済み) は、多くのサード パーティが存在するライブラリの Pod を持つことができません。2 ワークスペースの競合と、どちらを使用するかは面倒です。

2) テスト プロジェクトを作成し、このテスト プロジェクトの Pod を実装し、ワークスペースを使用して開きます。

3) XMPP フレームワーク ライブラリと抽出されたフォルダーとヘッダーを Pod なしで使用します。

4) Cocoa-touch Framework を作成し、Pod を使用せずにこの XMPPFramework フォルダーをドラッグしました。

5) 同様に、My Cocoa-Touch Framework に他のライブラリを統合するために手動プロセスを使用

6) My Framework をコンパイルし、(デバイスとシミュレーター) の mycustomframework.framework を生成しました。

7) 必要に応じて、LIPO を使用して集約されたターゲットを作成し、すべての XMPP およびその他のサードパーティ ライブラリ ヘッダーがフレームワーク内でプライベートになり、公開されたパブリック ヘッダー ファイルのみがテスト プロジェクトの統合に使用できるようにすることができます。

8) コンパイル済みの '.framework' ファイルをドラッグするか、ライブラリ プロジェクトをテスト プロジェクト内にドラッグするだけで、テスト プロジェクトを実行できるようになり、ライブラリ コードもデバッグできるようになりました。

于 2016-02-15T09:31:21.200 に答える
0

このガイドを試してください。スペックリポジトリをポッドリポジトリにも追加する必要があります https://guides.cocoapods.org/making/private-cocoapods.html

編集:

Fabric から取得した Fabric.framework を提供する内部ラップされた Fabric POD があります (これは、Fabric がパブリック Pod を持つ前でした)。これが Pod 仕様です。したがって、リポジトリで .framework を構築し、Fabric をラップするのと同じ方法で配信できます。

この助けを願っています

{
  "name": "InternalFabric",
  "version": "1.1.1",
  "summary": "Fabric is a 3rd party library that gives us crash analytics.",
  "homepage": "https://github.com/myNameHere",
  "authors": "myNameHere",
  "license": {
    "type": "Copyright",
    "text": "\n Copyright Acme Inc. 2014\n For internal Acme use only. \n"
     },  
  "platforms": {
    "ios": "7.0"
  },
  "source": {
    "git": "https://github.com/ios-yourLibs/Fabric.git"
  },
  "requires_arc": true,
  "default_subspecs": "Core",
  "subspecs": [
      {
        "name": "Core",
        "vendored_frameworks": ["Fabric.framework","Crashlytics.framework"]
      },
      {
        "name": "Crashlytics",
        "dependencies": {
          "Fabric/Core": [

          ]
        },
        "vendored_frameworks": "Crashlytics.framework"
      }
  ]
}
于 2016-02-03T11:03:51.120 に答える