Xcodeビルド時に「Undefined Symbol: method descriptor for Swift.CustomStringConvertible.des…」

Unity製のアプリをXcodeビルド時にみたことないエラーが大量に。

エラー100件…

エラー内容↓
Showing Recent Issues
Undefined symbol: method descriptor for Swift.CustomStringConvertible.description.getter : Swift.String

Undefined symbol: protocol descriptor for Swift.CustomStringConvertible

Undefined symbol: __swiftEmptyDictionarySingleton

Undefined symbol: _swift_errorRelease

Undefined symbol: method descriptor for Swift.Error._userInfo.getter : Swift.AnyObject?

Undefined symbol: method descriptor for Swift.Error._code.getter : Swift.Int

Undefined symbol: method descriptor for Swift.Error._getEmbeddedNSError() -> Swift.AnyObject?

Undefined symbol: (extension in Foundation):Swift.Error< where A: Foundation.CustomNSError>._code.getter : Swift.Int

Undefined symbol: protocol conformance descriptor for Swift.Int : Swift.FixedWidthInteger in Swift

Undefined symbol: type metadata for Any

Undefined symbol: type metadata for Swift.Int

Undefined symbol: method descriptor for Foundation._ObjectiveCBridgeableError.init(_bridgedNSError: __shared __C.NSError) -> A?

Undefined symbol: base conformance descriptor for Foundation._BridgedStoredNSError: Swift.Hashable

Undefined symbol: (extension in Foundation):Foundation._BridgedStoredNSError.errorCode.getter : Swift.Int

Undefined symbol: (extension in Foundation):Foundation._BridgedStoredNSError._getEmbeddedNSError() -> Swift.AnyObject?

Undefined symbol: base conformance descriptor for Foundation._BridgedStoredNSError: Foundation.CustomNSError

Undefined symbol: method descriptor for Foundation._BridgedStoredNSError.init(_nsError: __C.NSError) -> A

Undefined symbol: associated conformance descriptor for Foundation._BridgedStoredNSError.Code: Swift.RawRepresentable

Undefined symbol: associated conformance descriptor for Foundation._ErrorCodeProtocol._ErrorType: Foundation._BridgedStoredNSError

Undefined symbol: protocol descriptor for Foundation._ErrorCodeProtocol

Undefined symbol: _swift_bridgeObjectRetain

Undefined symbol: associated conformance descriptor for Swift.ExpressibleByStringLiteral.StringLiteralType: Swift._ExpressibleByBuiltinStringLiteral

Undefined symbol: method descriptor for Foundation.CustomNSError.errorCode.getter : Swift.Int

Undefined symbol: (extension in Foundation):Foundation._BridgedStoredNSError.hash(into: inout Swift.Hasher) -> ()

Undefined symbol: _swift_getObjCClassFromMetadata

Undefined symbol: associated type descriptor for _ErrorType

Undefined symbol: method descriptor for Swift.ExpressibleByExtendedGraphemeClusterLiteral.init(extendedGraphemeClusterLiteral: A.ExtendedGraphemeClusterLiteralType) -> A

Undefined symbol: protocol descriptor for Swift.ExpressibleByUnicodeScalarLiteral

Undefined symbol: (extension in Foundation):Foundation._BridgedStoredNSError.errorUserInfo.getter : [Swift.String : Any]

Undefined symbol: method descriptor for Foundation._BridgedStoredNSError._nsError.getter : __C.NSError

Undefined symbol: base conformance descriptor for Swift.ExpressibleByStringLiteral: Swift.ExpressibleByExtendedGraphemeClusterLiteral

Undefined symbol: (extension in Foundation):Swift.Error< where A: Foundation.CustomNSError>._domain.getter : Swift.String

Undefined symbol: (extension in Foundation):Foundation._BridgedStoredNSError.init(_bridgedNSError: __C.NSError) -> A?

Undefined symbol: method descriptor for Swift.ExpressibleByStringLiteral.init(stringLiteral: A.StringLiteralType) -> A

Undefined symbol: protocol witness table for Swift.String : Swift._ExpressibleByBuiltinExtendedGraphemeClusterLiteral in Swift

Undefined symbol: protocol witness table for Swift.String : Swift._ExpressibleByBuiltinStringLiteral in Swift

Undefined symbol: base conformance descriptor for Foundation.CustomNSError: Swift.Error

Undefined symbol: _swift_unknownObjectRetain

Undefined symbol: static Swift._DictionaryStorage.allocate(capacity: Swift.Int) -> Swift._DictionaryStorage<A, B>

Undefined symbol: protocol descriptor for Foundation.CustomNSError

Undefined symbol: _swift_initStaticObject

Undefined symbol: Swift._findStringSwitchCaseWithCache(cases: [Swift.StaticString], string: Swift.String, cache: inout Swift._OpaqueStringSwitchCache) -> Swift.Int

Undefined symbol: type metadata for Swift.StaticString

Undefined symbol: _swift_getWitnessTable

Undefined symbol: Swift.Hasher._combine(Swift.UInt) -> ()

Undefined symbol: Swift._StringObject.rawBits.getter : (Swift.UInt64, Swift.UInt64)

Undefined symbol: method descriptor for static Swift._ObjectiveCBridgeable._unconditionallyBridgeFromObjectiveC(A._ObjectiveCType?) -> A

Undefined symbol: associated type descriptor for ExtendedGraphemeClusterLiteralType

Undefined symbol: __swiftEmptyArrayStorage

Undefined symbol: associated type descriptor for UnicodeScalarLiteralType

Undefined symbol: protocol descriptor for Swift._HasCustomAnyHashableRepresentation

Undefined symbol: protocol descriptor for Swift.ExpressibleByExtendedGraphemeClusterLiteral

Undefined symbol: _swift_errorRetain

Undefined symbol: method descriptor for Swift.RawRepresentable.init(rawValue: A.RawValue) -> A?

Undefined symbol: method descriptor for static Swift._ObjectiveCBridgeable._conditionallyBridgeFromObjectiveC(_: A._ObjectiveCType, result: inout A?) -> Swift.Bool

Undefined symbol: Swift.Hasher.init(_seed: Swift.Int) -> Swift.Hasher

Undefined symbol: method descriptor for static Swift._ObjectiveCBridgeable._forceBridgeFromObjectiveC(_: A._ObjectiveCType, result: inout A?) -> ()

Undefined symbol: protocol descriptor for Swift._ObjectiveCBridgeable

Undefined symbol: value witness table for Builtin.Int32

Undefined symbol: base conformance descriptor for Swift._SwiftNewtypeWrapper: Swift._HasCustomAnyHashableRepresentation

Undefined symbol: __swift_FORCE_LOAD_$_swiftCompatibilityDynamicReplacements

Undefined symbol: static (extension in Foundation):Foundation._BridgedStoredNSError.== infix(A, A) -> Swift.Bool

Undefined symbol: protocol descriptor for Swift.ExpressibleByStringLiteral

Undefined symbol: base conformance descriptor for Swift._SwiftNewtypeWrapper: Swift.RawRepresentable

Undefined symbol: (extension in Foundation):Foundation._BridgedStoredNSError.init(_: A.Code, userInfo: [Swift.String : Any]) -> A

Undefined symbol: protocol descriptor for Swift._SwiftNewtypeWrapper

Undefined symbol: method descriptor for Swift.Error._domain.getter : Swift.String

Undefined symbol: __swift_FORCE_LOAD_$_swiftCompatibility50

Undefined symbol: protocol descriptor for Swift.RawRepresentable

Undefined symbol: method descriptor for static Foundation.CustomNSError.errorDomain.getter : Swift.String

Undefined symbol: (extension in Foundation):Swift.String._bridgeToObjectiveC() -> __C.NSString

Undefined symbol: Swift.String.hashValue.getter : Swift.Int

Undefined symbol: protocol descriptor for Swift.Equatable

Undefined symbol: base conformance descriptor for Swift.Hashable: Swift.Equatable

Undefined symbol: _swift_arrayDestroy

Undefined symbol: _swift_retain

Undefined symbol: protocol witness table for Swift.String : Swift.Hashable in Swift

Undefined symbol: (extension in Swift):Swift.Error._userInfo.getter : Swift.AnyObject?

Undefined symbol: protocol descriptor for Swift.Hashable

Undefined symbol: associated conformance descriptor for Swift.ExpressibleByUnicodeScalarLiteral.UnicodeScalarLiteralType: Swift._ExpressibleByBuiltinUnicodeScalarLiteral

Undefined symbol: method descriptor for Foundation.CustomNSError.errorUserInfo.getter : [Swift.String : Any]

Undefined symbol: associated type descriptor for StringLiteralType

Undefined symbol: static (extension in Foundation):Swift.String._conditionallyBridgeFromObjectiveC(_: __C.NSString, result: inout Swift.String?) -> Swift.Bool

Undefined symbol: static (extension in Foundation):Swift.String._forceBridgeFromObjectiveC(_: __C.NSString, result: inout Swift.String?) -> ()

Undefined symbol: protocol witness table for Swift.String : Swift._ExpressibleByBuiltinUnicodeScalarLiteral in Swift

Undefined symbol: method descriptor for Swift.Hashable.hashValue.getter : Swift.Int

Undefined symbol: type metadata accessor for Swift._ContiguousArrayStorage

Undefined symbol: protocol descriptor for Swift.Error

Undefined symbol: method descriptor for Swift._ObjectiveCBridgeable._bridgeToObjectiveC() -> A._ObjectiveCType

Undefined symbol: method descriptor for Swift.RawRepresentable.rawValue.getter : A.RawValue

Undefined symbol: _swift_allocObject

Undefined symbol: associated conformance descriptor for Foundation._BridgedStoredNSError.Code: Foundation._ErrorCodeProtocol

Undefined symbol: base conformance descriptor for Foundation._ErrorCodeProtocol: Swift.Equatable

Undefined symbol: static Swift._SetStorage.resize(original: Swift.__RawSetStorage, capacity: Swift.Int, move: Swift.Bool) -> Swift._SetStorage<A>

Undefined symbol: static (extension in Foundation):Swift.Set._unconditionallyBridgeFromObjectiveC(__C.NSSet?) -> Swift.Set<A>

Undefined symbol: associated type descriptor for Code

Undefined symbol: Swift.ELEMENT_TYPE_OF_SET_VIOLATES_HASHABLE_REQUIREMENTS(Any.Type) -> Swift.Never

Undefined symbol: method descriptor for Swift.Hashable.hash(into: inout Swift.Hasher) -> ()

Undefined symbol: associated conformance descriptor for Swift.ExpressibleByExtendedGraphemeClusterLiteral.ExtendedGraphemeClusterLiteralType: Swift._ExpressibleByBuiltinExtendedGraphemeClusterLiteral

Undefined symbol: Swift.Hasher._finalize() -> Swift.Int

なんのこっちゃと思いググったら、あった。

参考サイト:https://github.com/mxcl/PromiseKit/issues/1059
m(_ _)m

この手順どおりに、作ったプロジェクトファイル内に、swiftファイルをただ作る。

そして作る際に、「Create Bridging Header」を選択

下記のように空のswiftファイルが追加されていればOK

ビルドしてみると、、、、!通った!

あっぱれ!

swift2.3 シェア機能で、「Cannot assign value of type ‘(_, Bool, Array<_>!, NSError!) -> ()’ to type ‘UIActivityViewControllerCompletionWithItemsHandler?’」エラーが

swift2.3で友達いないけど、友達にシェアする機能を実装してたら、

こんなエラーが。。w


Cannot assign value of type '(_, Bool, Array<_>!, NSError!) -> ()' to type 'UIActivityViewControllerCompletionWithItemsHandler?'

いままでつい最近までエラーじゃなかったのに、xcode8&swift2.3に更新したからか。。

UIActivityViewControllerでシェア機能を実装していると、
皆さんぶつかると思うので対応方法。
英語の記事はめちゃくちゃあったのですが、何故か日本の記事はなかったので一応。


activityVC.completionWithItemsHandler = { (s: String?, complete: Bool, items: [AnyObject]?, err:NSError?) -> Void in if (complete) { printf("完了") }else{ printf("失敗") } }

completionWithItemsHandlerの引数を調整すればOKでした!

これでtwitterfacebook等に投稿したかどうか判定できる!

やっほい

xcode8 swift2.3でRealmSwiftを使う際にpod installで下記エラーがでた

最近xcodeをxcode8にして、色々かわりすぎて戸惑いを隠せない、
小心者筆者です。。

いままでxcode7.3かな?で動かしていたRealm Swiftが使えなくなったのでメモ。
前提として、xcode8でswift2.3を使った場合です。

Podfileで下記のようにrealmをインストールしていたのですが


pod 'RealmSwift'

pod install するとっこのようなエラー


$ pod install /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/rbconfig.rb:213: warning: Insecure world writable dir /Applications/Cocos/tools/ant/bin in PATH, mode 040777 Analyzing dependencies Pre-downloading: `RealmSwift` from `https://github.com/realm/realm-cocoa.git`, branch `master`, submodules `true` [!] Unable to satisfy the following requirements: - `Realm (= 2.0.2)` required by `RealmSwift (2.0.2)` None of your spec sources contain a spec satisfying the dependency: `Realm (= 2.0.2)`. You have either: * out-of-date source repos which you can update with `pod repo update`. * mistyped the name or version. * not added the source repo that hosts the Podspec to your Podfile. Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.

で、下記で解決


pod 'Realm', :git => 'https://github.com/realm/realm-cocoa.git', :branch => 'master', :submodules => true pod 'RealmSwift', :git => 'https://github.com/realm/realm-cocoa.git', :branch => 'master', :submodules => true

はいそれだけ。っす

storyboradのsegueに紐付けないViewController(画面)に遷移する方法&引数も渡せます!

タイトルの通り、
storyboradのsegueに紐付けないViewController(画面)に、
遷移する方法。。+引数も渡せます!

自作のポップアップ画面等を実装する際に便利なので、
忘れないようにφ(..)メモメモ


// ストーリーボードのMain.storyboardファイルを指定 let storyboard = UIStoryboard(name: "Main", bundle: nil) // ストーリーボードで指定した「CustomPopupViewController」を指定 let vc = storyboard.instantiateViewControllerWithIdentifier("CustomPopupViewController") as! CustomPopupViewController // 予め、CustomPopupViewControllerで宣言してあるpopupNameメンバ変数に値を渡す! vc.popupName = hogeName

味噌は、


as! CustomPopupViewController

ちゃんとクラス名でaliasしてあげないと、


vc.popupName = hogeName

で、引数がわたせないので注意!

swiftで画質を担保したままUIImageをリサイズ

粗い画像

UIImageを高画質のままリサイズするメソッド

extension UIImage{

    // 画質を担保したままResizeするクラスメソッド.
    func ResizeUIImage(width : CGFloat, height : CGFloat)-> UIImage!{

        let size = CGSize(width: width, height: height)

        UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
        var context = UIGraphicsGetCurrentContext()

        self.drawInRect(CGRectMake(0, 0, size.width, size.height))
        var image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return image
    }

}

使い方


// 80x80にリサイズだけど画像も高画質のまま! let resizeSelectedImage = UIImage(named: "hoge.png")!.ResizeUIImage(80, height: 80)

綺麗な画像のままリサイズできました!

GameCenterのスコアボードを独自UI等で利用(swift版)

gamecenter アイコン

GameCenterのスコアボードを、swiftを使って独自UI等で利用する方法を〜〜〜φ(..)メモメモ

出来合いのスコアボードを自分のアプリデザインに合わせた形で表示したかったので、
GameCenterのスコアを取得し好きな方法で使ってみた。



var leaderboardRequest: GKLeaderboard = GKLeaderboard() leaderboardRequest.playerScope = .Global leaderboardRequest.timeScope = .Today leaderboardRequest.identifier = "itunes connectで指定したleaderboardID" leaderboardRequest.range = NSMakeRange(1, 10) // Request leaderboardRequest.loadScoresWithCompletionHandler{ (scores, error) -> Void in if error != nil { println("Error \(error))") } else if scores != nil { println("leaderboards \(scores)") // scoresという情報に配列で格納されている } }

scoresは、GKScoreという型で配列で入っているので、
TableViewのデータとして使う事も柔軟に対応できました!

デバッグログを確認すればわかりますが、


println("\(scores.player.alias)") // プレイヤー名 println("\(scores.value)") // スコア

上記のように、プレイヤーの名前や、スコアを取得できます。

参考にさせて頂いたサイト

http://iorisomo.hatenablog.com/entry/2014/04/09/193007

http://stackoverflow.com/questions/28519503/gkleaderboard-localplayerscore-returns-nil-on-ios-8-1-3

http://qiita.com/moco3/items/d9c2a8956d4377bad264

storyboard等で利用しているラベルのフォントを一括で変更(swift版)

swift フォント一括指定

swiftのコードで、ラベルのフォントを一括で変更

AppDelegate.swift


〜省略〜 @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. // 一括でLabelのフォントを変更 UILabel.appearance().font = UIFont(name: "Helvetica Bold Oblique", size: 18.0) 〜省略〜

もちろん UILabel以外も可能!

また、”Helvetica Bold Oblique” みたいに、

コードから呼び出す際に指定するフォント名の確認は下記で可能です!

iphoneアプリをappstoreに申請する際に、launchImage周りでエラーがでる場合

iphoneアプリをappstoreに申請する際に、launchImage周りでエラーがでる場合に、
エラーがでる事がある。

xcodeのバージョンは、xcode7.2.1

xcodeのLaunchImageは、レイアウトファイルをちゃんと指定しているのなになぜか、、
色々調べたところ。

通常は画像ファイルか、storyboardファイルの指定の必要があるが、
昔に作ったアプリなので、storyboardの拡張子ではなく、xibファイルの指定だったからのようでした。

xcode

LaunchScreen.xib → LaunchScreen.storyboard

これをxibからstoryboardで作り直しして指定したら、
無事解決!!!
同じようなシチュエーションの人で、参考なれば嬉しいです!

swiftあるある

間違えやすい系

int型を文字列として表示する際…


var intHoge = 100 label.text = String(intHoge) // 100と表示 var intHoge = -100 label.text = String(intHoge) // マイナスだと表示されない label.text = intHoge.description

挙動系

これを実行すると


println("評価ノード: \(evalX) \(evalY) \(boardScores[evalX][evalY])")

シミュレータ(iphone5s)では…


評価ノード: 5 5 5 評価ノード: 5 3 5 評価ノード: 3 5 5 評価ノード: 5 5 5 評価ノード: 5 3 5 評価ノード: 3 5 5

実機(iphone5で実行)では…


\350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 3 4 3 \350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 5 4 5 \350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 6 4 -5 \350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 7 4 -5 \350\251評\344\276価\343\203ノ\343\203ー\343\203ド\357\274: 4 5 5 評価ノード: 1 2 -20

…そもそも日本語を使うなと言われそうですが、日本語がおかしくなる。そして僕の日本語もおかしい。。