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

7
自从iOS 8发布以来,模拟器的默认设备类型变成了iPhone 6。即使我使用“硬件”>“设备”菜单手动更改设备类型,在下一次启动(使用rake simulator)时,模拟器也会恢复到iPhone 6。
我想知道是否有任何rake选项或其他设置可强制设备类型。
PS. 我知道有方法可以强制非视网膜iPhone和启动iPad模拟器而不是iPhone模拟器,但我对在5/6/6+之间进行选择感兴趣。
谢谢
4个回答

18

我发现最简单的方法是在您的 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,它将打开那个设备的模拟器。


12

运行 /Applications/Xcode.app/Contents/Developer/usr/bin/simctl list (对于旧版本的Xcode,可以运行 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/simctl list).

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

== 设备 == -- iOS 7.0 -- -- iOS 7.1 -- iPhone 5s (971DB3D4-7FF4-4005-A11D-11541ED79193) (已关闭) -- iOS 8.0 -- iPhone 5s (EE64F798-6CB9-40B1-8B19-30727C3CA538) (已关闭) iPhone 6 Plus (D9F2BEEE-D341-4080-8A49-24AB6FACD9D9) (已关闭) iPhone 6 (81229508-4D35-4BEE-B616-FB99FDC6BCDD) (已启动) iPad 2 (F2484155-E4A2-44E9-A113-AAF4B9A83717) (已关闭) 可调整大小的 iPhone (B762046B-1273-4638-B0ED-A7827A822BDD) (已关闭) 可调整大小的 iPad (AACAB77A-12BD-43F3-A847-3D11575F3BF3) (已关闭)

如果您想将iPhone 5s作为iOS 7.1版本(您必须设置app.deployment_target = '7.1'),您可以像这样运行
rake device_name="iPhone 5s (971DB3D4-7FF4-4005-A11D-11541ED79193)"


6
谢谢,这正是我正在寻找的。但是像 device_name="iPhone 5s (F1B3E385-4031-4858-8FD0-50D5F709893A)" 这样设置设备名称对我没有用(在这种情况下它总是还原为 iPhone 4s)。而只指定设备名称如 device_name="iPhone 5s" 就有效了。 - Dmitry Sokurenko
simctl现在位于/Applications/Xcode.app/Contents/Developer/usr/bin/simctl。 - Andrew
在较新版本的Xcode(例如Xcode 11)中,请使用:xcrun simctl list来获取设备列表。 - Andrew

1

在"Motion::App"部分之前的rake文件中,执行以下操作

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

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


1

在2021年进行测试,您只需要使用类似以下的命令:

rake device_name="iPad (第八代)"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接