-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
adds 64 bitness to calabash.framework #37
adds 64 bitness to calabash.framework #37
Conversation
* implements a new strategy for creating calabash.framework using a Makefile + framework build script - could not create 64-bit slices using the existing strategy. * the new strategy uses Debug configuration with NO symbol stripping which will result in better stack traces on crashes. * Xcode 5.1 cannot find UIGetScreenImage so LPScreenshotRoute2 will be removed in a later commit.
missing symbol UIGetScreenImage
@@ -20,7 +20,7 @@ | |||
#define ISO_TIME_WITH_TIMEZONE_FORMAT ISO_TIME_FORMAT @"Z" | |||
//printf formats. | |||
#define ISO_TIMEZONE_UTC_FORMAT @"Z" | |||
#define ISO_TIMEZONE_OFFSET_FORMAT @"%+.2d%.2d" | |||
#define ISO_TIMEZONE_OFFSET_FORMAT @"%+.2ld%.2ld" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is this change: @jmoody
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see my comment on the pull request.
In this case, I have to use %ld because I want the leading zeros.
re: ObjC autoboxing + format strings Short answer: this is part of the port from 32-bit to 32-bit + 64-bit Long answer Xcode 5.1 introduces and/or enforces more type checking for primitive types like NSUInteger and NSInteger. This is because in some environments NSInteger evals to 32-bit (int) and in other environments it will eval to 64-bit (long int).
I prefer option 2 because:
This is what I have been doing my own code. |
got it - just me not keeping up. Go for it. |
adds 64 bitness to calabash.framework
Motivation
calabash/calabash-ios#313 - thanks @daudt
_IMPORTANT_ when merging you must also merge calabash/calabash-ios#336
The target iOS version was iOS 4 - a version that we dropped support for some time ago.
This pull request sets the minimum iOS version at 5.1.1 and builds the calabash.framework with an arm64 and x86_64 slice.
In order to upgrade the min iOS version and include 64-bit slices, I needed to implement a new strategy for building the framework.
I spent a fair amount of time exploring the next Xcode version and the consequences of bumping the min iOS version. All seems well. I was able to execute tests using that Xcode version against iOS 5.1.1, 6.1, and 7.0.* devices as well as on the test cloud. There were hiccups testing against the simulator, but those hiccups exist independent of the state of the calabash.framework.
Testing
Xcode 5.0.2
Briar
NO_LAUNCH=1 ==> Manually Launching ==> UIA not available
NO_LAUNCH=0 ==> Launching with Instruments ==> ==> UIA available
XTC
ruby version smoke testing
LPSimpleExample