【问题标题】:Selecting the iOS Simulator device type with RubyMotion使用 RubyMotion 选择 iOS 模拟器设备类型
【发布时间】:2014-12-04 10:53:29
【问题描述】:

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

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

PS。我知道有办法强制非视网膜 iPhone 和启动 iPad 模拟器而不是 iPhone 模拟器的方法,但我有兴趣在 5/6/6+ 之间进行选择。

谢谢

【问题讨论】:

    标签: ios iphone ios8 ios-simulator rubymotion


    【解决方案1】:

    我发现最简单的方法是将以下内容添加到 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,它将打开该设备的模拟器。

    【讨论】:

      【解决方案2】:

      运行 /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)

      如果你想以 IOS 7.1 (You must set app.deployment_target = '7.1') 运行 iPhone 5s,你可以像
      rake device_name="iPhone 5s (971DB3D4-7FF4-4005-A11D-11541ED79193)"

      【讨论】:

      • 谢谢,这正是我想要的。但是将设备名称设置为device_name="iPhone 5s (F1B3E385-4031-4858-8FD0-50D5F709893A)" 对我不起作用(在这种情况下它总是恢复为 iPhone 4s)。虽然只指定设备名称,如device_name="iPhone 5s",但效果很好。
      • simctl 现在位于 /Applications/Xcode.app/Contents/Developer/usr/bin/simctl
      • 在较新版本的 Xcode(例如 Xcode 11)中,使用:xcrun simctl list 获取设备列表。
      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        在 2021 年测试,你只需要使用类似的东西:

        rake device_name="iPad (8th generation)"

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-03-07
          • 1970-01-01
          • 2015-03-03
          • 1970-01-01
          • 2014-06-16
          • 2021-03-28
          • 2013-05-24
          • 2020-06-17
          相关资源
          最近更新 更多