diff --git a/lib/motion/project/template/ios.rb b/lib/motion/project/template/ios.rb index df78543a..4191d15b 100644 --- a/lib/motion/project/template/ios.rb +++ b/lib/motion/project/template/ios.rb @@ -252,11 +252,22 @@ namespace :profile do ENV['__USE_DEVICE_INT__'] = '1' Rake::Task['build:simulator'].invoke + target = ENV['target'] || App.config.sdk_version + family_int = + if family = ENV['device_family'] + App.config.device_family_int(family.downcase.intern) + else + App.config.device_family_ints[0] + end + retina = ENV['retina'] + device_name = ENV["device_name"] + device_name = App.config.device_family_string(device_name, family_int, target, retina) + plist = App.config.profiler_config_plist('iPhoneSimulator', ENV['args'], ENV['template'], IOS_SIM_INSTRUMENTS_TEMPLATES) plist['com.apple.xcode.simulatedDeviceFamily'] = App.config.device_family_ints.first plist['com.apple.xcode.SDKPath'] = App.config.sdk('iPhoneSimulator') plist['optionalData']['launchOptions']['architectureType'] = 0 - plist['deviceIdentifier'] = App.config.sdk('iPhoneSimulator') + plist['deviceIdentifier'] = App.config.profiler_config_device_identifier(device_name, target) App.profile('iPhoneSimulator', plist) end diff --git a/lib/motion/project/xcode_config.rb b/lib/motion/project/xcode_config.rb index 3cb3311b..f3c43c64 100644 --- a/lib/motion/project/xcode_config.rb +++ b/lib/motion/project/xcode_config.rb @@ -336,6 +336,19 @@ EOS } end + def profiler_config_device_identifier(device_name, target) + if xcode_version[0] >= '6.0' + re = /#{device_name} \(#{target} Simulator\) \[(.+)\]/ + `/usr/bin/xcrun instruments -s 2>&1`.strip.split("\n").each { |line| + if m = re.match(line) + return m[1] + end + } + else + App.config.sdk('iPhoneSimulator') + end + end + def pkginfo_data "AAPL#{@bundle_signature}" end