[英]Instruments always launches iPad Simulator for Universal Apps with Automation, how can I force it to use the iPhone Simulator?
我使用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。
在從命令行運行自動化之前,只需將以下內容傳遞給xcodebuild,即可創建通用應用程序的構建版本,這只是iPhone的版本:
TARGETED_DEVICE_FAMILY = 1
然后使用儀器運行自動化。
如果您想測試iPad,請在沒有該構建選項的情況下進行另一次構建,然后儀器/模擬器將默認返回到iPad
有關參考,請查看TARGETED_DEVICE_FAMILY的文檔:
根本不需要亂用您的應用程序:儀器允許您選擇是否使用iPhone或iPad模擬器。 假設您已經選擇了自己的應用:
一個非常簡單的解決方案是在啟動自動化之前修改應用程序的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
我也遇到了這個問題,我注意到,因為無論我使用哪種運行設置,XCode都會顯示模擬器 - 3.2,它應該在iPhone模擬器上為SDK版本顯示4.0或4.1。
我能夠通過將“目標設備系列”設置更改為iPhone / iPad來修復它,因為它設置為iPad。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.