Description
The run command is confused by multiplexing. If there is a project whose product is a single bundled iOS app (so, multiplexed over 2 architectures plus the aggregate for a total of 3 products), the output of "qbs run" without any explicit architecture will show:
ERROR: Ambiguous use of command 'run': No product given, but project has more than one runnable product. Use the '--products' option with one of the following products: Cocoa Touch Application Cocoa Touch Application Cocoa Touch Application
Passing an explicit -p option with the name of the product DOES "resolve" the ambiguity, but unfortunately it does not select the correct multiplex instance (which in our case should be the aggregate), probably just selecting whatever the first one is in memory.
This somewhat relates to QBS-704 (making the run command extensible), but for now we need some way to select which variant actually gets run.
My suggestion would be to use the same strings as are displayed with the "The following products could not be built for configuration default" error message:
Cocoa Touch Application {"architecture":"x86","buildVariant":"debug"} Cocoa Touch Application {"architecture":"x86_64","buildVariant":"debug"} Cocoa Touch Application
Since the "bare" product name would select the aggregate instance, we'd already be in good shape. Even better would be fixing the default so that multiplex instances aren't initially considered as run candidates when determining if the default is ambiguous, if the product has an aggregate.
Attachments
Issue Links
- relates to
-
QBS-704 Make the run command extensible
- Open
For Gerrit Dashboard: QBS-1207 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
213562,2 | Allow running multiplexed iOS application bundles via `qbs run` | 1.10 | qbs/qbs | Status: MERGED | +2 | 0 |
506466,5 | Use full product names in command line frontend | master | qbs/qbs | Status: MERGED | +2 | -1 |