You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Let's have Calabash Ruby and UITest sanity check the CFBundleExecutable for compatibility with the targeted device/sim (found with instruments -s devices).
I've had too many support cases where it looks like Calabash is unable to launch but really the app can't run on the desired device.
The text was updated successfully, but these errors were encountered:
With respect to simulators, I believe this problem can only occur in the CoreSimulator environment, but I might be wrong about that.
Sam and I paired on this and could reproduce using $ simctl
You can install an arm binary on the simulator, but it will not launch. Simulator logs indicate that there is an architecture problem.
You can install a x86_64 binary (built for iPhone 6) on an iPhone 4S simulator (i386), but it will not launch. The simulator logs indicate only that the app has crashed.
From the command line, it is difficult to generate a non-FAT binary; we had to use Xcode + Build for Active Architecture Only build setting. Build for Active Architecture Only is the default in Xcode 6 and possibly Xcode 5. We could not coerce a non-FAT binary from the command line.
We can use lipo -info < path to binary > to see the architectures.
We can use lipo < path to binary > -verify_arch <arch> to get back a correct exit code via $?.
There is no programmatic way determine if a simulator is i386 or x86_64. Our only option is maintain a list of i386 and x86_64 simulators.
We can inspect the Info.plist to find the name of the target executable - CFBundleExecutable
If we build for the iPhone 4s from Xcode, we can install on the iPhone 6 simulator.
Quoting @krukow
The text was updated successfully, but these errors were encountered: