osx_image: xcode9
. See https://t.co/SGYDkioDzk for details.-enable-bridging-pch
をONにして開発している方いらっしゃいますか?#include <rhetoric/rhetoric.h>
しているところで探索されるファイルがoliview/ext/cpp-rhetoric/src
になってしまうんですが#include <rhetoric/rhetoric.h>
と違うファイルシステム上で違うファイルを見ている可能性が出てしまう.framework
だとバイナリとヘッダが成果物としてパッケージングされて、それらを使うから起きない問題なのですね。$WORKSPACE_HEADER_SEARCH_PATH
みたいな変数を持っていて、それをHEADER_SEARCH_PATHに含めることができれば$WORKSPACE_HEADER_SEARCH_PATH
から検索しておけば、 B単体では Bの中のA を参照しつつ、 Dの作業時は、 BのサブモジュールとしてのAはチェックアウトせずにおいて、 Dのほうでもってきた A を変数経由で見つけてくれればgnu make
とかの文化だと、実際、 $INCLUDES
みたいな環境変数をつかってそういうことが制御できる。../../A/src
みたいな感じでリポジトリの外をみるように設定しておくか、。。HEADER_SEARCH_PATHS
に含まれる$BUILD_DIR/include
あたりにコピーする様にするとか。HEADER_SEARCH_PATHS
に含まれる$BUILD_DIR/include
はワークスペース内で共通になると思うので、Aのターゲットをちゃんと作れればうまくいきそうな気がします。bbb
とccc
のサブモジュールaaa
にアクセスできないみたい。libbbb.a
にaaa.o
とかも含まれなくなる。bbb
とccc
のサブモジュールaaa
にアクセスできないみたい。 ~/.gitconfig
に以下を追加することで、gitが常にhttpsでgithub.comへアクセスする様に指定できることを知った。 [url "https://github.com/"] insteadOf = git://github.com/ insteadOf = git@github.com: insteadOf = github.com:
(edited)SWIFT_REPORT_ERRORS_TO_DEBUGGER
ってのがXcode 9 beta 4で追加されてる。-Xfrontend -report-errors-to-debugger
になるぽい。 https://github.com/apple/swift/blob/master/include/swift/Option/FrontendOptions.td#L297-L298
def report_errors_to_debugger : Flag<["-"], "report-errors-to-debugger">, HelpText<"Invoke the debugger hook on fatalError calls">;
SWIFT_VERSION
はプロジェクト設定で固定されてしまうから、ブランチを分けるしか無いよね。// swiftlint:disable …
を入力しようとすると高確率でXcode 9 beta 4が固まる Hi! Sorry for bothering but I don't know where else to ask. Could you recommend a good font for displaying Japanese characters in Xcode?
I was talking about Japanese as a part of code (e.g. in comments or string literals). I noticed that the default font (Menlo) displays all lines with at least 1 Japanese character in a strange way, like they're higher than they should be. I tried to search for some font that maybe Japanese developers use that could display correctly both ASCII symbols and Japanese.
Profile
がテンプレートに含まれていたけど、最近は含まれなくなったね。Instrumentsに必要なビルド設定の資料を以前探したけど、公式に書かれたものは見つけられなかった。$ sample ${SourceKitServiceのPID}
の結果で radar バグリポート投げればどこで詰まっているか調べてくれるかもしれないですね。public class A { public class func f() { B.f() } } class B { private class C { var this: C? = nil lazy var number: Int = { var local: C? = self let count = 0 while let temp = local?.this { local = temp } return count }() func f() -> C { if number == 0 { return self } print(number) return self } } class func f() { let _ = C().f() } }
print()
が影響しているのとかすごく謎public class A { public class func f() { B().f() } } class B { private class C { var this: C? = nil lazy var number: Int = { var local: C? = self let count = 0 while let temp = local?.this { local = temp } return count }() func f() -> C { if number == 0 { return self } print(number) return self } } func f() { C().f() } }
public class A { public func f() { B().f() } } class B { class C { var this: C? = nil lazy var number: Int = { var local: C? = self let count = 0 while let temp = local?.this { local = temp } return count }() func f() -> C { if number == 0 { return self } print(number) return self } } func f() { C().f() } }
(edited)class func
は関係ないswift package generate-xcodeproj
で作成したプロジェクトだからだろうか?hfvc
で行ける以上に楽なファイル移動ないと思うswift-3.1.1-RELEASE
ツールチェインはXcode 8.3が入ってないと使えないのね…xcodeproj
からxcworkspace
へ移すと、とりあえずそのプロジェクトへ依存するワークスペースでは落ちなくなる。$ swift -version Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2) Target: x86_64-apple-macosx10.9
defaults write https://t.co/vp7sgv3Eck.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively -bool YES
https://t.co/n6Lhv0v9IH
これ気になる https://twitter.com/usagimaruma/status/938062738550427653
リリースノートが間違ってて、正しい試し方は defaults write com.apple.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively -bool NO
らしいよ。 https://twitter.com/rballard/status/938216933303885824 (edited)> [09:40:02]: --- Successfully uploaded package to iTunes Connect. It might take a few minutes until it's visible online. --- 5分おきpilot uploadがとおった
opendiff /Applications/Xcode-beta.app /Applications/Xcode.app
とかやりますね。func testA(_ i: Int) -> Int { return i + 1 } func testB(_ i: Int) -> Int { return i + 1 } func testC() { let array = [0, 1, 2] let a = array.map { testA($0) } let b = array.map(testB) }
testA
のcallersはtestC
、testB
のcallersは無しになるのが何か釈然としない…… callerじゃないと言われればそうなんですがFind Call Hierarchy
のことですか?testB(_:)
でも効くので、sema 考慮してると思います。class C { static func testA(_ i: Int) -> Int { return i + 1 } static func testB(_ i: Int) -> Int { return i + 1 } } func testC() { let array = [0, 1, 2] let a = array.map { C.testA($0) } let b = array.map(C.testB) }
いや、これで効かなくなっちゃうので、使えない。class C.testB(_:)
ではなくて C.testB(_:)
なら見えるのかー。 "Call Hierarchy" と文法が違うのがなんとも。。。class
がついちゃうというバグなのかも。error: Execution was interrupted, reason: EXC_BAD_ACCESS
のエラー出るんですけど理由はなんでしょう?というかPlaygroundのデバッグってどうすればいいんでしょう?Crashed Thread: 3 Dispatch queue: -[IDEPlaygroundAuxiliarySourceCompilationManager init] :: NSOperation 0x7f9bf9467890 (QOS: BACKGROUND)
Application Specific Information: ProductBuildVersion: 9C40b ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/DVTFrameworks/DVTFrameworks-13763/DVTFoundation/Utilities/DVTTask.m:242 Details: The launch path must be set before launching. Object: <DVTTask: 0x7f9c111cc450> Method: -launchRunningTerminationHandlerOnQueue:error:terminationHandler: Thread: <NSThread: 0x7f9c07b87800>{number = 5, name = (null)} Hints: Backtrace: 0 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in IDEKit) 1 _DVTAssertionHandler (in DVTFoundation) 2 _DVTAssertionFailureHandler (in DVTFoundation) 3 -[DVTTask launchRunningTerminationHandlerOnQueue:error:terminationHandler:] (in DVTFoundation) 4 -[DVTTask launchReturningError:] (in DVTFoundation) 5 -[IDEPlaygroundAuxiliarySourceCompilerOperation main] (in IDEFoundation)
IDEPlayground〜
っぽいですね。Playground-Bug
というブランチを落としてますでしょうか?feature/#40-
のブランチしか発生しないはずかと思われますLayoutMaker<Layout>
という型を作るところで確実にPlaygroundでは落ちる、というところまではなんとか突き止めましたが、原因がなんなのかがさっぱり…feature/#40-
の修正のコミットが修正量が膨大ゆえにかなり雑で…public struct LayoutMaker<Property> { unowned let parentView: UIView let didSetProperty: Property }
の unowned をはずしたらとりあえず動きました。maker.parentView
は成功するけどそれ以外でmaker
を触ろうとするとクラッシュするので何かmaker
変数が壊れてるんだろうなという風に見えるので。parentView
は unowned
だったのにな… parentView
要らなくなったんですねそういえばunowned parentView
か。私はmaker
が壊れてると思ったんですけどね。@escaping
してる…!?@escaping
しないとおかしいですもんね確かに…storeHeight
メソッドの途中ですよ、たぶん。storeHeight
の時点で LayoutMaker<Layout>
が作れますのでFatal error: Failed to get current view: file /Users/x_shi/Documents/Crazism/NotAutoLayout/NotAutoLayout/NotAutoLayout/LayoutEvaluations/FrameAdditionalEvaluation.swift, line 156
のエラーになりました Playground-Bug
ブランチのPlaygroundのコードの下にある元々コメントアウトされたコードを生かせば再現しますunowned
の時と同じ、weak currentView
にアクセスしようとしていて落ちましたLayoutControlling.swift
public func makeLayout(_ making: (LayoutMaker<InitialLayoutProperty>) -> LayoutMaker<Layout>) -> Layout { print("makeLayout() begin") let maker = LayoutMaker(parentView: self.body, didSetProperty: InitialLayoutProperty()) print("makeLayout() self.body: \(self.body)") print("makeLayout() maker.parentView: \(maker.parentView)") print("makeLayout() maker: \(maker)")
このコードで、 最後の行がプリントされずに落ちるので、Mirror 絡みのバグな気がします。LayoutMaker
はそもそも CustomStringConvertible
に準拠してないから print
できないはずなのではないでしょうか?print("maker: \(maker)")
使おうとして落ちてたから CustomStringConvertible
に対応してないから落ちたかと思いましたimport Foundation class C: NSObject { } struct D { unowned let x: C } let c = C() let d = D(x: c)
(edited)@objc
なオブジェクトを unowned
で持つ struct
を Playground が Mirror しようとすると落ちる。ということかな。NSObject
継承しないと再現しないとprint(D(x: c))
でコマンド実行 swift test.swift
でも再現するので。 (edited)class C: NSObject { } struct D { unowned let c: C } class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let c = C() let d = D(c: c) print(d) } }
D(x: (lldb)
のように本当に直前までプリントされてクラッシュする。 (edited)unowned
や weak
プロパティーを一時的に通常プロパティーにします()
がついててビックリした。 限られた生成機能しか無さそうだった。 https://github.com/apple/swift-package-manager/tree/master/Sources/Xcodeproj$ cat Makefile .PHONY: clean build test clean: swift package clean build: swift build test: swift test xcode: swift package generate-xcodeproj
let pbxproj = try? PropertyListSerialization.propertyList(from: pbxprojData, options: [], format: nil)
↑型無しならこれだけでパースはできるってことですね〜/usr/libexec/PlistBuddy
ではどうにもならないですか?warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
がswift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-01-a
で出る。 (edited)-swift-version 3
の有無が原因だった。 (edited)extension Sequence { @_inlineable // FIXME(sil-serialize-all) @available(swift, obsoleted: 4) public func flatMap( _ transform: (Element) throws -> String ) rethrows -> [String] { return try map(transform) } }
(edited)-swift-version 4
だとこのflatMap
が無くなって、deprecated
な方が使われるから。## Resolved in Xcode 9.3 beta 2 – IDE ### Build System - Prevented Spotlight from indexing the module cache folder for builds by renaming the folder to `ModuleCache.noindex` which results in an improvement in overall build performance. (35212165)
これ何だろう? ~/Library/Developer/Xcode/DerivedData/ModuleCache
はそのまま残ってるけど。 (edited)CustomNSError
に準拠しNSLocalizedDescriptionKey
にメッセージを持ったerrorUserInfo
を返すError
をcompletionHandler()
に渡す。 https://github.com/norio-nomura/SwiftLintForXcode/pull/10LocalizedError
に準拠してerrorDescription
でメッセージを返す方法も、NSError
へキャストした時にlocalizedDescription
を提供するけど、Swiftでしか動かずXcodeは使ってくれない。 import Foundation struct MyError: Error, CustomNSError { var errorUserInfo: [String : Any] { return [NSLocalizedDescriptionKey: "NSLocalizedDescriptionKey"] } } let myError = MyError() as NSError print(myError.localizedDescription) // "NSLocalizedDescriptionKey\n" struct MyError2: LocalizedError { var errorDescription: String? { return "errorDescription" } } let myError2 = MyError2() as NSError print(myError2.localizedDescription) // "errorDescription\n" (Swiftのみ)
(edited)Jump to Definition
あることに今更気づいて悲喜交交。killall Xcode 2> /dev/null;sleep 1; rm -rf ~/Library/Developer/Xcode/DerivedData/; open /Applications/Xcode.app
$HOME/temp
で作業してるffffffffffff(a: "aaa", b: "aaa\(3)", c: "aaa")
\()
展開があると、次の段がずれるffffffffffff(a: "aaa", b: "aaa", c: "aaa")
PhaseScriptExecution Generate\ RLMPlatform.h /Users/sonson/Library/Caches/org.carthage.CarthageKit/DerivedData/9.3_9E145/realm-cocoa/v3.3.1/Build/Intermediates.noindex/ArchiveIntermediates/Realm/IntermediateBuildFilesPath/Realm.build/Release-iphoneos/Realm.build/Script-5D6156F41BE06FF500A4BD3F.sh sonsons-Mac-Pro:2tch.swift sonson$ tail /var/folders/zj/ltsp_4c918n5x5brxccqfj8h0000gn/T/carthage-xcodebuild.E43Jt9.log the -k (or --insecure) option. HTTPS-proxy has similar options --proxy-cacert and --proxy-insecure. Command /bin/sh failed with exit code 1
curl: (60) SSL certificate problem: unable to get local issuer certificate
curlもこけてるなぁ・・・・.observe(_:options:changeHandler:)
か -[NSObject addObserver:forKeyPath:options:context:]
を使ってたらInstrumentsのLeaksがクラッシュする /// - Tag: Hogehoge
を置いてMarkdownファイルから [hoge](x-source-tag://Hogehoge)
してもコードに飛んでくれないんですがこれ使ってる人いますかExtensionDecl
は ValueDecl
じゃないので extension
についた - Tag:
はインデックスされないという問題っぽい。/Library/Developer/CommandLineTools/usr/bin/ /usr/bin/swift
自分のMacにSwift2種類入っているんですけどXcodeでインストールされる方ってどっちかわかる方いますか…?/Library/Developer/CommandLineTools/usr/bin/swift --version Apple Swift version 4.1 (swiftlang-902.0.48 clang-902.0.37.1) Target: x86_64-apple-darwin17.5.0
/usr/bin/swift --version Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2) Target: x86_64-apple-darwin17.5.0
となっていて、後者がxcodeからのインストールなような気がしているのですが[omochi@omochi-iMac-PC43 ~]$ xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
自分のはココ参照してました、3つswift入っているのか…/usr/bin/swift
はxcrun -find swift
で見つけられるswift
のラッパーです。 (edited)xcode-select
でデフォルトを選択したり、DEVELOPER_DIR
, TOOLCHAINS
環境変数によってどこのswift
を使うかが決まります。/usr/bin/swift
は実際には/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
を参照しているということなんですね$ xcode-select -p /Applications/Xcode.app/Contents/Developer $ xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift $ DEVELOPER_DIR=/Library/Developer/CommandLineTools xcrun -find swift /Library/Developer/CommandLineTools/usr/bin/swift $ TOOLCHAINS=org.swift.40320171205 xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
TOOLCHAINS
環境変数って使えなくなった?$ TOOLCHAINS=org.swift.4020170919 xcrun -find swift /Library/Developer/Toolchains/swift-4.0-RELEASE.xctoolchain/usr/bin/swift $ TOOLCHAINS=org.swift.40220171101a xcrun -find swift /Library/Developer/Toolchains/swift-4.0.2-RELEASE.xctoolchain/usr/bin/swift $ TOOLCHAINS=org.swift.40320171205a xcrun -find swift /Library/Developer/Toolchains/swift-4.0.3-RELEASE.xctoolchain/usr/bin/swift $ TOOLCHAINS=org.swift.4120180329a xcrun -find swift /Library/Developer/Toolchains/swift-4.1-RELEASE.xctoolchain/usr/bin/swift $ TOOLCHAINS=org.swift.41120180502a xcrun -find swift /Library/Developer/Toolchains/swift-4.1.1-RELEASE.xctoolchain/usr/bin/swift
TOOLCHAINS=org.swift.40320171205a
ではなく TOOLCHAINS=org.swift.40320171205
って書いてた。/Library/Developer/CommandLineTools
のアップデートがMac App Storeへ来ないよね。昨日確認したらSwift 4.1のままだった。xcode-select --install
でインストールされます。/Library/Developer/CommandLineTools
が無いとHomebrewが文句を言うので、インストールした記憶。/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
が混ざってて、自前版とごちゃごちゃになってた。swift build
からの一連の動作をデバッグしようとしてるんだけど難しいですね 今の所swiftのmain冒頭にargvのダンプを仕込んで、swiftpm経由で発火するときにstdoutに出させて、 呼び出しを洗い出したあと、手動で実行し直したりしています・・captureSession.canSetSessionPreset(AVCaptureSessionPreset1920x1080)
use of Unresolved Identifier
なので、コンパイルエラーぽいAVCaptureSessionPreset1920x1080
で問題ないはずですが (edited)AVCaptureSession.Preset.hd1920x1080
のようなネームスペースの切り方する必要があります。 あとimport AVFoundation
忘れているかも