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.9defaults 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 1curl: (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/swiftxcrun -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/swiftTOOLCHAINS環境変数って使えなくなった?$ 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/swiftTOOLCHAINS=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) RELEASESWIFT_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に入れないと、メモリ食いまくる。
1RunLoop.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 = controllerVC.view.layer 直アクセスする時何か別の動作してるのかな?sudo ls ~/Library/Cookies/Cookies.binarycookies # ls: Operation not permitted とか書かれてるけど、手元で試す限り普通にCookies.binarycookiesを読める。 何か違うバージョンの話なのだろうか… $ sudo ls ~/Library/Cookies/ ls: : Operation not permittedsudo ls ~/Library/Cookies/Cookies.binarycookies は通るのか…$ sudo file ~/Library/Cookies/Cookies.binarycookies .../Library/Cookies/Cookies.binarycookies: cannot open: Operation not permittedsshd-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 directoryCmd + { と 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 && clet 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/ っていうのがあるってどこにも書いてないよね...?
1for 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)
11xcode-select --install で Command Line Tools をインストールしようとすると以下のエラーで失敗します。 No such module 'UIKit' などのエラーメッセージが出ておりCodegenKit という target と、 codegenkit という executableTarget を含むパッケージを作ったら、Xcodeが偶発的に変なエラーを出すようになった。 ビルドできたりできなかったりする。 macのファイル名がcase insensitiveなせいでバグってそう。 ただし、swiftpm cliからだとどうやら安定している。
1xcodebuildに-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)} を入れると空白にスペース入れてくるな...
1https://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の要求を満たさなくなった、って感じに見える。
1
1ISO8601DateFormatter.Options が Xcode15 までは Hashable で Linux版のcorelibsでは Hashable ではなかったんだけど、Xcode16 で mac版でも Hashable ではなくなってるsudo installer -pkg /Applications/Xcode.app/Contents/Resources/Packages/XcodeSystemResources.pkg -target / で直る。なんかXcodeのBetaを入れてた人は上記のXcodeSystemResourcesがもう入ってると判断されてインストールされないらしい。Core/Package.swift もコピペでは?ってレベル https://github.com/intitni/CopilotForXcode/blob/main/Core/Package.swift
https://github.com/github/CopilotForXcode/blob/main/Core/Package.swift
1
4empty dSYM file detected, dSYM was created with an executable with no debug info. って出るようになったんですが対処法ご存知の方いますか? (edited)empty dSYM file detected, dSYM was created with an executable with no debug info. って出るようになったんですが対処法ご存知の方いますか? (edited)
1
1../Packages/Name みたいなローカルの参照)、かつProject設定から参照するPackageのビルドで新規ファイルの追加やファイルの削除にXcodeが気がつかなくて一度再起動しないとビルドされなくなった気がしててあまり調べる気がなくて放置してたんですが流石にしんどいので何かいい知見ありませんかね... (edited).package(path:...) で指定するか、同じことをXcodeprojからSwiftPM指定するところをパスにするかですswift-build に統合されたら嘘のパターンは1つになってマシそう
1inline macro ってメニューに変わってしまったxcodebuildがPackage.swiftを認識できなくなっていた不具合がXcode 16.4で修正されていました。Package.swiftが置いてあるディレクトリでxcodebuild -listを叩くと正常にSchemesが表示されます。xcodeprojやxcworkspaceに頼らずSwift Packageのテストを実行可能に戻りました。Observations が使えないのは私だけでしょうか?Observations が使えることを確認しました! (でもActorとかselfのキャプチャーとかの最適な使い方がまだ掴めてないです)SubprocessSpan が有効になってしまって、リンクできなくで実行できなくなるSpan 向けの動的ライブラリの rpath をうまく扱えない問題は解決していないものの,swift-subprocess リポジトリだけに関してはとりあえずこの PR で解決されますかね? https://github.com/swiftlang/swift-subprocess/pull/204/filesSubprocessSpan traitが消えるけど、Xcodeは勝手に全traitを有効にするのでデフォルト値が変わっても関係ないような気がしますswift run できない問題と混同していたかもしれないです./usr/lib/swift を設定しない→修正済み ただし、macOS 15 はどうせそこに libSCSpan が置いてない→そもそも利用しない必要がある Xcodeの問題: 依存パッケージのtrait指定を無視するのでTrait設定によるSpanの利用拒否ができない→macOS15 で動かない →デフォルトトレイトから(コンパイラバージョン分岐によって)外したことで、利用拒否できるかも/usr/lib/swift に入ってないもんな。実際。/usr/lib/swift を設定する そもそもの macOS15 ターゲットは実現できてない (edited)@backDeploy とかはそうですよね、コンパイラがstdlibから関数本体を引っこ抜いてexecutableに埋める。
1