7

iOS 4.2 と Xcode 3.2.5 を使用してユニバーサル バイナリを作成しました。アプリケーションでいくつかの自動化テストを実行しようとしていますが、iPad と iPhone のバージョンではインターフェイスがわずかに異なるため、個別の UIAutomation スクリプトを用意しています。残念ながら、私が何をしても、Instruments の録音ボタンをクリックすると、常に iPad シミュレーターを使用してアプリケーションが起動します。Instruments に iPhone シミュレーターを起動させるにはどうすればよいですか?

ユニバーサル アプリは、3 つのシミュレートされたすべてのデバイス (iPhone、iPhone (Retina)、および iPad) のシミュレーターで正常に動作します。Xcode を介して Active Executable を制御でき、指定されたシミュレーターを正しく使用して、「ビルドと実行/デバッグ」が正常に機能します。Instruments を起動したら、iOS シミュレーター > すべて > 自動化を選択し、iPhone 用の自動化スクリプトを選択して、ターゲットを project-name/build/Debug-iphonesimulator/project-name として設定します。

4

4 に答える 4

9

コマンド ラインから自動化を実行する前に、以下を xcodebuild に渡して、iPhone のみのユニバーサル アプリのビルドを作成します。

TARGETED_DEVICE_FAMILY=1

次に、インストゥルメントを使用してオートメーションを実行します。

iPad をテストしたい場合は、そのビルド オプションを使用せずに別のビルドを作成すると、インストゥルメント/シミュレーターがデフォルトで iPad に戻ります。

参考までに、こちらの TARGETED_DEVICE_FAMILY のドキュメントをご覧ください。

http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

于 2011-11-18T04:08:02.377 に答える
5

アプリをいじくり回す必要はまったくありません。Instrumentsでは、iPhoneまたはiPadシミュレーターのどちらを使用するかを選択できます。アプリをすでに選択していると仮定します。

  1. ターゲットセレクターをクリックします(現在、アプリ名が表示されています)。
  2. 「アクティブターゲットの編集」をクリックします
  3. 下部にある[オプション]ドロップダウンをクリックします。
  4. リストの下部で、「シミュレーター構成」を選択できます。
于 2013-03-12T00:39:50.573 に答える
4

非常に簡単な解決策は、自動化を開始する前にアプリケーションのInfo.plistを変更することです(アプリを再構築する必要はありません)。PlistBuddyを使用して、UIDeviceFamilyをiPhoneまたはiPad用に変更します。例えば:

plistbuddy="/usr/libexec/PlistBuddy"
plistfile="$myapp/Info.plist"
if [ $device == "iphone" ]; then
 uidevicefamily=1
else
 uidevicefamily=2
fi
$plistbuddy -c "Delete :UIDeviceFamily" $plistfile
$plistbuddy -c "Add :UIDeviceFamily array" $plistfile
$plistbuddy -c "Add :UIDeviceFamily:0 integer $uidevicefamily" $plistfile
于 2012-03-22T16:46:39.507 に答える
1

これにも問題がありました。これは、使用している実行設定に関係なく、iPhone シミュレーターの SDK バージョンで 4.0 または 4.1 を表示する必要があるときに、XCode がシミュレーター - 3.2 を表示していたことに気付きました。

「ターゲットデバイスファミリ」の設定をiPhone / iPadに変更することで修正できました。どういうわけかiPadだけに設定されていたからです。

于 2010-12-07T01:11:57.787 に答える