質問

Cocoa iPhoneアプリケーションとそれが使用する静的ライブラリの2つのプロジェクトがあります。

iPhoneシミュレーターで正常にテストしましたが、iPhoneデバイスに展開しようとすると(シンボルが見つかりません)リンクエラーが発生します。

ライブラリの依存関係を削除すると、プロジェクトは正常にビルド/実行されます。

すべてのビルド設定がシミュレータではなくiPhoneOSに設定されていることを確認しました。

確かに単純なものですが、iPhoneシミュレーターからデバイスに移行する際に同様の問題に遭遇した人はいますか?

-編集:新しいプロジェクト(アプリケーション用と静的ライブラリ用)を作成し、それらをiPhoneまたはシミュレーターで正常に実行できるようにしました。しかし、非常に奇妙な問題があります...特定のプロジェクトごとに、デバイスとシミュレータの両方で動作させることはできません...ビルド設定を再確認し、参照されているライブラリが一致するビルド用であることを確認しました設定(と思う)が、これらのリンクエラーを解決できません。

私は何か非常に悪いことをしているに違いないと思います...すべてのアップルのドキュメントには「非常にシンプル-ワンクリック」と書かれていますが、これは多くの問題を与えています。

これはおそらくxCodeのビルド設定と関係がありますが、異なるビルドプラットフォームを選択してライブラリを再構築することが機能しない理由を理解できないようです。

役に立ちましたか?

解決

他のヒント

やがて、私は問題が何であるかを理解しました。

デバイスターゲットをシミュレータからiPhoneデバイスに変更し、古い(シミュレータ)静的ライブラリを削除し、新しい(デバイス)ライブラリを接続しました。

(ビルド構成の)ライブラリ検索パスを除いて、最初はシミュレータディレクトリが最初にリストされていましたが、デバイスではなく、それが検出されて使用されると思われます。

これはまた、新しいプロジェクトで各設定を機能させることができたが、設定間での変更に問題があった理由も説明しています。

これは単純で愚かな問題ですが、それは私にいくつかの悲しみと時間を引き起こしました。ターゲットに依存するビルド設定を適切に設定する方法はまだわかりませんが、少なくとも誰かが同様の問題を抱えている場合は注意が必要です。

静的ライブラリの作成方法と使用方法に関する完全なチュートリアルを作成しました。このチュートリアルでは、Appleからもアドバイスされている方法を取り上げています。おそらく役立つでしょう:

http://www.sodeso.nl/?p=822

この方法の利点は、プロジェクトの設定に応じてライブラリを自動的に再コンパイルすることです(したがって、デバイス/シミュレータのビルドに問題はありません)

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