使用RubyMotion选择iOS模拟器设备类型

问题描述:

自iOS 8发布以来,模拟器的默认设备类型变为iPhone 6.即使我使用硬件>设备菜单手动更改设备类型,在下次启动时(使用rake simulator)模拟器将恢复到iPhone 6.使用RubyMotion选择iOS模拟器设备类型

我不知道是否有任何rake选项或其他设置强制设备类型。

PS。我知道有些方法可以强制使用非视网膜iPhone,并且可以启动iPad模拟器而不是iPhone,但我有兴趣在5/6/6 +之间进行选择。

感谢

运行/Applications/Xcode.app/Contents/Developer/usr/bin/simctl list(或/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/simctl list旧版本的Xcode。

显示您的模拟器 以下是我的模拟器设备

== Devices == -- iOS 7.0 -- -- iOS 7.1 -- iPhone 5s (971DB3D4-7FF4-4005-A11D-11541ED79193) (Shutdown) -- iOS 8.0 -- iPhone 5s (EE64F798-6CB9-40B1-8B19-30727C3CA538) (Shutdown) iPhone 6 Plus (D9F2BEEE-D341-4080-8A49-24AB6FACD9D9) (Shutdown) iPhone 6 (81229508-4D35-4BEE-B616-FB99FDC6BCDD) (Booted) iPad 2 (F2484155-E4A2-44E9-A113-AAF4B9A83717) (Shutdown) Resizable iPhone (B762046B-1273-4638-B0ED-A7827A822BDD) (Shutdown) Resizable iPad (AACAB77A-12BD-43F3-A847-3D11575F3BF3) (Shutdown)

,如果你想运行iPhone 5S的IOS 7.1(You must set app.deployment_target = '7.1'),你可以像
​​

+5

谢谢,这就是我正在寻找的。但是将设备名称设置为'device_name =“iPhone 5s(F1B3E385-4031-4858-8FD0-50D5F709893A)”'不适用于我(在这种情况下,它总是会回复到iPhone 4s)。虽然只指定设备名称,如'device_name =“iPhone 5s”'运行良好。 – 2014-10-10 11:51:06

+0

'simctl'现在位于/Applications/Xcode.app/Contents/Developer/usr/bin/simctl – Andrew 2016-08-22 09:10:23

在“运动::应用程序”部分之前,你耙文件,请执行下列操作

ENV['device_name'] ||= 'iPhone 4s' 

或指定在模拟器设备列表中的任何其他设备的名称。

我发现,要做到这一点最简单的方法是将以下内容添加到您的Rakefile

desc "Run simulator on iPhone" 
task :iphone4 do 
    exec 'bundle exec rake device_name="iPhone 4s"' 
end 

desc "Run simulator on iPhone" 
task :iphone5 do 
    exec 'bundle exec rake device_name="iPhone 5"' 
end 

desc "Run simulator on iPhone" 
task :iphone6 do 
    exec 'bundle exec rake device_name="iPhone 6"' 
end 

desc "Run simulator in iPad Retina" 
task :retina do 
    exec 'bundle exec rake device_name="iPad Retina"' 
end 

desc "Run simulator on iPad Air" 
task :ipad do 
    exec 'bundle exec rake device_name="iPad Air"' 
end 

结束然后你可以运行在终端rake iphone5,它就会打开模拟器该设备。