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
忘れているかも+
押して追加できる項目のなかにありません?Recording no longer supported by this instruments
と出てくるので使えそうな感じするんだけどなぁRecording no longer supported by this instruments
出てあかんですねlet test = SignalProducer<Int, NoError> { (observer, lifetime) in observer.send(value: 5) observer.sendCompleted() }
(edited)observe.
からの補完は効かいです。let test = SignalProducer<Int, NoError> { (observer: Signal<Int, NoError>.Observer, lifetime) in observer.send(value: 5) observer.sendCompleted() }
defaults write com.apple.iphonesimulator AllowFullscreenMode -bool YES
これでいけるのでは。。。?defaults write com.apple.iphonesimulator ShowSingleTouches 1
有効にしているので、セーフブートから起動とかするよりその方がいいんじゃないかな。@IBOutlet var onPress~
みたいなのをしょっちゅう間違って作ってたので便利。xcconfig
file that inherit values using $(inherited)
or $(<setting_name>)
, the Build Settings editor shows the last assigned value for the setting instead of the properly composed value. (28572636).xcconfig
内での$(inherited)
の扱いがXcode 10で変わったことも、リリースノートに載ってる。Project-Staging.xcconfig
: #include "Project-Release.xcconfig" SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) STAGING
Project-Release.xcconfig
: #include "Project-Production.xcconfig" SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) RELEASE
SWIFT_ACTIVE_COMPILATION_CONDITIONS = RELEASE STAGING
になるのでは。 (edited)#include "Project-Release.xcconfig"
してるのは完全に間違い#include "Project-Production.xcconfig"
であるべきで、return hoge.size
を毎回 let size = hoge << break point return size
しているんですけど、良い方法あるのかなと -b <function-name> ( --basename <function-name> ) Set the breakpoint by function basename (C++ namespaces and arguments will be ignored). Can be repeated multiple times to make one breakpoint for multiple symbols.
thread info
コマンドを実行すると Return value: (CommandLineSandbox.MyError) $E0 = fooError
みたいな行が表示されているので、po $E0
とかで中身が見られます。~/Library/Caches/CococaPods
を消せばOKです。feature/branch_name
を取りに行ってしまうっぽい…?feature/branch_name
と branch_name
がうっかり存在する場合は branch_name
を指定できないんですかねえ。pod 'PodName', git: 'https://hoge.git', branch: 'branch_name'
でorigin/branch_nameが入る(通常動作 (edited)branch: 'branch_name'
でfeature/branch_name
が入ってくるということか (edited)-1
) になってます。 実際、XIB上で、 intrinsticSizeをDefault ( System Defined) から Placeholder に変更した上で、 None にチェックを付けると、 実行時と同様の振る舞いになるんですが、 どうしてXIB上でのDefaultの値が、実行時とは異なるんでしょう?Wait for executable to be launched
から起動するとデバッガアタッチしてるっぽいのですがログが流れず困ってます。defaults delete com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks
これで多分デフォルトになったと思いますpod "LibraryName" as: "LibraryNameMaster" pod "LibraryName", branch: "develop" as: "LibraryNameDevelop"
みたいな機能欲しいと思ったのですがソースコードの変更の可能性も考えると難しそうですね… NSLayoutConstraint.activate([ viewController.view.topAnchor.constraint(equalTo: view.topAnchor), viewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), viewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), viewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor) ])
^ 前からこう でこれが合わないので私は NSLayoutConstraint.activate([ viewController.view.topAnchor.constraint(equalTo: view.topAnchor), viewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), viewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), viewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor)])
こう書きます。...( [ ..., ... ] )
こうすると結構綺麗になる気がする (edited)func test(_ a: (Int, Int)) {} test(( 0, 1 ))
この場合閉じカッコもインデントつかないですけどタプルはリテラルって言わないんですっけ? (edited)import A
するファイルと import B
するファイルを分ければ良さそうですが、 implemented in both ...
は解消されないのでプロダクションに投入するのは不安ですねえ。implemented in both ...
ので、本当に意図した通りに動作するかというと「?」ですね。 でそれはおそらく /// A type that can be initialized using a color literal (e.g. /// `#colorLiteral(red: 1, green: 0, blue: 0, alpha: 1)`). public protocol _ExpressibleByColorLiteral { /// Creates an instance initialized with the given properties of a color /// literal. /// /// Do not call this initializer directly. Instead, initialize a variable or /// constant using a color literal. init(_colorLiteralRed red: Float, green: Float, blue: Float, alpha: Float) }
RGBA
を対応させられそう。struct Color: _ExpressibleByColorLiteral { init(_colorLiteralRed red: Float, green: Float, blue: Float, alpha: Float) {} } func test(_ color: Color) {} test(#colorLiteral(red: 1, green: 0, blue: 0, alpha: 1))
public protocol _ColorLiteralChannel { init(_ez_colorLiteralFloatChannel: Float) } extension RGBA: _ExpressibleByColorLiteral where Channel: _ColorLiteralChannel { public init(_colorLiteralRed red: Float, green: Float, blue: Float, alpha: Float) { self.init( red: .init(_ez_colorLiteralFloatChannel: red), green: .init(_ez_colorLiteralFloatChannel: green), blue: .init(_ez_colorLiteralFloatChannel: blue), alpha: .init(_ez_colorLiteralFloatChannel: alpha) ) } }
_ColorLiteralChannel
のようなプロトコルを隠蔽したいんだけどできないのが最近の悩み。_ExpressibleByColorLiteral
と RGBA
は良さそう。$ swift build dyld: Library not loaded: @rpath/llbuild.framework/Versions/A/llbuild Referenced from: /Library/Developer/CommandLineTools/usr/bin/swift-build Reason: image not found [1] 21778 abort swift build
https://bugs.swift.org/browse/SR-10529import WebKit
して WKWebView
をコードからインスタンス化しているようなことがあったら、WebKit.FrameworkやARKitをマニュアル操作でリンクしなくてもAuto Linkが働くので動きます。 ただ、最適化の有無で変わったりするのでエラーが起こった場合は明示的にリンクするようにするのが安全ですね。some
にカーソル合わせたら、その時の型をQuick Helpに表示してくれないかな。(FB6630816) (edited)OTHER_LDFLAGS
に .a
なら-lcrypto
とか、Frameworkなら -framework Firebase
のように書きます。LIBRARY_SEARCH_PATH
か FRAMEWORK_SEARCH_PATH
を $(BUILT_PRODUCTS_DIR)/...
のようにライブラリのあるディレクトリを指定して、 Cのライブラリならヘッダもまとめて成果物に出力されると思うんで、 HEADER_SEARCH_PATH
を同様に設定して、 OTHER_LDFLAGS
を上記のように、SEARCH_PATH からの相対で指定します。_ = Single.deferred { ... }.flatMap { ... }.subscribe()
(edited)_ = Single.deferred { ... }.flatMap { ... }.subscribe()
仕方なく↓こう書いてた _ = Single .deferred { ... }.flatMap { ... }.subscribe()
multiple configured targets of 'SwiftSyntax' are being created for macOS
.swiftpm
消したりいろいろやってたら治った・・・let foo = [1] .map(String.init)
let foo = [1] .map(String.init) .count
上に追加 let foo = [1] .count .map(String.init)
let group = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .absolute(200)), subitems: [item])
(edited)メルカリ.app
みたいになる。GoogleMaps.bundle
は.app
のファイル名にカタカナが入ってると読み込めなくなる。$(PRODUCT_NAME)
になってる。Version 11.0 beta 6 (11M392r)
となっているけど、これbeta 7であっているよね?11M392q
だったAVMetadataIdentifierQuickTimeMetadataDetectedCatBody
https://developer.apple.com/documentation/avfoundation/avmetadataidentifierquicktimemetadatadetectedcatbody
AVMetadataIdentifierQuickTimeMetadataDetectedDogBody
https://developer.apple.com/documentation/avfoundation/avmetadataidentifierquicktimemetadatadetecteddogbody (edited)var text: String! { didSet { // 補完が効かない t ← textが出て欲しい // self.だと補完が出る self.t ← これだと候補にtextが出る } }
(edited)text
が t
と打っても出ない、、、ということですよね?lazy var something = createSomething() private func createSomething() -> Something { ... }
というようなコードをよく書いていました。 (edited)$ swift package pin
とかでエディットモードに入れるけど、 (edited)file:///Users/norio/github/Yams
とか)をXcodeで依存先として使うとか。 (edited)file://../Yams
)でもいけるな。file://…
で参照できないみたい。View > Layout > Automatic | Translates Mask Into Constraints
めっちゃ便利だ。 Single.just(()) .map { } Single.just(()) .map ({ })
autoreleasepool
に入れないと、メモリ食いまくる。RunLoop.main.run(until:)
しばらく経つと…ということはメモリが厳しそうだと思うので、 これ呼んであげたら解放されてくれないかなgit:
スキームで記述されたSwift Packageを取得出来ないのね。リポジトリがパブリックでもダメ。git
か)は、sshキーが登録されてなくても公開リポジトリならばgit:
スキームでもOKStandard
どうなったかな。sourcekit-lsp
だけでなくclangd
もついてくるのね。 https://clang.llvm.org/extra/clangd/
clangd
is a language server that implements the Language Server Protocol.font
のところで、ドットだけ入力して .font
を補完させるのってできます? (edited)let attrs: [NSAttributedString.Key: Any] = [: ""]
^ 右辺をDictionaryリテラルの形にして、かつValueの方に何か入ってる状態なら補完が出ます。~/.zshrc
の先頭にreturn
って入れたら動いた…let attrs: [NSAttributedString.Key: Any] = [.
のタイミングで補完してくれるみたいですね。$SRCROOT/.lldbinit
とか指定できる。これもしかするとリモートlldb serverへの接続に使えるのでは。Expand Switch Cases
あるの今知った 便利View
だらけでわけがわからん。手動で名前つけることはできるけど・・・Automatically trim trailing whitespace
のサブ設定の including whitespace-only lines
が壊れた?General
> Display Name
を編集してエンター押すと (edited)$(PRODUCT_NAME)
PRODUCT_NAME = 入力した名前
(edited)import
文が通らなくなるなど > いろいろ壊れる[.foregroundColor: ]
この補完でるようになったの助かるfunc bad (){...}
を func good() {...}
にしたいんですが、swift-formatを使わない場合は、現状難しいってことですねswiftlint autocorrect
とかで直せると思う。swiftlint autocorrect --format
すると追加でXcodeのAuto-Indent相当だったはず。 (edited)){
はopening_brace
で直せそうだけど、bad (
は直せなさげ。func bad (){...}
も直せるはず。@IBSegueAction
に繋ごうとしたときに一回で繋がらなくて(繋げてもリロードしたら消える、みたいな)違う手順で何回かやらないと繋がらない、ってことが起こるな。UIViewAlertForUnsatisfiableConstraints
これでしょ。 これに止まるケースを止めてくれるわけではないっぽい。Xcode 11ですけど。UIViewcontroller.view.layer
アクセスしようとすると落ちるっぽい
import PlaygroundSupport import UIKit let controller = UIViewController() controller.view.layer.cornerRadius = 10 // ←これをコメントアウトすると問題なくビルドできる controller.view.clipsToBounds = true PlaygroundPage.current.liveView = controller
何か分かる方いらっしゃいますかね?UIView()
で作れば問題ないです、UIViewController().view
の時だけですUIViewController().view
は nil
ではないですよね?.cornerRadius =
がダメっぽいimport PlaygroundSupport import UIKit let controller = UIViewController() let layer = controller.view.layer layer.cornerRadius = 10 controller.view.clipsToBounds = true PlaygroundPage.current.liveView = controller
VC.view.layer
直アクセスする時何か別の動作してるのかな?sudo ls ~/Library/Cookies/Cookies.binarycookies # ls: Operation not permitted
とか書かれてるけど、手元で試す限り普通にCookies.binarycookies
を読める。 何か違うバージョンの話なのだろうか…
https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf$ sudo ls ~/Library/Cookies/ ls: : Operation not permitted
sudo ls ~/Library/Cookies/Cookies.binarycookies
は通るのか…$ sudo file ~/Library/Cookies/Cookies.binarycookies .../Library/Cookies/Cookies.binarycookies: cannot open: Operation not permitted
sshd-keygen-wrapper
を除外すると、scp
でCookies.binarycookies
をコピー出来なくなる。XCTest.swiftmodule
はSwift 5.2以前と互換性がないから、Swift 5.2以前のOSS Toolchainでテストしたい時は、Xcode 11.xを使わないといけないのね… swift test --destination destination.json
することで、Xcode 11.x無しにSwift 5.2以前のOSS ToolchainでXCTest使えた。 destination.json
: { "extra-cc-flags": [], "extra-cpp-flags": [], "extra-swiftc-flags": [ "-I", "/Library/Developer/Toolchains/swift-5.2.5-RELEASE.xctoolchain/usr/lib", "-F", "/Applications/Xcode_12.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks" ], "sdk": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/", "target": "x86_64-apple-macosx", "toolchain-bin-dir": "/Library/Developer/Toolchains/swift-5.2.5-RELEASE.xctoolchain/usr/bin", "version": 1 }
(edited)-Xswiftc
で-I
を渡す方法だと、OSS Toolchain添付のXCTest.swiftmodule
を優先させられなかった。/*! @property supportedFlashModes @abstract An array of AVCaptureFlashMode constants for the current capture session configuration. @discussion This property supersedes AVCaptureDevice's isFlashModeSupported: It returns an array of AVCaptureFlashMode constants. To test whether a particular flash mode is supported, use NSArray's containsObject API: [photoOutput.supportedFlashModes containsObject:@(AVCaptureFlashModeAuto)]. This property is key-value observable. */ @property(nonatomic, readonly) NSArray<NSNumber *> *supportedFlashModes API_UNAVAILABLE(macos);
supportedFlashModes
で検索しても何も出ないし__supportedFlashModes
だったらいける。AVFoundation.swiftmodule
が提供されてるから.swiftinterface
に書かれてるはず。 デバイス向けとシミュレータ向けを比較するなら $ export DEVELOPER_DIR=/Applications/Xcode_12.app; diff $(xcrun --show-sdk-path -sdk iphoneos)/usr/lib/swift/AVFoundation.swiftmodule/arm64.swiftinterface $(xcrun --show-sdk-path -sdk iphonesimulator)/usr/lib/swift/AVFoundation.swiftmodule/x86_64.swiftinterface
って感じ? (edited)AVFoundation.swiftmodule
が入ってないな。 $ export DEVELOPER_DIR=/Applications/Xcode_12.0.1.app; diff -u $(xcrun --show-sdk-path -sdk iphoneos)/usr/lib/swift/AVFoundation.swiftmodule/arm64.swiftinterface $(xcrun --show-sdk-path -sdk iphonesimulator)/usr/lib/swift/AVFoundation.swiftmodule/x86_64.swiftinterface diff: /Applications/Xcode_12.0.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.0.sdk/usr/lib/swift/AVFoundation.swiftmodule/x86_64.swiftinterface: No such file or directory
Cmd + {
と Cmd + }
は使ってるんですけどCmd + Ctrl + Click
で定義ジャンプしてもタブは開かなくて、今のタブのなかで遷移したんですけどxcodebuild
でSwiftPMのパッケージをビルドする時って、ターゲット指定って出来ないのかな。テストターゲットまでビルドするから-configuration release
にすると@testable import …
で失敗してしまう…PKG_CONFIG_PATH
を渡す方法が無いっぽいんですが、 なにか方法を知ってる人居ますか? Run Schemeのenvironment variables設定は実行時の設定で、SwiftPMのresolveフェーズには影響がないみたいPKG_CONFIG_PATH
を渡す方法が無いっぽいんですが、 なにか方法を知ってる人居ますか? Run Schemeのenvironment variables設定は実行時の設定で、SwiftPMのresolveフェーズには影響がないみたい /usr/lib/pkgconfig, /usr/share/pkgconfig, /usr/local/lib/pkgconfig and /usr/local/share/pkgconfig for these files.
It will additionally look in the colon-separated (on Windows, semicolon-separated) list of directories specified by the PKG_CONFIG_PATH environment vari- able.
/usr/lib
と /usr/local/lib
の2つしか/usr/local/lib/pkgconfig/hoge.pc
とかが置かれる。/usr/local/include
と /usr/local/lib
を汚染しないための機能だと思っていた/usr/local
系にエントリポイントを置く挙動が変わらない説ですよね$ brew doctor
したときに、 /usr/local/lib/pkgconfig/xx.pc
に対して、/usr/local/lib/libXXX.dylib
も同様/usr/local
に設置する挙動が変わらないならそのdoctorの動きもかわらなさそうだ (edited)/usr/local/pkgconfig/xx.pc
が シンボリックリンクの場合はなぜか文句を言われなかったので/opt
にマニュアルインストールした後、 /opt/lib/pkgconfig/xx.pc
に対して /usr/local/pkgconfig
からリンクを張ってみました/usr/lib/libXXX.dylib
系についてはリンクでも怒られる・・・import
の補完で先に IMP
が出てくるの地味にストレスを感じている$ swift test
は動くけど、 SwiftPM for Xcode だとresources directiveが無視されて全く動かないwcase
まで書いて ESC
押して補完に出てくる順番でもある。switch
. #WWDC21 https://t.co/V7ISrkRQN4screen parameters are unexpected: MGScreenClass1125x2436x3x495 SCREEN_TYPE(1125,2436,3,495)
っていう不吉なログが出てくる (edited)~/Library/Developer/Xcode/UserData/Previews/Simulator Devices
内の plist をモニョモニョしたらできそうな気はするけどもうちょっと素直な方法欲しいですね=NO
にしないといけないという罠...Failed to build module 'Network'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.5 (swiftlang-1300.0.20.4 clang-1300.0.21.1)', while this compiler is 'Apple Swift version 5.5 (swiftlang-1300.0.20.104 clang-1300.0.21.1)'). Please select a toolchain which matches the SDK.
Package.swift
相当の仕組みしか無くて、 Package.resolved
相当の仕組みが実装されていないように見えます。 これで困っているんですが、知ってました?XXX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
ここに。xcshareddata
を ignore していたから git diff が出なかったのか。. ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm │ │ └── Package.resolved │ └── xcuserdata │ └── omochi.xcuserdatad │ └── UserInterfaceState.xcuserstate ├── xcshareddata │ └── xcschemes └── xcuserdata └── omochi.xcuserdatad ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist └── xcschemes └── xcschememanagement.plist
(edited)/*.xcodeproj/xcuserdata /*.xcodeproj/project.xcworkspace/xcuserdata /*.xcworkspace/xcuserdata
!
ルールが逆転勝利する条件がちょっとややこしいんだよね。フォルダ名には負ける。ディレクトリ/*
にしないとダメだった気がしますね/*.xcodeproj/xcuserdata /*.xcodeproj/project.xcworkspace/xcuserdata /*.xcworkspace/xcuserdata
/*.xcodeproj/xcuserdata /*.xcodeproj/project.xcworkspace/xcuserdata /*.xcworkspace/xcuserdata
!
で復活できないxcuserdata **/xcshareddata/**/*.plist *.xcscheme !Package.resolved
うーん・・・xcuserdata **/xcshareddata/* !swiftpm
こうなったIDEWorkspaceChecks.plist
もコミットされませんか?gibo dump macOS Swift
で生成されるファイルは https://github.com/kishikawakatsumi/Doorlock/blob/main/.gitignore で、使ってなくてもfastlane/carthage/cocoapodsの設定が入ってくるけど放置で気にならないくらいの内容。gibo dump macOS Swift
で生成されるファイルは https://github.com/kishikawakatsumi/Doorlock/blob/main/.gitignore で、使ってなくてもfastlane/carthage/cocoapodsの設定が入ってくるけど放置で気にならないくらいの内容。 .build
ですね。ドットつき (edited).build
ですね。ドットつき (edited)git add
で追加すべきでないものを見つけたら都度追加でいい気がしますけどね。
Failed to build module 'Network'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.5 (swiftlang-1300.0.20.4 clang-1300.0.21.1)', while this compiler is 'Apple Swift version 5.5 (swiftlang-1300.0.20.104 clang-1300.0.21.1)'). Please select a toolchain which matches the SDK.
struct Foo { let x: String = "" var y: String = """ """ }
1. let x = ...
をカット&ペースト 2. そのままエンターでxとyの間に改行 3. 改行位置に"が挿入されてしまう 複数行リテラル絡みのバグ?Update to Latest Package Versions
して直してますが、これ結果が偶然一致しないと直らないからいつか困りそうだなと@available(iOS...
とかとおなじですね.branch( "pull/128/head")
とか指定すればフォーク先も参照できるpull/xxx
って書き方があるんですねlet a = true, b = true, c = true let x = a && b && c
let a = true, b = true, c = true let x = a && b && c
#if
が メソッドチェーンに使えるやつswiftlint
のフォーマッタはSourceKitのAPIを使ってて、以前はXcodeと同じ結果になったけど、最近はどうなんだろう?struct A<T> where T: P {}
Xcode13のインデントルール、↑のケースの T: P
の行のインデントもしなくなってるguard case else
のインデントも変になってた。2段下がってしまう。 (edited)extension T { static func foo() -> T { ... } }
extension Optional where Wrapped == T { static func foo() -> T? { ... } }
↑こういうコードに書き換えようとすると、Xcodeが吹き飛ぶxcodebuild
の -destination
に generic/
っていうのがあるってどこにも書いてないよね...?for await notification in NotificationCenter.default.notifications(named: ...) { ... }
^ これがめっちゃ便利と思ってるのでこの辺をバックポートしてほしいぜTask { [weak self] in let notifiations = NotificationCenter.default.notifications(named: ...) for await notification in notifiations { ... self?... } }
NotificationCenter.default.notifications(named: ...)
この形式は、unsubsribeする手段は無い?NotificationCenter.default.notifications(named: ...)
この形式は、unsubsribeする手段は無い? NotificationCenter.default.removeObserver(..., name: ..., ...)
で通知解除できると思う。NotificationCenter.default.removeObserver(..., name: ..., ...)
で通知解除できると思う。 NotificationCenter.default
じゃなくてインスタンスを作ればよさそうだが。。。まあでもそれはSenderのObjectをプロパティに持つのと手間と読みやすさは変わらないかな?receive(on: DispatchQueue.main)
だとダメ?xcodebuild -resolvePackageDependencies
で解決しても、Xcode開くときはまた別のパスで解決しなおすので -resovePackageDependencies
でやるとxcodeprojか.xcworkspaceの中で.swiftpm作ってるっぽい…?ので、xcodebuild -resovePackageDependences
をやっても結局Xcode起動してもXcodeがもう一回依存解決するんですよね xcodebuild
で落としてきたパッケージ全然利用されてる形跡が見当たらないえすif grep -q "isa = XCSwiftPackageProductDependency;" "$project_file/project.pbxproj"
にすることにした(lldb) expr "にゃーん" (const char [13]) $0 = "にゃーん" (lldb)
$ lldb --version lldb-1316.0.9.41 Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8)
xcode-select --install
で Command Line Tools をインストールしようとすると以下のエラーで失敗します。 No such module 'UIKit'
などのエラーメッセージが出ておりCodegenKit
という target
と、 codegenkit
という executableTarget
を含むパッケージを作ったら、Xcodeが偶発的に変なエラーを出すようになった。 ビルドできたりできなかったりする。 macのファイル名がcase insensitiveなせいでバグってそう。 ただし、swiftpm cliからだとどうやら安定している。xcodebuild
に-downloadPlatform
というオプションもあるみたいですが、バージョン指定できるのか?とか試していません。xcodebuild
に-downloadPlatform
というオプションもあるみたいですが、バージョン指定できるのか?とか試していません。 -downloadPlatform
オプションは見つけられませんでした -downloadAllPlatforms
オプションは動くのですが、CIでは重すぎるかと思い敬遠していました-downloadAllPlatforms
は全てのバージョンのシミュレータが入るわけではなく、入っていないプラットフォーム(私の場合はtvOS)のSDK and/or シミュレータが入るようでした。 先に教えていただいたURL( https://devimages-cdn.apple.com/downloads/xcode/simulators/index2.dvtdownloadableindex )からwatchOS 8.5のSimulatorのインストーラをダウンロードし実行したのですが、インストールできませんでした。 おそらくmacOSのバージョンが適合しないためと思われます。 ローカルでは"このパッケージは、このバージョンのmacOSと互換性がありません。"というエラーが、(13.1 Ventura) CI(GitHub Actions macos-12)では下記のようなエラーが出ています。 installer: Package name is WatchSimulatorSDK8_5 installer: Installing at base path / installer: The install failed. (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance. The package is attempting to install content to the system volume.)
Xcode(14.0.1)のGUIからはwatchOS 8.5をローカルにダウンロード&インストールできるので、何か別のインストール方法があるかもしれません。 (edited)}
を入れると空白にスペース入れてくるな...https://devimages-cdn.apple.com/downloads/xcode/simulators/index2.dvtdownloadableindex
から取得できますが、iOS 14.x simulatorには <key>hostRequirements</key> <dict> <key>maxHostVersion</key> <string>13.99</string> </dict>
とか入っていて、試しにダウンロードしても Sonoma では $ simctl runtime add ~/Downloads/com.apple.pkg.iPhoneSimulatorSDK14_5-14.5.1.1621461325.dmg D: A5D2C440-CA26-4F0F-B184-F5AC3C3F0028 <unknown platform> (Unusable - Missing Signature: Error Domain=SimDiskImageErrorDomain Code=3 "Missing Signature" UserInfo={NSLocalizedDescription=Missing Signature, unusableErrorDetail=})
とかエラーで追加できませんでした。maxHostVersion
で制限されてるランタイムの仕様が、Sonomaで実行されるCoreSimulator
の要求を満たさなくなった、って感じに見える。ISO8601DateFormatter.Options
が Xcode15 までは Hashable
で Linux版のcorelibsでは Hashable
ではなかったんだけど、Xcode16
で mac版でも Hashable
ではなくなってる