web-dev-qa-db-ja.com

静的ライブラリを作成し、iosのプロジェクトに.aファイルだけを追加するにはどうすればよいですか

静的ライブラリを作成し、iosの任意のプロジェクトに.aファイルだけを追加するにはどうすればよいですか。

これを試しましたが、できませんでした。

前もって感謝します

16
user2568616

静的ライブラリを作成する場合は、リンクを参照することを意味します http://jaym2503.blogspot.in/2013/01/how-to-make-universal-static-library.html

ステップ1:「ロガー」という名前の新しいプロジェクトを作成する

ステップ2:クラスを作成する

必要な数のクラスを作成できます。チュートリアルでは、「Logger」という名前のクラスを1つ作成します。そのため、2つのファイルがリソースにあるはずです。 1. Logger.h 2. Logger.m

ステップ3:有用なコードをクラスに追加する

ステップ4:新しいターゲットを作成する

[ファイル]メニューから新しいターゲットを作成します。

新しいターゲット選択Cocoa Touch Static Library

手順5:ファイルをコンパイルリソースに追加する

静的ライブラリの「ロガー」ターゲットを選択します。準拠ソースセクションのビルドフェーズに進み、すべての.mおよび.mmファイルを追加します。 [ファイルのコピー]セクションで、すべての.hファイルとリソースファイルを追加します。

ビルド段階

手順6:静的ライブラリターゲットを使用してプロジェクトをコンパイルする

IOSデバイス用のプロジェクトのコンパイルシミュレーター用のプロジェクトのコンパイルビルドフォルダーに生成された2つの異なる.aファイルを見つけることができます。

.aファイルを見つける

ステップ7:静的ライブラリをユニバーサルにする

現在、2つの異なるライブラリを見つけることができます。1つはシミュレータ用で、もう1つはiOSデバイス用です。

新しいフォルダーを作成し、LoggerMergeという名前を付けます。コピーlibLogger.a Debug-iphoneosフォルダーのファイルを「LoggerMerge」に変更してlibLogger_device.aに名前を変更しますlibLogger.a Debug-iphonesimulatorフォルダーのファイルを「LoggerMerge」に変更し、libLogger_simulator.aに名前を変更します。コマンドlipo -create "libLogger_simulator.a "" libLogger_device.a "-output" libLogger.a "

これで、LogLogMergeフォルダーにlibLogger.aを見つけることができます。これはユニバーサルスタティックライブラリファイルです。さて、必要なのはヘッダーだけです。上のスクリーンショットを見ると、両方のビルドフォルダーにincludeというフォルダーがあります。このフォルダからヘッダーファイルをコピーするだけです。

ステップ8:静的ライブラリのテスト

新しいプロジェクトを作成し、TestLogger Importという名前を付けますlibLogger.aおよびヘッダーファイルインポートヘッダーファイル "Logger.h "使用したいところなら、このLoggerクラスをデフォルトのプラクティスとして使用してください。この場合、[Logger log:@" Test String "];シミュレーターとデバイスの両方でプロジェクトを実行それだけです!!独自の静的ライブラリーがあります!!

29
dhaya

ステップ1:新しい静的ライブラリプロジェクトの開始

XCodeを開き、新しいプロジェクトを開始します。 iOSの下で、ライブラリを選択し、「Cocoa Touch Static Library」と「staticlibrary」と言います。これにより、.aファイルを作成する素敵な新しいプロジェクトが作成されます。

ステップ2:静的ライブラリのコーディングまず、いくつかのファイルを追加する必要があります。新しいNSObjectサブクラスをプロジェクトに追加し、StaticClassという名前を付けます。次に、これらのファイルに有用なコードを記述します。

ステップ3:ライブラリの構築と配布ライブラリに満足したら、XCodeで単純に構築します。明らかに、実行できないのでビルドして実行しないでください(テストスイートがない限り)。 XCodeのProductsグループの下を見ると、lib(libraryName).aというファイルが表示されているはずです。私たちの場合、それはlibstaticlibrary.aです。

そのファイルを右クリックし、「Reveal In Finder」を選択します。このファイルを、作成する新しいフォルダーにドラッグします。ここで、すべてのライブラリファイルをバンドルします。今度は、すべての.hファイルで同じ操作を行います。この場合、StaticClass.hをこの新しいディレクトリにコピーするだけです。ディレクトリ構造は次のようになります。

FolderName
|- libstaticlibrary.a
|-  StaticClass.h

これで、このフォルダーを圧縮して、数百万人のiOSデベロッパーに販売できます!

ステップ4:新しいプロジェクトでライブラリをリンクする輝かしい新しい静的ライブラリを構築したら、別のアプリケーションでテストしてみましょう。

新しいビューベースのプロジェクト(または、実際に問題にならないもの)を作成します。 Testという名前を付けます。

このフォルダーをプロジェクトにドラッグするだけで、XCodeはすべてのリンクを自動的にセットアップします。コピーするように求められたら、私は通常「はい」と言いますが、ライブラリをどのように使用するかに応じて、好きなことを行うことができます。単一のライブラリを共有する複数のプロジェクトがある場合、リンクするだけでコピーしない方がはるかに有益な場合があります。これにより、すべてのユーザーが最新バージョンを使用するようになります。

これで、新しいプロジェクトのヘッダーファイルとともに.aファイルが表示されます。

ステップ5:静的ライブラリコードの使用

すべてのリンクが設定されたので、他のクラスと同じようにライブラリを使用します。

詳細については http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial このチュートリアルがお役に立てば幸いです。

11
yashwanth77

Objective-Cコンシューマ-> Objective-C静的ライブラリ

Xcodeバージョン10.2.1

Objective-Cの静的ライブラリを作成する

ライブラリプロジェクトを作成するか、ライブラリターゲットを作成します

File -> New -> Project... -> Cocoa Touch Static Library
//or
Project editor -> Add a Target -> Cocoa Touch Static Library 

module.modulemapファイルを作成 [約]

module module_name {
    umbrella header "module_name-umbrella.h"
    export *
}

module_name-umbrella.hファイルを作成 [約] そして、消費者向けに開くすべての.hファイルを追加します

#import "header_1.h"
#import "header_2.h"

module.modulemapおよびmodule_name-umbrella.hファイルをCopy Filesセクションに追加します [約]

Project editor -> select a target -> Build Phases -> Copy Files -> add `module.modulemap`, `module_name-umbrella.h` 

実装ファイルの追加.m

Select `.m` file -> Select File Inspectors Tab -> Target Membership -> Select the target
//or
Project editor -> select a target -> Build Phases -> Compile Sources -> add files

.hmodule_name-umbrella.hheader_1.h)にリストされたヘッダーファイルheader_2.hを追加します [できません][公開ターゲットメンバーシップ]

Select `.h` file -> Select File Inspectors Tab -> Target Membership -> Select the target and make it **public**
//or
Project editor -> select a target -> Build Phases -> Headers -> add files to the **public** zone

ビルドライブラリ- ⌘ Command + B またはProduct -> Build

注:クライアントコードと同じプロセスアーキテクチャのライブラリをビルドしてください。

生成された出力を検索 [ビルド場所]

Products group -> lib<product_name>.a -> Show in Finder

ディレクトリに含まれるもの

  • lib<product_name>.a –構築された静的ライブラリ
  • include/<product_name>セクションのファイルを含むCopy Filesフォルダー
  • Headersセクションのファイルを含むusr/local/includeフォルダー。パブリックインターフェイス/定義があります

Objective-Cの静的ライブラリを使用する

Drag and drop Xcodeプロジェクトへのバイナリ [約]

Link Library[未定義のシンボル][リンクと埋め込み]

Project editor -> select a target -> General -> Linked Frameworks and Libraries -> add -> Add Others... -> point to `lib<product_name>.a` file
//or
Project editor -> select a target -> Build Phases -> Link Binary With Libraries -> add -> Add Others... -> point to `lib<product_name>.a` file

Library Search paths[ライブラリが見つかりません][再帰パス]

Project editor -> select a target -> Build Settings -> Search Paths -> Library Search paths -> add path to the parent of `lib<product_name>.a` file

Header Search Paths[モジュールが見つかりません][再帰パス]

Project editor -> select a target -> Build Settings -> Search Paths -> Header Search Paths -> add path to generated `include/<product_name>` folder with `module.modulemap` and `<product_name>-umbrella.h`

モジュールをObjective-Cクライアントコードにインポートします [モジュール名]

@import module_name;

その他の例はこちら

1
yoAlex5