1

2 つの異なるバージョンをビルドできるようにしたいアプリがあります。1 つは、テスト データベースにヒットし、テスト分析バックエンドに入力するなどの「テスト」バージョンであり、次に、本番データベースと分析バックエンドである「ライブ」バージョンです。

そのため、ターゲットを複製し、適切な変更を加えました。両方をビルドして、両方を電話にインストールし、電話で両方を手動で実行できます。ただし、gdb または lldb でデバッグするためにデバイスの Xcode で実行しようとすると (両方で同じエラーが発生します)、元のターゲットは正常に実行されます。ただし、複製されたターゲット(「テスト」ターゲット)は、デバイスで実行するとエラーになります(両方ともシミュレータで正常に実行され、問題はデバイスでのみ実行されます)

lldb の結果: [APPNAME] はアプリ全体の名前です -- テスト バージョンでは製品が [APPNAME]Test に設定されています

エラー: '/Users/chad/Library/Developer/Xcode/DerivedData/[PROJNAME]-ezbuaazlwmgdwydjykcufhicaspu/Build/Products/Debug-iphoneos/[APPNAME]Test.app/[APPNAME]Test' の起動に失敗しました

gdb は基本的に、同じパスが見つからないというダイアログ ボックスを表示します。

ただし、そのパスは実際には存在します。Xcode デバッガー ウィンドウからパスを切り取り、ターミナルに移動して % ls -a '/Users/chad/Library/Developer/Xcode/DerivedData/[PROJNAME]-ezbuaazlwmgdwydjykcufhicaspu/Build/Products/Debug-iphoneos/ と入力すると、 [APPNAME]Test.app/[APPNAME]Test'

それはそれで問題ありません。また、Products フォルダーの下のファイル リストで Xcode をクリックし、[APPNAME]Test.app をクリックして、コンテキスト メニューで [Show in Finder] を選択すると、問題なく表示されます。

そして、アプリは電話にコピーされ、オーガナイザーに表示され、アプリを手動で起動してデバイス上で実行できます。コピーされたターゲットのデバイスの Xcode で自動起動しませんが、元のターゲットは Xcode で正常に実行されます。

これについての洞察をいただければ幸いです。これは、私が作成した iPhone プロジェクトで複数のターゲットをリアルタイムで操作するのは初めてです (他の誰かが作成したプロジェクトでチームで作業するのではなく)。ありがとう。

4

1 に答える 1

1

あなたは知りませんか?Xcode がクラッシュし (これとは関係のない別のことをしていたときのまったく別の理由で)、両方のターゲットが Xcode から起動して実行されるようになりました。したがって、Xcode からのターゲットの起動に問題がある場合は、ターゲットを複製した後に Xcode を終了することで解決できると思います。

于 2012-02-10T23:06:42.703 に答える