如何设置默认设备以在Ionic中模拟?

时间:2016-02-09 15:45:13

标签: ios angularjs cordova ionic-framework emulation

我正在使用Ionic构建iOS应用。现在我正在测试它在iPad 2中的表现,但这样做需要我经常需要写:

ionic emulate ios --target="iPad-2"

有没有办法在ionic.project文件或其他地方硬编码,所以我可以手动停止这样做?感谢

1 个答案:

答案 0 :(得分:2)

我正在经历同样的问题,即使这个问题已经有一年了,但这是我通过谷歌获得的第一件事,却无法在其他任何地方找到答案。这就是我的所作所为,因为我不想每次都使用--target =“iPhone-7”。

要清楚任何想要在特定ios设备上运行的人,请使用以下内容:

ionic run ios --target="iXXX-X"

iXXX-X将是您从运行中获得的名称之一     ios-sim showdevicetypes 例如:

ionic run ios --target="iPhone-7"

我希望有一个解决方案让iPhone-7成为我的默认设置,因此运行以下内容将针对iPhone-7(我原来的默认目标是iPhone-SE):

ionic run ios

似乎默认是硬编码的,因此必须在代码中进行更改。 我找到了这个文件:/platforms/ios/cordova/lib/run.js

在那里你会找到一个名为deployToSim的函数,我按如下方式更改了它:

function deployToSim(appPath, target) {
  // Select target device for emulator. Default is 'iPhone-6'
  if (!target) {
    return require('./list-emulator-images').run()
      .then(function(emulators) {
        if (emulators.length > 0) {
          target = emulators[0];
        }
        emulators.forEach(function(emulator) {
          // this is the original condition
          // if (emulator.indexOf('iPhone') === 0)  
          // change "iPhone" to the specific model you want, in my case it's iPhone-7
          // Notice the comma in iPhone7, without comma it will take iPhone-7-plus instead
          if (emulator.indexOf('iPhone-7,') === 0) {
            target = emulator;
          }
        });
        events.emit('log', 'No target specified for emulator. Deploying to ' + target + ' simulator');
        return startSim(appPath, target);
      });
  } else {
    return startSim(appPath, target);
  }
}