问题
I got a link error when trying to run a ..-cal target of calabash-ios project.
The error is:
`Ld /Users/balaiyan/Library/Developer/Xcode/DerivedData/delete-fdnlnapawhvvmpgxjbbzoopkiefe/Build/Products/Debug-iphonesimulator/delete-cal.app/delete-cal normal i386 cd /Users/balaiyan/dev/automation/apps/delete setenv IPHONEOS_DEPLOYMENT_TARGET 6.1 setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk -L/Users/balaiyan/Library/Developer/Xcode/DerivedData/delete-fdnlnapawhvvmpgxjbbzoopkiefe/Build/Products/Debug-iphonesimulator -F/Users/balaiyan/Library/Developer/Xcode/DerivedData/delete-fdnlnapawhvvmpgxjbbzoopkiefe/Build/Products/Debug-iphonesimulator -F/Users/balaiyan/dev/automation/apps/delete -filelist /Users/balaiyan/Library/Developer/Xcode/DerivedData/delete-fdnlnapawhvvmpgxjbbzoopkiefe/Build/Intermediates/delete.build/Debug-iphonesimulator/delete-cal.build/Objects-normal/i386/delete-cal.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -force_load /Users/balaiyan/dev/automation/apps/delete/calabash.framework/calabash -lstdc++ -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.1 -framework Security -framework CFNetwork -framework UIKit -framework Foundation -framework CoreGraphics -framework calabash -o /Users/balaiyan/Library/Developer/Xcode/DerivedData/delete-fdnlnapawhvvmpgxjbbzoopkiefe/Build/Products/Debug-iphonesimulator/delete-cal.app/delete-cal Undefined symbols for architecture i386: "_kSecAttrSynchronizableAny", referenced from: -[LPSSKeychainQuery query] in calabash(LPSSKeychainQuery.o) ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) `
Got the above error after solving the one in picture below
I am doing first time calabash setup for iOS at my Home iMac, that runs on
OS X Lion,
XCode version 4.6.2,
updated ruby to ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-darwin12.5.0]
While installing ruby found this on terminal
ruby-2.0.0-p451 - #generating default wrappers........
Updating certificates in '/etc/openssl/cert.pem'.
mkdir: /etc/openssl: Permission denied
apples-iMac:~ balaiyan$ rvm osx-ssl-certs status all
Certificates for /etc/openssl/cert.pem: Up to date.
not sure if this is creating the problem.
I had previously done these steps on a office Macbook pro running Mavericks, and didnt find any problem. Does it mean the latest calabash-ios has any backwards compatibility issue, or is it something to do with my keychain. Need some help.
回答1:
The current version of calabash, 0.9.169, contains iOS 7 symbols. One of which is kSecAttrSynchronizableAny
.
To use this version, the base SDK must be at least 7.0. The minimum deployment target can still be as low as 5.1.1.
The last version that support a base SDK of 6.0 was 0.9.167.
0.9.168 was released in March. We decided to drop support for base SDK < 7.0 because Apple stopped accepting AppStore submissions that used base SDK < 7.0.
Can you upgrade your Xcode to 5.1.1 and bump your base SDK to 7.0?
If you must downgrade your gem version, please make sure to replace your existing calabash.framework and link in the version that is compatible with your version.
- https://github.com/calabash/calabash-ios/wiki/B1-Updating-your-Calabash-iOS-version
来源:https://stackoverflow.com/questions/25548283/calabash-ios-link-error-ksecattrsynchronizableany-referenced-from-lpsske