1

私はひょうたんを初めて使用し、ここで入手できるサンプルアプリ ( https://github.com/calabash/calabash-ios-example ) を使用してひょうたんを学習しようとしています。

圧縮されたプロジェクトをダウンロードし、こちらの「Xcode を使用した手動セットアップ」セクション ( https://github.com/calabash/calabash-ios ) に記載されている手順に従いました。

しかし、プロジェクトをビルドしようとすると、以下のエラーで失敗しました。

エラーを解決できなかったため、-cal スキームを削除し、Xcode プロジェクトのフレームワーク フォルダーからひょうたんフレームワークを削除し、「calabash-ios setup」オプションを使用しました。これにより、新しい -cal スキームが作成されました。しかし、-cal スキームをビルドしようとすると、以下のエラーが発生します。ビルド設定で他のリンカー フラグを確認したところ、プロジェクト フォルダーのひょうたんフレームワークに設定されています。

ひょうたんスキームなしでプロジェクトを正常にビルドできます。したがって、これはひょうたんのセットアップに問題があるようです。これを解決する方法を教えてください。

Build target LPSimpleExample-cal
Project LPSimpleExample | Configuration Debug | Destination iPhone 6 | SKD Simulator -iOS 8.0
Ld /Users/eswar/Library/Developer/Xcode/DerivedData/LPSimpleExample-gwyzlvixnflcwydwrtizzsfiwete/Build/Products/Debug-iphonesimulator/LPSimpleExample\ copy.app/LPSimpleExample\ copy normal i386
    cd "/Users/eswar/Workspace/calabash projects/calabash-ios-example-2"
    export IPHONEOS_DEPLOYMENT_TARGET=8.0
    export 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/iPhoneSimulator8.0.sdk -L/Users/eswar/Library/Developer/Xcode/DerivedData/LPSimpleExample-gwyzlvixnflcwydwrtizzsfiwete/Build/Products/Debug-iphonesimulator -F/Users/eswar/Library/Developer/Xcode/DerivedData/LPSimpleExample-gwyzlvixnflcwydwrtizzsfiwete/Build/Products/Debug-iphonesimulator -F/Users/eswar/Workspace/calabash\ projects/calabash-ios-example-2 -filelist /Users/eswar/Library/Developer/Xcode/DerivedData/LPSimpleExample-gwyzlvixnflcwydwrtizzsfiwete/Build/Intermediates/LPSimpleExample.build/Debug-iphonesimulator/LPSimpleExample-cal.build/Objects-normal/i386/LPSimpleExample\ copy.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -force_load /Users/eswar/Workspace/calabash\ projects/calabash-ios-example-2/calabash.framework/calabash -lstdc++ -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=8.0 -framework CFNetwork -framework MapKit -framework UIKit -framework Foundation -framework CoreGraphics -framework calabash -Xlinker -dependency_info -Xlinker /Users/eswar/Library/Developer/Xcode/DerivedData/LPSimpleExample-gwyzlvixnflcwydwrtizzsfiwete/Build/Intermediates/LPSimpleExample.build/Debug-iphonesimulator/LPSimpleExample-cal.build/Objects-normal/i386/LPSimpleExample\ copy_dependency_info.dat -o /Users/eswar/Library/Developer/Xcode/DerivedData/LPSimpleExample-gwyzlvixnflcwydwrtizzsfiwete/Build/Products/Debug-iphonesimulator/LPSimpleExample\ copy.app/LPSimpleExample\ copy

Undefined symbols for architecture i386:
  "_SecItemAdd", referenced from:
      -[LPSSKeychainQuery save:] in calabash(LPSSKeychainQuery.o)
  "_SecItemCopyMatching", referenced from:
      -[LPSSKeychainQuery fetchAll:] in calabash(LPSSKeychainQuery.o)
      -[LPSSKeychainQuery fetch:] in calabash(LPSSKeychainQuery.o)
  "_SecItemDelete", referenced from:
      -[LPSSKeychainQuery deleteItem:] in calabash(LPSSKeychainQuery.o)
  "_kSecAttrAccessible", referenced from:
      -[LPSSKeychainQuery save:] in calabash(LPSSKeychainQuery.o)
  "_kSecAttrAccount", referenced from:
      -[LPSSKeychainQuery query] in calabash(LPSSKeychainQuery.o)
  "_kSecAttrLabel", referenced from:
      -[LPSSKeychainQuery save:] in calabash(LPSSKeychainQuery.o)
  "_kSecAttrService", referenced from:
      -[LPSSKeychainQuery query] in calabash(LPSSKeychainQuery.o)
  "_kSecAttrSynchronizable", referenced from:
      -[LPSSKeychainQuery query] in calabash(LPSSKeychainQuery.o)
  "_kSecAttrSynchronizableAny", referenced from:
      -[LPSSKeychainQuery query] in calabash(LPSSKeychainQuery.o)
  "_kSecClass", referenced from:
      -[LPSSKeychainQuery query] in calabash(LPSSKeychainQuery.o)
  "_kSecClassGenericPassword", referenced from:
      -[LPSSKeychainQuery query] in calabash(LPSSKeychainQuery.o)
  "_kSecMatchLimit", referenced from:
      -[LPSSKeychainQuery fetchAll:] in calabash(LPSSKeychainQuery.o)
      -[LPSSKeychainQuery fetch:] in calabash(LPSSKeychainQuery.o)
  "_kSecMatchLimitAll", referenced from:
      -[LPSSKeychainQuery fetchAll:] in calabash(LPSSKeychainQuery.o)
  "_kSecMatchLimitOne", referenced from:
      -[LPSSKeychainQuery fetch:] in calabash(LPSSKeychainQuery.o)
  "_kSecReturnAttributes", referenced from:
      -[LPSSKeychainQuery fetchAll:] in calabash(LPSSKeychainQuery.o)
  "_kSecReturnData", referenced from:
      -[LPSSKeychainQuery fetch:] in calabash(LPSSKeychainQuery.o)
  "_kSecValueData", referenced from:
      -[LPSSKeychainQuery save:] 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)

同様の質問がここに投稿されており、Joshua は Xcode 5.1.1 と SDK を 7.0 にアップグレードすることを推奨していました。しかし、私はすでに Xcode 6.01 を使用しており、以下は私の SDK バージョンです。

SDK: OS X: 10.9: (13F26) iOS: 8.0: (12A365)

iOS シミュレーター: 7.1: (11D167) 8.0: (12A365)

その他の情報:

xcodeのインストール場所 /Applications/Xcode.app/Contents/Developer

xcode バージョン Xcode 6.0.1 ビルド バージョン 6A317

ひょうたんバージョン 0.11.0

calabash.frameworkバージョン 0.11.0

4

1 に答える 1

4

不足しているシンボルのリストは、Security.framework へのリンクを忘れたことを示しています。

于 2014-11-03T19:47:07.687 に答える