2009-06-19 7 views
6

私は現在取り組んでいるプロジェクトを持っていますが、最近私のiPhone SDKを更新し、最新の3.0 SDKに更新しました。iPhone SDK 3.0にアップグレードするとUIKitの問題が発生する

私のSDKを更新して、既存のプロジェクトを開きます。確かに、いくつかの証明書の問題などを含むいくつかの問題があります。とにかく、Googleと私はそれらのほとんどを解決することができましたが、私は私の問題の最後であることを願っています。

シミュレータで、私のプログラムを実行している場合は、私が今

dyldの取得:ライブラリがロードされていません: /開発/ iGameLib /:から参照 /System/Library/Frameworks/UIKit.framework/UIKit をiGameLib /ビルド/デバッグ-iphonesimulator/iGameLib.app/iGameLib理由:イメージは今

を見つけていない、私はUIKitのは

に移動した発見

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0sdk/ システム/ライブラリ/フレームワーク/ UIKitの

と私は、その新たな枠組みの場所を指すように私の目標とプロジェクトの設定を更新しました私はそれを構築するとまだ、運がない。

私もシミュレータのアプリケーションと設定をクリアしてみましたが、まだ運がありません。

"clean" menuitemを実行すると、参照元の.appがクリアされていますが、私はこれを確認していますので、プロジェクト設定の何かが古いUIKitの場所を使用していることを明確に示しています。

どこが見えますか?

私は自分自身を助けることができる限り行ってきましたが、私はここで迷っています。ターゲット設定、プロジェクト設定、plist、またはプロジェクト内の他のファイルのいずれにも表示されません。

答えて

1

Xcodeには明らかな原因がないようないくつかの同様の問題がありました。問題の事実は、Xcodeにはまだバグがあり、時には壁にぶつかることがあるということです。

私の経験:同様の状況には、多少、ある特定の機会に、私が働いていたXcodeプロジェクトは、ちょうどグーグルで、何でも神秘的な理由、およびクリーニングの無い量のために建物を停止またはSO-ingが私にどんな答えを提供します。そこで、私は単にFRESH、NEWプロジェクトを作成し、壊れたプロジェクトのソースコードを新しいプロジェクトのものに入れました。新しいプロジェクトでは、SAMEソース、ライブラリ、リソース、設定を使用していましたが、問題なく構築できました。譲渡には約20〜25分かかりましたが、壊れたプロジェクトでは明らかにならないバグを解決するために数時間を費やしていたことを考えれば、時間は十分でした。

だから、私がやったことをお勧めします:新しいプロジェクトを作成し、古いソースとリソースを転送してみてください。

グッドラック

+1

SCMシステムまたはXcodeの内蔵スナップショットのいずれかを使用して、このような状況に遭遇した場合は、以前のバージョンのプロジェクトファイルにロールバックしたり、最後の手段としてプロジェクトを再現する前に試すツールがたくさんあります。 – cdespinosa

2
  1. (「ライブラリとリンクバイナリ」の下で確認してください)あなたが実際にターゲットのそれらのフレームワークのすべてにリンクしていることを確認します

  2. メイクをあなたのターゲット設定を確認してください3.0 SDKをベースSDKとして選択したことを確認してください。

  3. 前のように空のプロジェクトを作成してください。あなたはまだ問題がある場合、おそらくborked SDKはパスが現在のSDKに対して相対的であるとして、あなたは、SDKのフレームワークを再度追加する必要はありません、ところで

をインストール

だけ役に立つことしようとしています...ここからデバッグできるかどうかわからない:)

+0

だから、あなたは3.0 sdkをベースsdkとしてどこに変更するのですか?私はそれが何らかの形で問題になるかもしれないと思っています。ビルドターゲットを "Simulator - 3.0 | Debug"に変更するのは簡単ですが、私はすでにそれを行っています。 iPhoneベースのSDKの場所が分からない別の設定がありますか? –

+1

プロジェクト>プロジェクト設定の編集>一般>基本SDK。特定のターゲット(プロジェクト>ターゲット設定の編集>ビルド>ベースSDK)が、他の方法ですべてのターゲットによって共有されるプロジェクト設定を上書きしていないことを確認します。 – cdespinosa

4

OK、私は答えを持っている!

Xcodeは実際の.xcodeprojファイル内のすべての変数を正しく変更していません。だから、ここに私が取ったステップがあります。

Xcodeから抜けて、あなたは端末でこの仕事をしなければなりません。ターミナルを持ち上げ、あなたのプロジェクトがどこにあるのかを確認してください。 .xcodeprojを見つけて、それがディレクトリであるかのようにします。ファインダー内の実際のファイルのように見えますが、それはそれらのパッケージディレクトリの1つです。今

、私はテキストエディットは私がそれを編集できるようにするために得ることができませんでしたが、あなたは、ナノに行くことができますので、私は私の.xcodeprojファイル/フォルダ/パッケージの下にある

sudoのナノproject.pbxprojを行ったように/なんでも。

このファイルでは、SDKROOTが設定されている場所を見つける必要があります。チャンスは参照される場所がいくつかありますが、あなたはSDKROOT = iphoneos2.2.1などを探しています。これらのすべてをSDKROOT = iphoneos3.0に変更してください。

今、あなたはその途中です。 xをctrlしてファイルを保存します。次に、lsを実行し、.pbxuserファイルの内容を調べます。私はmyname.pbxuserです。このファイルでは

sudoのナノmyname.pbxuser

の同じコマンドを実行し、2.1 iphone sdkのディレクトリへの参照の膨大な数があります。私の場合、iPhoneSimulator2.1.sdk だったので、iPhoneSimulatorOLDVERSION.sdkの検索/置換を行い、2.1を3.0に変更します。しかし、これには非常に注意してください、私はあなたがこのファイルを混乱させるときに何が起こるか知りたくありません。

保存してxcodeを開きます。プロジェクトをきれいにしてビルドして実行してください。プレスト!

+0

ザックの解が正解です。私は言う必要があります、私は単に新しいプロジェクトを作成すると言うより新しい応答がより多くの票を持っていることに驚いています。 – pr1001

+1

これを行う必要はありません(実際には、プロジェクトにSDK固有のパスが「膨大な数」存在してはいけません)。プロジェクト>プロジェクト設定の編集>一般を選択し、そこから新しいSDKを選択するだけです。プロジェクトに他のSDK固有のパスがある場合、フレームワークをAdd Existing Frameworksシートで選択するのではなく、直接Finderからプロジェクトにドラッグしましたか?その場合は、ターゲット内の「フレームワーク検索パス」を確認し、そこにあるかもしれないSDK固有のパスを削除してください。 – cdespinosa

0

私はXcode 3.2.1を使用して同じ問題を抱えていましたが、より簡単に解決されました。私は最近、ターゲットの環境変数、特にメモリデバッグに関するもの(NSDebugEnabled、NSZombieEnabled、NSAutoreleaseFreedObjectCheckEnabled、MallocStackLogging、MallocStackLoggingNoCompact)を無効にしていたことに気付きました。アプリは環境変数を削除した後にシミュレータで一度実行されましたが、それ以降は一度も実行されませんでした。

Xcodeを終了すると、シミュレータは、Xcodeを再起動し、ターゲットの完全なクリーンアップ(コースからの依存関係を含む)を行い、良好な状態に戻しました。

1

「Frameworks」フォルダからUIKit.frameworkを削除し、右クリックしてもう一度追加しました。 クリーンビルド、および問題ありません。

+0

私は同じ問題に遭遇しました。これも私が修正した方法です。 xcodeは間違ったディレクトリでフレームワークを見つけようとしていたため、xcodeに適切なパスが追加されました。 –

0

デバッグなしでアプリケーションを起動する場合と同じ問題が発生します。 私の経験では、生成されたバイナリは犯人ではないようです。

シミュレータでOKを起動するxcodeウィザードからアプリケーションを作成しました(myAppという名前のtestAppとしましょう)、私のアプリとの違いはどこにあるのか把握しようとしました。

otool -L myApp 枠組み を見つけるために、LDによって必要

ps -E DYLD_ROOT_PATH、DYLD_FALLBACK_FRAMEWORK_PATH、DYLD_FRAMEWORK_PATH、DYLD_LIBRARY_PATH環境変数を値に比べて、myAppためOKですでTestApp

と同様、フレームワークに正しい(相対パス)を与えますtestAppが起動されたときにこれらの変数のうち

私は、問題がXCodeとシミュレータの間のコミュニケーションのどこかにあると思われます。アプリが起動されたら...間違ったものは見つけられません...

(少なくとも私にとっては)働いたソリューションは、確かにいくつかの大きな副作用を持っていますが、ここにある: は、変更のためのパッケージmyApp.xcodeproj ロック解除.model1v3と.pbxuser(ロックのコンテンツを閲覧 のXcodeを終了しましたライブラリがロードされていない:/情報パネル(ファイルのCMD-I))に これら2つのファイルがXcodeのを開始し、

10

私は

dyldの同じエラーを取得して、そこからアプリケーションを起動するために再試行 削除システム/ライブラリ/フレームワーク/ UIKit.framework/UIKit

私の場合の解決策は、単にXcodeを終了してもう一度やり直すことでした。

+0

これも私のために働いた。 –

+0

すごく、それは決して考えられませんでした。しかし、それは働いた! –

+3

Worked! AppleがxCodeの新しいバージョンを作るためにMicrosoftを採用したのはなぜですか? – ma11hew28

関連する問題