Guild icon
swift-developers-japan
開発環境, ライブラリ / xcode
Avatar
omochimetaru 4/22/2017 6:07 AM
http://xcenv.org/ @tarunon いわく良いらしい
👀 5
Avatar
xcode-install - 🔽 Install and update your Xcodes
👍 2
6:14 AM
これも
Avatar
norio_nomura 5/18/2017 6:25 AM
リモートデバッグサポートしてほしいなあ。
Avatar
norio_nomura 6/30/2017 2:44 AM
TravisにXcode 9 beta 2イメージが来たらしい https://twitter.com/travisci/status/880550780368855040
We are happy to share that we have an Xcode 9 beta 2 image ready for testing: osx_image: xcode9. See https://t.co/SGYDkioDzk for details.
🎉 2
💕 2
Avatar
An examination of build times of Xcode projects that mix Objective-C and Swift, which can contain large bridging headers, shows that the Swift compiler spends a lot of time re-processing the same bridging headers for all the Swift files in a project. In certain projects, each additional Swift file increases the overall build time noticeably, even when the Swift file is quite modest.
🤔 1
😮 1
6:42 AM
この -enable-bridging-pch をONにして開発している方いらっしゃいますか?
6:43 AM
Twitterでハッシュタグ検索してみると4月ぐらいの古いツイートしかなく、実際にやってこ効果が出たという方のツイートもちらほら見るのですが、数ヶ月前の情報なので。
6:44 AM
自分は、Debugのみ -enable-bridging-pch をONにして開発してますが、効果あるのかいまいち微妙なので皆さん意見を聞きたく。
6:49 AM
-enable-bridging-pch をONにすると -Bridging-Header.h は Precompileされてるようです。
Avatar
omochimetaru 7/6/2017 1:59 AM
C++のライブラリをビルドしやすいようにxcodeprojを同梱してリポジトリを作るとして、 ある基本ライブラリA 別の人が作ったライブラリB、Aに依存している また別の人が作ったライブラリC、これもAに依存している BとCは全く独立に開発されている、 という状況で、 BとCの両方を使ったアプリDを作ろうとしたときに、 Bから依存してるAと、Cから依存してるAの、両方をロードせずに、 Dの作業環境では共通の1つのAを使うようにしたいんですが、 B単体でビルドするときと、 Dの作業環境のAを使ってBをビルドするときと、 どちらでも使えるようなB向けのxcodeprojが作れなくて困っている
2:00 AM
SwiftPMの場合だと、そういうケースでgenerate-xcodeprojすると、Aは一つになるし、生成されたxcodeprojのHEADER SEARCH PATHがうまいこと生成されるからいけるんですが
2:01 AM
手で作ったxcodeprojをリポジトリに入れておく方針だとHEADER SEARCH PATHがどうにもならない。。
Avatar
norio_nomura 7/6/2017 3:28 AM
それらはOSSではないの?
Avatar
omochimetaru 7/6/2017 3:29 AM
OSSです ライブラリAに該当するのが自作の cpp-rhetoric で https://github.com/omochi/cpp-rhetoric ライブラリB に該当するのが同じく oliview なんですが https://github.com/omochi/oliview ライブラリCは今存在しないけど今後問題になりそう
cpp-rhetoric - small fundamental library for modern C++ programming.
Contribute to oliview development by creating an account on GitHub.
3:30 AM
現在 oliview はgit submoduleとして oliview/ext/cpp-rhetoric にcpp-rhetoricをチェックアウトしてるけど
3:30 AM
この構成だと 今後アプリDが現れたときに cpp-rhetoricが孫サブモジュールとして二箇所でチェックアウトされちゃう
Avatar
norio_nomura 7/6/2017 3:50 AM
2箇所でチェックアウトされてもアプリDのワークスペースにどちらか一方を追加するだけで良いから、問題にならない気がします。
Avatar
omochimetaru 7/6/2017 3:51 AM
oliviewがcpp-rhetoricを #include <rhetoric/rhetoric.h> しているところで探索されるファイルが
3:51 AM
xcodeのHEADER_SEARCH_PATHの関係上、 oliview/ext/cpp-rhetoric/src になってしまうんですが
3:52 AM
アプリDのビルド時の #include <rhetoric/rhetoric.h> と違うファイルシステム上で違うファイルを見ている可能性が出てしまう
3:52 AM
あーまあ、コミットが完全に同じなら、実質問題は無いけど・・・
3:52 AM
コミットが違ったりしてややこしいバイナリレベルのバグが出るのが嫌なので、気持ちとしては、同じものを見て欲しい。
Avatar
norio_nomura 7/6/2017 3:55 AM
DもAに直接依存してるの?
Avatar
omochimetaru 7/6/2017 3:56 AM
します。
3:56 AM
C++的にはincludeが芋づる式につながっていて使える状態になる。実際的にもrhetoricはResult型とか基本的な道具を提供してるからOliviewを使う限りRhetoricは使いまくる。
3:57 AM
完全隠蔽される下層のライブラリーでは無し。
Avatar
norio_nomura 7/6/2017 3:58 AM
DがCかBかどちらかのサブモジュール内のAを使ったとしても、Dビルド時にCとBがそれぞれAの違うコピーを使う可能性があるのが問題? (edited)
Avatar
omochimetaru 7/6/2017 4:00 AM
そうですね。
4:00 AM
サブモジュールがディスク上で無駄にチェックアウトされているのも問題だと思います
4:02 AM
まあ容量の問題はクリティカルでは無いかも。 Aの違うバージョンが混ざり込む問題は結構厄介だと思う。実行中にわけわからないクラッシュとかの形で出てくるから。
4:02 AM
でもまあ動くんだからいいじゃんという意味では動かすことはできますね・・・確かに・・・
4:04 AM
僕ができたらいいなと思っていてでも出来なさそうなこととして
Avatar
norio_nomura 7/6/2017 4:04 AM
.frameworkだとバイナリとヘッダが成果物としてパッケージングされて、それらを使うから起きない問題なのですね。
Avatar
omochimetaru 7/6/2017 4:04 AM
もし、xcodeが、 $WORKSPACE_HEADER_SEARCH_PATH みたいな変数を持っていて、それをHEADER_SEARCH_PATHに含めることができれば
Avatar
norio_nomura 7/6/2017 4:05 AM
そう、ビルド時に環境変数でワークスペースを保存してるものが無いか見てたのですが、なさげですね。
Avatar
omochimetaru 7/6/2017 4:05 AM
DのほうでA と B と Cをそれぞれチェックアウトしておいて、 BとCは $WORKSPACE_HEADER_SEARCH_PATH から検索しておけば、 B単体では Bの中のA を参照しつつ、 Dの作業時は、 BのサブモジュールとしてのAはチェックアウトせずにおいて、 Dのほうでもってきた A を変数経由で見つけてくれれば
4:06 AM
よくって、 gnu make とかの文化だと、実際、 $INCLUDES みたいな環境変数をつかってそういうことが制御できる。
4:06 AM
そう、ビルド時に環境変数でワークスペースを保存してるものが無いか見てたのですが、なさげですね。
そうなんですよね。いろいろ調べたんですけど、あくまでxcodeproj単体であらゆる条件が再現されるように注意深く設計されているように感じます。
4:08 AM
.frameworkだとバイナリとヘッダが成果物としてパッケージングされて、それらを使うから起きない問題なのですね。
そうですね。ワークスペースにフラットに並んでる「フレームワークの名前」単位で、それぞれの依存関係が処理されると、望ましい
4:09 AM
現実的に取れる選択肢としては、 同じコピーになることを前提に特になにもしないか (edited)
4:10 AM
B -> A 間のgitサブモジュール連携を切って、 BとAが同一ディレクトリにチェックアウトされることを前提にして、 そもそも ../../A/src みたいな感じでリポジトリの外をみるように設定しておくか、。。
Avatar
norio_nomura 7/6/2017 4:11 AM
あとはAの成果物にヘッダも含めることで、自動でHEADER_SEARCH_PATHSに含まれる$BUILD_DIR/includeあたりにコピーする様にするとか。
Avatar
omochimetaru 7/6/2017 4:16 AM
あ〜〜
4:17 AM
ビルド用のスペースにものを展開していく感じにするってことですか
4:19 AM
うまくいきそうな気配がします
4:19 AM
そっちの方面は考えてなかったんで考えてみます、ありがとうございます
Avatar
norio_nomura 7/6/2017 4:22 AM
自動でHEADER_SEARCH_PATHSに含まれる$BUILD_DIR/includeはワークスペース内で共通になると思うので、Aのターゲットをちゃんと作れればうまくいきそうな気がします。
Avatar
omochimetaru 7/6/2017 4:23 AM
ですね、ビルドスペースはワークスペースで一個で、その中にプロジェクト全部並んでる感じだし
Avatar
omochimetaru 7/6/2017 8:52 AM
@norio_nomura のいう $BUILD_DIR/include にヘッダを展開する機能が static library プロジェクトで標準で組み込まれていました
8:53 AM
それでほとんど望ましい状態にできたんだけど
8:53 AM
微妙に微妙な感じになってしまった。
8:53 AM
ややこしいので詳細はまとめておいた。 https://github.com/omochi/xcode-build-test-ddd/tree/master
Contribute to xcode-build-test-ddd development by creating an account on GitHub.
Avatar
norio_nomura 7/6/2017 11:15 AM
試そうとしたら、サブモジュール3つにアクセスできませんでした。
Avatar
omochimetaru 7/6/2017 12:08 PM
あー、pushできるgiturlのほうにしてしまった
12:08 PM
あとで直しておきます
Avatar
omochimetaru 7/6/2017 12:55 PM
@norio_nomura 修正しました。
Avatar
norio_nomura 7/6/2017 1:08 PM
bbbcccのサブモジュールaaaにアクセスできないみたい。
Avatar
omochimetaru 7/6/2017 1:09 PM
あーーーーそこもかーーーーーー
Avatar
norio_nomura 7/6/2017 1:10 PM
みんなssh使ってるのね
Avatar
omochimetaru 7/6/2017 1:12 PM
直しました
1:12 PM
最初からcloneしなおしてみるとできるとおもいます
Avatar
norio_nomura 7/6/2017 1:13 PM
いけました
Avatar
omochimetaru 7/6/2017 1:14 PM
ddd.xcworkspaceを開いた上で
1:14 PM
cccのLinkLibraryにaaa, bbbのLinkLibraryにaaaを設定すると
1:14 PM
依存解決が動く状態になる
1:15 PM
ddd.xcworkspaceを閉じてからbbb.xcworkspaceを開いてもビルドできる。
Avatar
norio_nomura 7/6/2017 1:56 PM
なるほど、これは微妙だ
Avatar
omochimetaru 7/6/2017 1:56 PM
依存をつなごうとするとaaaの実行コードを含むbbbを作ることになってしまう。
1:57 PM
本来的な意味だと bbbのビルドが $build/include/aaa/aaa.h に依存していることから BBB -> AAA の依存が生成されないといけないけどそのような設定はできず。
Avatar
norio_nomura 7/6/2017 2:10 PM
aaaターゲットのHeadersビルドフェーズを一番上に持ってくると、bbbとcccにaaaをリンクしなくてもうまくいく様になるのは僕の環境だけだろうか
Avatar
omochimetaru 7/6/2017 2:11 PM
おそらく。dddから見るとaaa/bbb/cccは並列ターゲットになっていて
2:11 PM
同時に実行されるので
2:11 PM
間に合う確率が高くなっているだけだと思います。
2:11 PM
dddのビルドスキームから、Edit Schemeを開いて、Buildのタブを開いて Parallized build のチェックを外せば
2:12 PM
それはなくなるけど、aaaが先にくる保証がないです
Avatar
norio_nomura 7/6/2017 2:12 PM
libbbb.aaaa.oとかも含まれなくなる。
Avatar
omochimetaru 7/6/2017 2:12 PM
それはbbbのLink Binaryからaaaを外した場合ですよね?
Avatar
norio_nomura 7/6/2017 2:13 PM
そうだね、当然だ。
Avatar
norio_nomura 7/7/2017 12:18 PM
bbbcccのサブモジュールaaaにアクセスできないみたい。
~/.gitconfigに以下を追加することで、gitが常にhttpsでgithub.comへアクセスする様に指定できることを知った。 [url "https://github.com/"] insteadOf = git://github.com/ insteadOf = git@github.com: insteadOf = github.com:
(edited)
👏 2
Avatar
omochimetaru 7/13/2017 4:15 AM
Xcode9.3 beta いれてから Playgroundが
4:16 AM
Unable to create device set at /Users/omochi/Library/DEveloper/XCPGDevices
4:16 AM
ってでて使えなくなった・・・
Avatar
古いXcodeを終了させてもですか?
Avatar
omochimetaru 7/13/2017 6:00 AM
わ~治った・・・
6:00 AM
それも、試してたんですけど、そのときはまだ新しいXcode-betaの方のシミュレータをダウンロードしてなかったから・・・?
😻 1
6:00 AM
すいません、ありがとうございました。
Avatar
omochimetaru 7/20/2017 4:43 AM
xcode9.0 beta3 を使っているんだけど Ctrl + I の Re-Indent が、空行で押しても何も起きないのが不便だ
4:43 AM
以前は空行でやると適切なインデント位置にカーソルが移動してたから、書き始めるときにはだいたい押してる
Avatar
Tabキーでも適切な位置にカーソル移動すると思うんだけど、そういう話ではない?
Avatar
omochimetaru 7/20/2017 4:46 AM
Tabキーだと、右に行き過ぎてる時とか、タブ文字が右まであるときには変な位置にいっちゃうっぽい
4:47 AM
適切な位置より左にカーソルがあってかつ、適切な位置より右に空白文字が無い場合だけ、TABでOK
Avatar
脳筋なので⌘⌫からTabやってた
4:48 AM
⌘→, ⌘⌫, Tabかな
Avatar
omochimetaru 7/20/2017 4:48 AM
あれ? Ctrl + I が効かないのいつだ・・・?
Avatar
多分行消すショートカットはあるからそっちのほうがまだマシっぽい
Avatar
omochimetaru 7/20/2017 4:48 AM
なんか効かないときの条件が謎だな
Avatar
omochimetaru 7/20/2017 4:48 AM
Cmd + Del いいね。
4:49 AM
あ、おなじだ、カーソルより右に空文字があるときにCtl+Iが駄目だ
4:50 AM
行削除後ならCtrl + I でもいけるわ。なるほど。
Avatar
^Kでカーソル位置より後ろ消せるから
4:50 AM
^K, ^Lが最速かな?
Avatar
omochimetaru 7/20/2017 4:51 AM
^Lは何?
Avatar
ごめん、^Iだわ
4:51 AM
IをLの小文字と空目してた
Avatar
omochimetaru 7/20/2017 4:52 AM
w
4:52 AM
Cmd + Delで左消してCtrl + K で右消して Ctrl + I でインデントかw
Avatar
左側消さないといけない?
Avatar
omochimetaru 7/20/2017 4:54 AM
あーそっか
Avatar
それなら指の動き考えると⌘→, ⌘⌫, Tabの方がはやい
4:54 AM
消さなくていいなら^K, ^I
Avatar
omochimetaru 7/20/2017 4:54 AM
Ctr + K ; Ctr + I だけで大丈夫だ ありがとう
🍡 1
Avatar
omochimetaru 7/20/2017 9:26 AM
Ctr + K だとそこがもし右に空白がない場合には右の改行を食ってしまって下の行がせり上がってくることがわかった
Avatar
ダメじゃん
10:14 AM
⌘→⌘⌫Tabで。
Avatar
ぐぬぬ
Avatar
Tabは⇥なのか
Avatar
パッと見厳しそうではある
Avatar
Xcode 9 beta 4 来てる
👀 2
Avatar
Optionalクロージャ治ってないw
Avatar
7/11 リリースブランチ分岐で Optionalクロージャの修正は 7/12 。おしいw
Avatar
Swift4対応がこれのお陰で無限にPendingなのでヒジョーにつらいw
3:48 AM
Optional closureでデフォルトnilより、Void返す関数でデフォルト空関数の方がパフォーマンス良ければそっち提案して書き換えて~ってやるんですけどね
3:49 AM
Optional closureでnilの方が普通にパフォーマンス良くて困る
Avatar
norio_nomura 7/27/2017 1:38 AM
SWIFT_REPORT_ERRORS_TO_DEBUGGER ってのがXcode 9 beta 4で追加されてる。
1:39 AM
-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 - The Swift Programming Language
Avatar
norio_nomura 7/27/2017 1:53 AM
あいや、まだGUIから使える様になってなかった。
Avatar
norio_nomura 7/28/2017 9:49 AM
SwiftPMだとSwift 3.xとSwift 4.0のどちらでもビルドできて、どちらでも依存先として使えるパッケージを作れるけど、Xcodeでビルドされるライブラリの場合、SWIFT_VERSIONはプロジェクト設定で固定されてしまうから、ブランチを分けるしか無いよね。
Avatar
分けるしか無い気がする
9:50 AM
SPM、まだiOS9以上とか指定できないですよね
9:50 AM
コードにavailable書けってことかなぁ
Avatar
norio_nomura 7/28/2017 9:55 AM
YAMLのCodable対応Encoder, Decoder実装のソースをSwift 3.0.2以降ならビルドできる様にしてるけど、Xcodeが3.x or 4.0にロックインしてしまうせいで、無駄な努力に思えてきてしまう。 https://travis-ci.org/jpsim/Yams/builds/258439236
Avatar
norio_nomura 8/1/2017 12:54 AM
推測された型をインラインで表示するAppCodeの機能、Xcodeに欲しいな。 https://twitter.com/appcode/status/892062933936726017
#WhyAppCode: Have type hints displayed inline for #swiftlang variables via ⇧⌘A → "Show Swift Type Hints" https://t.co/gWyndSB8TK
Avatar
IntelliJ使ってるとこの辺の機能がかなり便利
🙂 1
12:56 AM
関数の引数ラベルとかも表示される言語があって、これはSwiftでは役に立たないけど
Avatar
norio_nomura 8/1/2017 1:02 AM
JetBrainsのOpen Source Licenseを久しぶりに申し込もうかと思ったら、以前より条件が厳しくなってるな。 https://www.jetbrains.com/buy/opensource/
JetBrains, creator of the best Java IDE - IntelliJ IDEA - is a technology-leading software development firm specializing in the creation of intelligent development tools.
Avatar
norio_nomura 8/2/2017 2:44 AM
// swiftlint:disable …を入力しようとすると高確率でXcode 9 beta 4が固まる 😞
Avatar
コメントで死ぬ件、 #apple-official-event の直近の話題と同じかな。
Avatar
norio_nomura 8/2/2017 4:01 AM
ですね
Avatar
ロシアの方から↓のような質問を受けたんですが、何かわかる人いませんか?日本語使うと行の高さがおかしくなる話だと思うんですが、僕はそういうものと受け入れていたので対策はわかりません。 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.
12:54 AM
僕はRicty使って快適にやってます
Avatar
ありがとう。伝えておきました。 (edited)
Avatar
Xcodeのエディタを左右に分割して使ってるとき、右ペインで置いてあったブレークポイントで止まったときは右ペインでステップ実行とかさせてほしいんだけどそういうのできませんよねー
Avatar
Preferences > Navigation > Navigation > Uses Focused Editorにチェックつけて 右ペインにフォーカスさせた状態でブレイクさせたら右ペインでもステップ実行できますけど、これじゃだめっすかね (edited)
💯 1
Avatar
beta5来ましたね
❗ 2
Avatar
@ありぜ 右ペインでステップ実行のやつ、これだいぶ嬉しいです ありがとうございます
☺ 1
Avatar
omochimetaru 8/8/2017 2:09 AM
xcodeをダウンロードしてインストールするたびにTemplatesを差し替えるのがだるい
Avatar
omochimetaru 8/8/2017 9:57 AM
beta5でもSKSがフリーズするのは治っていない・・・
Avatar
omochimetaru 8/9/2017 1:42 AM
フリーズして5秒ぐらい待ってると回復するように改善している気がする。CPU100%のメモリ5Gとかなってるけど。
🐽 1
Avatar
omochimetaru 8/9/2017 1:54 AM
だんだん6Gとかなるしやっぱバグってるのかなあ
Avatar
omochimetaru 8/9/2017 11:30 AM
Time Profiler とかのツールを、デバッグビルドに対して使用する方法ってありますか? Schemeの設定で profile 向けの Configuration を Debug に切り替えたら、一見うまくいったんですが、 Time Profiler でシンボル名が表示されなくなって、アドレスしか出なくて、使い物になりませんでした
11:34 AM
あ、 Releaseビルド向けの Optiomization の設定を -O0 にするっていう方法でとりあえず目的は果たせそうです。
11:34 AM
ここは後でもとに戻さないといけないので、Debugビルドをproflingできたほうが望ましいですが。
Avatar
@omochimetaru 下記方法でもだめですかね?? 1. DebugでアプリをRun 2. Xcodeのメニュー > Open Developer Tool > InstrumentsでInstruments起動 3. Instrumentsで使用したいProfile(Time Profiler等)選択 4. Instrumentsのウィンドウ左上で接続している端末+Profile使いたい「1.」のアプリ選択 5. RecordボタンでProfile開始
Avatar
omochimetaru 8/9/2017 4:06 PM
@ありぜ なるほど、通常のRunから実行して後から直接アタッチするんですね。それ自体はうまくいきましたが、同じようにシンボル名がアドレスだけになってしまいました・・・
😣 1
Avatar
norio_nomura 8/9/2017 11:41 PM
以前はInstruments用のビルド設定 Profile がテンプレートに含まれていたけど、最近は含まれなくなったね。Instrumentsに必要なビルド設定の資料を以前探したけど、公式に書かれたものは見つけられなかった。
Avatar
なるほど
Avatar
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym でだめですかね?
😮 2
Avatar
omochimetaru 8/10/2017 7:32 AM
お・・・ 今ビルドできない状態なんであとで試してみます〜〜
Avatar
omochimetaru 8/10/2017 9:08 AM
@rintaro いけました!なるほど〜〜〜これか〜〜〜〜〜
👍 1
Avatar
omochimetaru 8/17/2017 9:28 AM
Leaks使うと処理がおもすぎるのか30秒ぐらいフリーズして、プロセスが落ちてしまう・・・
Avatar
Xcode9 beta6とiOS11 beta7 キマシタワー
😎 2
Avatar
安定性上がってるといいな
Avatar
omochimetaru 8/22/2017 3:09 AM
Leaksかけるとクラッシュするの変わってない・・・
Avatar
omochimetaru 8/22/2017 4:06 AM
黄色いフォルダのアイコンに
4:06 AM
左下に三角形のついてるタイプの新しいアイコンが有る
4:06 AM
実際のディレクトリと接続してるかどうかを表しているのかな?
Avatar
omochimetaru 8/22/2017 5:46 AM
「XCBBuildServiceが予期しない理由で終了しました」
5:46 AM
壊れ方が良くなった気がする!w
Avatar
🤔
😇 1
Avatar
>壊れ方が良くなった気がする! 強い…
Avatar
omochimetaru 8/22/2017 8:56 AM
1度クラッシュすると、以降ビルドできなくなって、xcodeの再起動がひつよう
: The Xcode build system has crashed. Please close and reopen your workspace.
8:56 AM
SKSだけ殺せば良かった状態と比べて不便になっている・・・
8:56 AM
でも安定性は上がってる
Avatar
めっちゃめんどいやん
8:57 AM
reopenしんどい
Avatar
omochimetaru 8/22/2017 8:57 AM
途中保存なエディタとか開いてると厳しそう。
Avatar
omochimetaru 8/22/2017 9:22 AM
あれーなんかリビルド検知がおかしいなあ
9:22 AM
FrameworkとAppをわけて作業してるんだけど、Frameworkのリビルドがされずにすり抜けてしまう事が多発している・・・ (edited)
Avatar
なんか重いと思ったら Interface Builder が暴走(?)して CPU 350% 使用してた😵
Avatar
omochimetaru 8/24/2017 1:45 AM
ww
1:45 AM
beta5ですか?
1:45 AM
あいや、今はbeta6か
Avatar
まだアップデートしてなくてbeta5
Avatar
omochimetaru 8/24/2017 1:45 AM
なるほど
Avatar
やば
1:46 AM
強制終了したら storyboard がぶっ壊れたww
1:47 AM
あ、 Xcode を再々起動したら直った。焦った。
Avatar
Mac がうぃんうぃん言い出したと思ったらまた 280% になってた・・・
Avatar
SourceKitService の CPU 利用率がついに 498% を記録した・・・。 (edited)
Avatar
$ sample ${SourceKitServiceのPID} の結果で radar バグリポート投げればどこで詰まっているか調べてくれるかもしれないですね。
🙂 1
Avatar
Xcode9のGM版、非ASCII文字がある行だと行の上に謎の隙間ができる... 🤔
Avatar
omochimetaru 9/13/2017 4:53 AM
それってxcode昔からそうじゃないです?
4:54 AM
日本語が混ざると行の高さが壊れるやつ
Avatar
ほんとだ...(Xcode8開いて見てみた)
Avatar
そんなことより俺今月末で今の会社やめるんだけどiPhone X対応どうすんだよ俺やる気ないぞ
👀 1
5:05 AM
(ちなみに弊社のiOS開発者は私一人だけです
Avatar
omochimetaru 9/13/2017 5:05 AM
えっ、やめちゃうのー
Avatar
やめます
Avatar
omochimetaru 9/13/2017 5:05 AM
貴重な御社の知り合いだと思ってたのにw
Avatar
おちんぎんが少ないので
Avatar
omochimetaru 9/13/2017 5:05 AM
そっか・・・
Avatar
まあおちんぎんは我慢できる領域ですよ、我慢できない領域もあったので
5:07 AM
gitどころかsvnすら使わないヒューマンパワーでバージョン管理してるとか、コードレビューの文化がないとか、あまつさえC++使ってるくせにオブジェクト指向じゃないとか
🌃 2
😨 1
5:07 AM
それなのにそんなプロジェクトの面倒も見ないといけないとか
5:08 AM
平均ファイル行数7000行、平均関数行数3桁、ネストが7、8階層とか平気に書いてるソースコードとかもう読みたくない
😂 5
Avatar
⌘+control+クリックでジャンプしようとするとXcode固まるの自分だけだろうか??ちなGM版
Avatar
omochimetaru 9/13/2017 7:28 AM
GMseedですが飛べます
Avatar
ふむ。どうもです。 確率1/2くらいで今のところ発生してて辛い
Avatar
たぶん自己解決 xcode-selectが削除したXcode9beta6のパスになってた
Avatar
GamesでXcode追加していたつもりでしたが、Xcode 9に入れ替わったためか外れてて、今また追加しました 🤔
Avatar
Kishikawa Katsumi 9/22/2017 3:56 PM
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() } }
3:57 PM
^ このコードをXcode 9でReleaseビルドしようとすると終わらない。
Avatar
omochimetaru 9/22/2017 5:04 PM
おお本当だ コマンドラインで swift -O a.swift でハングする Xcode9.0 GM Seed 同梱版
Avatar
Kishikawa Katsumi 9/22/2017 5:05 PM
確認ありがとうございます。別のマシンでも確かめようと思ってXcode 9ダウンロードしてたけど、このままバグレポートします。
Avatar
omochimetaru 9/22/2017 5:07 PM
ちょっと変えると発症しなくなりますね
Avatar
Kishikawa Katsumi 9/22/2017 5:08 PM
print()が影響しているのとかすごく謎
Avatar
omochimetaru 9/22/2017 5:08 PM
少し短くできないか試してるけどなにかやると直るw
Avatar
どうやって見つけたんですかこれw
Avatar
Kishikawa Katsumi 9/22/2017 5:08 PM
public class をinternalにしてもビルドできるから最適化周りだとは思う。
Avatar
omochimetaru 9/22/2017 5:09 PM
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() } }
5:09 PM
ちょっと短くなった
Avatar
Kishikawa Katsumi 9/22/2017 5:09 PM
関わってるところからビルドが終わらないけどどうしたらいいという相談を受けて、コードを調べていっただけです。
Avatar
なるほど
Avatar
omochimetaru 9/22/2017 5:10 PM
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)
5:10 PM
意外と class func は関係ない
Avatar
Kishikawa Katsumi 9/23/2017 4:50 AM
https://bugs.swift.org/browse/SR-5968 レポートしました。
🎊 8
Avatar
Kishikawa Katsumi 9/25/2017 7:56 PM
The problem is that within SimplifyCFG we call this for an instruction within unreachable code. And within an unreachable block it can happen that defs do not dominate uses (because there is no dom...
🎉 9
Avatar
ステータスがちゃんとResolvedになってる
Avatar
omochimetaru 9/28/2017 6:33 AM
アプリとフレームワークでターゲットを分けて開発してる時、Swift Error ブレークポイントを貼っておいても、フレームワークの中で throw されるとブレークしないのって前からそうでしたっけ
Avatar
omochimetaru 9/28/2017 6:40 AM
workspace / App.xcodeproj / target App workspace / Lib.xcodeproj / target Lib (framework) xcodeprojもわけている
6:44 AM
あ、わかりました。 Optiomization Level が -O だと止まらないみたいでした。
6:45 AM
Debugビルドでも-Oに設定していた。
Avatar
Debugでも-O、Debug只管難しそう
Avatar
Xcode9についてるシミュレータ、Stay in frontできなくなった…?
5:34 AM
ド不便
5:34 AM
なんとかなりませんか
Avatar
ほんとだ、できないですね
5:35 AM
There used to be a button called "stay in front" in older versions of ios simulater. I used this often, but in recent updates it seems to be removed. Is there a any way to activate this feature ? ...
Avatar
シミュレータアプリの機能でできないんだったら、ウインドウ操作系のMacアプリでそういうことができるやつが無いかなと思ってるんだけど誰か知らないかなあ
Avatar
任意のウィンドウをStay in frontできるアプリなかったっけ
Avatar
そう、それを知りたい
Avatar
間違いなくあったんだけど今も動くかは不明、ちょっとほってみる
Avatar
デファクトが無いなら適当にいれてみるか〜って感じ
Avatar
どのアプリだったか忘れてしまった、BTTに入ってないかなと思ったけど入ってないぽい
Avatar
BTTにありそうわかる
Avatar
Project navigator内のフォルダ展開状況を記憶してくれないのは、swift package generate-xcodeprojで作成したプロジェクトだからだろうか?
Avatar
SwiftPMで作ったプロジェクトでも特にいつもどおり記憶すると思います。 generate-xcodeprojを再び行ったときには、リセットされる。
Avatar
ぬぬ、別のnavigatorに切り替えて戻ると全部閉じちゃうんですよね… (edited)
Avatar
自分が気づいてないだけで同じ現象に遭遇しているかも。
Avatar
Make Xcode 9’s Open Quickly function work better with this one not-so-weird trick. (You’re welcome.) https://t.co/jq98JgiZ4E
3:24 AM
Swift Generated Interfaceモードを有効にします。すべての結果は、以前のようにランダムな結果ではなく、スウィフトとして表示されます。
3:25 AM
このSwiftマークを有効にしたら、どうなるのかイマイチよくわかってないのですが、どなたか詳しく知っている方いますか?
3:26 AM
スイッチオンにしてobjcの.hを開くと空ファイルなので 🤔 な感じです
Avatar
omochimetaru 11/9/2017 3:29 AM
そもそも Open Quickly を使ったことがない・・・
Avatar
omochimetaru 11/9/2017 3:30 AM
Cmd + Shift + O か
Avatar
ですです
Avatar
omochimetaru 11/9/2017 3:30 AM
あっ、わかったわかった
3:31 AM
たしかに 鳥のアイコンつけたら Objcヘッダーが Swift 表示になった。
Avatar
@omochimetaru Open Quickly使わずにどうやってプロジェクト内のファイル移動してるの?
Avatar
omochimetaru 11/9/2017 3:31 AM
左のツリーで移動してるよ。
Avatar
すごい
Avatar
ファイル増えると無理ゲーじゃない?
Avatar
omochimetaru 11/9/2017 3:31 AM
(もしかして、私、情弱・・・?
3:32 AM
無理じゃないよ それしかやったことないし
Avatar
Open Quicklyを使いたくない理由も別になさそうな感じね
Avatar
左のツリーの一番下にFilterっていうのがあって
Avatar
omochimetaru 11/9/2017 3:32 AM
スイッチオンにしてobjcの.hを開くと空ファイルなので 🤔 な感じです
これはなんか変ですね、いろいろ再起動すると直ったりして。
3:32 AM
これでファイル名をフワッと入れれば移動できるんか
Avatar
HogeFugaViewController.swiftを開くのにhfvcで行ける以上に楽なファイル移動ないと思う
Avatar
omochimetaru 11/9/2017 3:33 AM
そんな雑なのでいいの
Avatar
ほかにhfvcにマッチするファイルが無ければ一発
Avatar
ファジーでいけるのは楽
Avatar
@tarunon えたるのんもファイルツリーなの
Avatar
omochimetaru 11/9/2017 3:33 AM
マジかあ 練習します
Avatar
二刀流やで
Avatar
まじか
Avatar
omochimetaru 11/9/2017 3:33 AM
ぐぬぬ・・・
Avatar
記憶が頑健じゃないと Open Quick は死ぬ
Avatar
Xcodeで一番使うや
Avatar
omochimetaru 11/9/2017 3:34 AM
ファイルツリーのどこに何が入ってるかは全部頭に入れてるわ
Avatar
ファイルツリーの一番下のFilterのよこっちょに時計マークあるやろ
Avatar
omochimetaru 11/9/2017 3:34 AM
フィルターはときどきつこうてた
Avatar
それ青にすると最近触ったファイルだけがフィルタリングされて便利
Avatar
スイッチオンにしてobjcの.hを開くと空ファイルなので 🤔 な感じです これはなんか変ですね、いろいろ再起動すると直ったりして。
Avatar
ダイアログが出て来る"開く" Cmd + O と OpenQuickly Cmd + Shift + O のキーバインド入れ替えてる
Avatar
omochimetaru 11/9/2017 3:34 AM
それは知らなかった・・・>時計
Avatar
再起動しても同じだった
Avatar
omochimetaru 11/9/2017 3:34 AM
うーんなんででしょう・・・ > kuro さん
3:34 AM
他の人はちゃんと動く?
Avatar
時計の横にある謎の□は、gitと差分のあるファイルが検出される
3:35 AM
この辺すごく便利だよ
Avatar
omochimetaru 11/9/2017 3:35 AM
これは git のアイコンだったのか
Avatar
@omochimetaru なに確認すればいい
Avatar
なんか、最初はswiftに参照をもつ.hを探すのを有効にするみたいな機能かなと思ったけど、違うようでした。 (edited)
Avatar
omochimetaru 11/9/2017 3:35 AM
@hiragram Open Quickly の右にあるトリのアイコンを青くしてから
3:35 AM
OpenQuick;y で ObjC ヘッダーを開くと
3:36 AM
ObjCヘッダーが Swift変換されたものが開かれる
Avatar
そうだね
3:37 AM
そう動いているように見える
3:38 AM
UITableVIewDataSourceでかくにんした
Avatar
omochimetaru 11/9/2017 3:38 AM
🙏 1
3:38 AM
↑録画してみた。
3:38 AM
録画下手すぎて見切れてるけどw
Avatar
わざわざObjcのヘッダ見たいことある?
Avatar
録画ありがとうございます、うーん、いまいち何が便利なのか
Avatar
omochimetaru 11/9/2017 3:42 AM
てかさ、似たような機能で
3:42 AM
swiftのソース編集してる時に
3:42 AM
Cmd + Crtl + ↑ おすと
3:42 AM
Swiftのヘッダーになる
Avatar
ほんとですね
Avatar
これこそ何に使うんだ?
Avatar
あーこれだと、外部に公開されるものが明らかになる?
Avatar
omochimetaru 11/9/2017 3:43 AM
ライブラリ作るときに、ユーザーにどう見えるかがわかるし
3:43 AM
他の人の書いたコードを読むときに
3:43 AM
インターフェースだけまず見通せる
Avatar
これはちょっと個人的には嬉しいです
Avatar
Cmd + Crtl + ↑
Objective-CのInterfaceと実装ファイル行き来する時には多用してました。
Avatar
別ターゲットにあるクラスの定義にジャンプしたときにヘッダが表示されちゃうのときもこれで切り替えられるのかしらもしかして
Avatar
omochimetaru 11/9/2017 3:55 AM
Objective-CのInterfaceと実装ファイル行き来する時には多用してました。
そうですね、 C++ とかでも多用するんで手クセがついていて、うっかりswiftのときに押したら発動して発見w
🐶 1
Avatar
Cmd + Crtl + ↑ は棚からぼたもちでした。ありがとうございました!
🙂 1
Avatar
swift-3.1.1-RELEASEツールチェインはXcode 8.3が入ってないと使えないのね…
Avatar
Convert > To Current Swift Syntax… でXcodeがクラッシュする条件はなんだろう?
Avatar
特定難しそう
Avatar
プロジェクト内のPlaygroundを削除したら落ちなくなった。
Avatar
あーーーー
12:49 AM
Playgroundで落ちる、ありましたありました
12:50 AM
RxSwiftもいっときPlaygroundあるからプロジェクト開けすら無いことがあった
Avatar
Playgroundの参照をxcodeprojからxcworkspaceへ移すと、とりあえずそのプロジェクトへ依存するワークスペースでは落ちなくなる。
Avatar
omochimetaru 12/5/2017 8:19 AM
Xcode9.2でアプリの申請しようとするとbeta版とか言われる件について・・・。なぜ正式版で配布はじめたし。Xcode古いの落とすかなぁ。。。
8:19 AM
今日配信されてるやつこんなツイートあるけど通常どおり申請できた方も居るだろうか?
8:21 AM
しかもConditional conformance が通るらしい。 from #waiwai-swiftc
Avatar
かっくん 12/5/2017 8:21 AM
しかもConditional conformance が通るらしい。 from #waiwai-swiftc
Swift 4.1 devなのでこれはまだ通らないはずですっ
Avatar
そのうち通るだろうと思って5分おきにpilot uploadしてるけどinvalid toolchainです
Avatar
omochimetaru 12/5/2017 8:23 AM
5分おきw
Avatar
cond confは通らない、エッと思って今確認した
Avatar
omochimetaru 12/5/2017 8:23 AM
なるほど。
Avatar
$ swift -version Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2) Target: x86_64-apple-macosx10.9
Avatar
なんかAutolayoutの挙動が怪しくて体調悪くなってきたんですが同じ状態の人います?
Avatar
カスタムツールチェーン 有効にしちゃっているだけじゃないかな?
Avatar
omochimetaru 12/5/2017 8:23 AM
ああ、xcodeじゃなくて、 @かっくん さんの書き込みは、4.1-dev snapshotのことでしたか。
👌 1
Avatar
なるほど
Avatar
omochimetaru 12/5/2017 8:24 AM
AppStore申請が通らない件は @banjun さんもってことは本当っぽいですねえ
Avatar
いつもの、iTunes Connect側の対応が遅れてるだけじゃないかなぁと思ってますけど、他の怪しさもあるとすると謎ですね
Avatar
Xcode 9.2 app uploading broken? | Apple Developer Forums https://forums.developer.apple.com/thread/93253
8:25 AM
みんな困ってるみたいですねー 😫
😫 1
Avatar
betaじゃなくても、macOSが上がった日にビルドして出すとinvalid toolchainだったりするので、明日にはいけるのかと
✨ 1
Avatar
omochimetaru 12/5/2017 8:27 AM
なるほど、わりとよくあるんですね
Avatar
Auto Layout殺そう
Avatar
かっくん 12/5/2017 8:27 AM
出た殺すマン
Avatar
イェア
Avatar
Xcode9.2でSwiftを並列コンパイルしてくれるようになる裏設定(前からあったやつとの違いは不明) defaults write https://t.co/vp7sgv3Eck.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively -bool YES https://t.co/n6Lhv0v9IH
Avatar
[09:40:02]: --- Successfully uploaded package to iTunes Connect. It might take a few minutes until it's visible online. ---
5分おきpilot uploadがとおった
😹 1
👏 5
Avatar
TestFlightまで通りました ✈
🎉 1
Avatar
状況的には、GM版出た直後に数時間、申請受付不可な時間がありますが、それに似た感じでしたかね( ´・‿・`)
Avatar
たぶん、それとおなじ、 い つ も の、って感じだと思います
😂 2
Avatar
norio_nomura 12/6/2017 2:17 AM
これ気になる https://twitter.com/usagimaruma/status/938062738550427653 リリースノートが間違ってて、正しい試し方は defaults write com.apple.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively -bool NO らしいよ。 https://twitter.com/rballard/status/938216933303885824 (edited)
The Xcode 9.2 release notes mentioned an experimental feature that may improve Swift build times, enabled with the "BuildSystemScheduleInherentlyParallelCommandsExclusively" user default. Unfortunately, we documented this incorrectly. Set it to "NO", not "YES", to try this out.
👀 1
Avatar
あら、そうなんですね
Avatar
xcode 9.2 が正式リリースされちゃったから xcode 9.2 beta ってもうダウンロードできないですかね? Apple Dev のダウンロードのところだと、beta と書かれたのはみつけられず…
Avatar
Kishikawa Katsumi 12/6/2017 2:28 AM
過去の正式リリースされたXcodeはすべてダウンロードできますが、Betaは無理ですね。
Avatar
やっぱそうですよね。ありがとうございます。
Avatar
非公式ならありそうだけど…怖い
Avatar
Kishikawa Katsumi 12/6/2017 2:31 AM
たぶんベータをすべて手元に残している人はけっこういると思いますね。SDKとかデベロッパーツール系に携わってる人など。 (edited)
👀 1
Avatar
Xcode 9.2 になりましたが、XVim2 の存在を忘れていて無事死亡
Avatar
Xcode9.2でsubmitできないみたいなの聞いてアップデート延期してる
10:12 AM
DTXcodeBuildの値をいじらないと Xcode9.2でsubmitできないんだと。ひどすぎる / “ios - Xcode 9.2 Upload to App Store fails with description l…” https://t.co/EkcCBOttU3
Avatar
AppCode いいですよ
Avatar
Xcode9.2問題は解決したとおもう
Avatar
お、そうなん。
Avatar
おお、そうなんですか
Avatar
このスレの過去ログを遡ると解決したとあります > [09:40:02]: --- Successfully uploaded package to iTunes Connect. It might take a few minutes until it's visible online. --- 5分おきpilot uploadがとおった
Avatar
【Mac】Xcode付属のファイル比較ソフトFileMerge http://www.atnr.net/filemerge/
Macでファイルの差分を調べるソフトFileMergeを紹介します。Xcodeをインストールしていれば誰でも使うことができます。 HTMLやCSSなどのテキス
6:07 AM
これ知らなかったんですが、便利ですねー(わりと有名?)
Avatar
ここにありますー
Avatar
あぁ、そこからも起動できたんですね!ありがとうございます
6:09 AM
ちなみに、この差分を見るために使ってみました https://developer.apple.com/news/?id=12202017a
The App Store Review Guidelines have been updated. We review all apps submitted to the App Store in an effort to determine whether they are...
Avatar
6:11 AM
普段はこれで済むことが多いですけどそれ以外の時はそれ便利そうですね
Avatar
この前発表があったPre-Orderなどの項目が追加になってました>アプリレビューガイドライン
👀 1
6:12 AM
@omochimetaru ですねー!
Avatar
ちなみにそれ使いたい時は自分はいつもSpotlight開いてfilem まで打って立ち上げてます
👍 1
Avatar
僕は https://www.kaleidoscopeapp.com を愛用しています( ´・‿・`)
Easily spot the differences in text and image files. Review changes in seconds with the world's most advanced iOS and Mac diff tool.
👀 4
✋ 1
6:52 AM
有料ですが 🐶
Avatar
Kaleidoscopeいいですね、めっちゃ高いですが画像比較かなり使えます
Avatar
おおっ 画像比較すごそう
Avatar
FileMergeはディレクトリ比較がKaleidoscopeよりも使いやすいので、opendiff /Applications/Xcode-beta.app /Applications/Xcode.appとかやりますね。
😮 2
Avatar
FileMergeはファイル比較前のプリプロセッサを自由に設定できるのが地味に便利。
Avatar
なんと、ディレクトリ比較もできるんですね・・!
Avatar
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はtestCtestBのcallersは無しになるのが何か釈然としない…… callerじゃないと言われればそうなんですが
Avatar
Kishikawa Katsumi 1/16/2018 7:42 AM
確かに。Xcodeにバグレポーとしたらいいと思います。
Avatar
omochimetaru 1/16/2018 7:42 AM
その解析は難しそうだなあ・・・
Avatar
単純に参照があったらカウントみたいにできないですかね?
Avatar
omochimetaru 1/16/2018 7:43 AM
参照箇所としてはそれで見れる
7:43 AM
呼び出してるとは限らない
Avatar
まぁそれは確かに
Avatar
callerじゃないにしても参照したっていうのを見たいんじゃないかな
Avatar
となるとcallersに含まれないのがおかしい じゃなくて 参照を一覧できる機能が欲しい になるのでバグ報告には不適ですね
Avatar
Kishikawa Katsumi 1/16/2018 7:46 AM
呼び方はバグでも機能リクエストでもどちらでもいいと思いますが、testBのCallersでtestCが出てきてほしいというのは自然だと思います。
7:46 AM
そうじゃないと何らかの見落としが起こって困るということですよね。
Avatar
そうですね。 今見てたとこは他に呼び出しがなくてcaller無しになってて気付いたんですが
Avatar
caller って Find Call Hierarchy のことですか?
Avatar
Kishikawa Katsumi 1/16/2018 7:48 AM
コードエディタの左上角のボタンじゃないですかね。
Avatar
僕はそっちから見てましたね>左上角
Avatar
omochimetaru 1/16/2018 7:49 AM
左上のボタン、「Ctrl + 1」でいつも使ってる
Avatar
なるほど。こっちからなら見えるので、機能要望だすと良いと思います。
Avatar
omochimetaru 1/16/2018 7:51 AM
マジか
Avatar
いや見えないと思いますよ
Avatar
これ文字列検索では
Avatar
呼び出し階層として見たいというのが今の話なので
Avatar
omochimetaru 1/16/2018 7:51 AM
いや、 Text じゃなくて Referencesのほうは
Avatar
オッ
Avatar
omochimetaru 1/16/2018 7:52 AM
Sema考慮なんじゃね
Avatar
ああこれはReferenceで見てるのか
Avatar
omochimetaru 1/16/2018 7:52 AM
Find > Call Hierarchy ってやつもあるみたいだ
Avatar
testB(_:) でも効くので、sema 考慮してると思います。
Avatar
なるほど。これでレポート書く意義が消滅しました。
🙄 1
Avatar
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) } いや、これで効かなくなっちゃうので、使えない。
Avatar
class C.testB(_:) ではなくて C.testB(_:) なら見えるのかー。 "Call Hierarchy" と文法が違うのがなんとも。。。
Avatar
そっちだと見えますね
8:03 AM
連続で検索してるとクエリが更新されてなかったり検索結果が更新されてなかったりしてよく分からなくなってくる
Avatar
もとい、 コンテキストメニューから "Find Call Hierarchy" したときの文法と違うのがイケてない。
Avatar
これ別にclassって付けなくても検索できるんでそっちで良い気が……
Avatar
コンテキストメニューから "Find Selected Symbols in Workspace" や "Find Call Hierarchy" したときに、 class がついちゃうというバグなのかも。
Avatar
シミュレーターでもテストでも普通に動くコードなのに、Playgroundだけなぜか error: Execution was interrupted, reason: EXC_BAD_ACCESS のエラー出るんですけど理由はなんでしょう?というかPlaygroundのデバッグってどうすればいいんでしょう?
Avatar
とりあえず現象を再現するもののブランチを作っときました、Testからコピーした全く同じコードだけど、Testは普通に成功するのになぜかPlaygroundだけEXC_BAD_ACCESSが出てクラッシュします 🤔 https://github.com/el-hoshino/NotAutoLayout/tree/Playground-Bug
NotAutoLayout is a framework to help you layout subviews without Auto Layout constraints.
Avatar
Kishikawa Katsumi 1/24/2018 4:44 AM
私の環境だとPlayground動いてますけど何か再現させる条件他にありませんか?
4:44 AM
Avatar
ツールチェイン?
Avatar
Kishikawa Katsumi 1/24/2018 4:47 AM
う、4.1のツールチェーン選択したらXcodeが起動しなくなっちゃった。
🙇 1
4:48 AM
いずれにしても、今回の問題は何か環境の違いによるものっぽいですね。
4:49 AM
Crashed Thread: 3 Dispatch queue: -[IDEPlaygroundAuxiliarySourceCompilationManager init] :: NSOperation 0x7f9bf9467890 (QOS: BACKGROUND)
4:49 AM
これで起動時にクラッシュするようになってしまった。。。
Avatar
起動時にプロジェクト開くか開かないか聞かれる気がする
4:51 AM
最悪Playgroundファイルを削除すれば助かると思います
Avatar
Kishikawa Katsumi 1/24/2018 4:52 AM
うっす。まあクラッシュログがおもしろいのでこれはこれでもうちょっと様子を見てみます。
4:53 AM
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)
4:54 AM
Playgroundはmktmpに*.playgroundに書いたソースコードをPlayground用に改変を加えて書き出して、それを何か特殊な仕組みで実行しているんですけど、それがたぶんIDEPlayground〜っぽいですね。
Avatar
ツールチェインでPlaygroundを動かすための某が足りてないと動かない、という話は前に聞いた気がする
Avatar
Kishikawa Katsumi 1/24/2018 5:04 AM
とりあえず復旧させました。元のXcode 9.2に付属のツールチェーンだと動いてます。問題の現象はXcodeのクラッシュじゃなくてEXC_BAD_ACCESSということなので別の問題があると思いますが、少なくともPlagroundのコードとworkspaceの構成に致命的な問題があるということはなさそうです。
Avatar
自分の環境ですとこれですね… 🤔
5:30 AM
しかも3台も同じ現象で、SierraとHigh Sierraも同じです… 🤔
5:36 AM
一回ローカルのプロジェクト削除してGitHubから落とし直してみます
Avatar
Kishikawa Katsumi 1/24/2018 5:45 AM
^ そのコードも実行できましたね。さっぱりわからない。
Avatar
落とし直してみてもダメでした 🤔
6:04 AM
あすみません、念のためですが岸川さんは Playground-Bug というブランチを落としてますでしょうか?
Avatar
Kishikawa Katsumi 1/24/2018 6:04 AM
ブランチが違いますね。
Avatar
やはりか、おそらくそのブランチが feature/#40- のブランチしか発生しないはずかと思われます
Avatar
Kishikawa Katsumi 1/24/2018 6:07 AM
ブランチ切り替えてやり直してみます。コードを減らしていって、原因を突き止めるっていうのはよくある手法ですけど、これファントムタイプでこれ以上減らすのは難しいっぽいですね。
Avatar
一応最終的に LayoutMaker<Layout> という型を作るところで確実にPlaygroundでは落ちる、というところまではなんとか突き止めましたが、原因がなんなのかがさっぱり…
6:09 AM
そもそもTestも通ってるのにorz
Avatar
Kishikawa Katsumi 1/24/2018 6:09 AM
お、再現しました。ちょっと別のことするのでまたあとで触ってみますけど、私がここから調べるならとりあえず再現するコードとしないコードがあるので、git bisectしてみますかね。
6:10 AM
Playgroundだからちょっと手間ですけど。
Avatar
ありがとうございます!ただ正直 feature/#40- の修正のコミットが修正量が膨大ゆえにかなり雑で…💦
6:11 AM
(ファントムタイプを取り入れることでほぼ一から作り直してるようなものになっちゃってorz
Avatar
Kishikawa Katsumi 1/24/2018 6:15 AM
確かに大きな変更ですねえ。各コミットはそれぞれビルドできて動きます?それならとりあえずどこで問題が起こるかをgit bisectで突き止めるのはとっかかりにはなりそうですけど、各コミットが動かないのならまずそれが難しいですね。
Avatar
それがほとんどのコミットは実は動かないです、時間あるときにとりあえずできるところまでやってコミットしてプッシュしちゃってたのでorz
6:16 AM
(時間あるときにちゃんとRebaseしてコミット整理し直した方が良さそうですね…
Avatar
Kishikawa Katsumi 1/24/2018 6:17 AM
なるほど。じゃあPlaygroundのコードから追っていく方がいいかな。。。
Avatar
そうですね、申し訳ありませんorz
Avatar
Kishikawa Katsumi 1/24/2018 6:28 AM
ここから調べるなら地道にprintデバッグですね。呼ばれてるメソッドにprint()をちりばめて再ビルドして実行する、って感じです。パッとみてstoreHeightメソッドでmaker変数をシャドーイングしてるのが怪しいかと思いましたが全然関係なかったです。 (edited)
Avatar
public struct LayoutMaker<Property> { unowned let parentView: UIView let didSetProperty: Property } の unowned をはずしたらとりあえず動きました。
😍 1
Avatar
Kishikawa Katsumi 1/24/2018 6:32 AM
ああそれっぽい。
6:34 AM
なぜかmaker.parentViewは成功するけどそれ以外でmakerを触ろうとするとクラッシュするので何かmaker変数が壊れてるんだろうなという風に見えるので。
6:36 AM
直接の原因としては解放済みのオブジェクトにアクセスしてることだと思うので、リリースビルドしたり条件を変えるとPlaground以外でも再現しないですかね?で、たぶん本当の原因はそれが解放済みになってしまうことなのでそれを直すことかと。
6:36 AM
@rintaro 素晴らしい👏🏻
Avatar
@rintaro @Kishikawa Katsumi ありがとうございます!!ということはおそらくPlaygroundのUIViewの生存期間と関係あったりするようなイメージでしょうか?
6:39 AM
(あれでも昔から parentViewunowned だったのにな… 🤔
Avatar
Kishikawa Katsumi 1/24/2018 6:40 AM
どうかなあ。Playgroundでもこのクロージャが実行される間はビューは生きてると思いますけど。同期的に実行されるクロージャですよね。
Avatar
あ昔は Layout 作ったらもう別の型に直して parentView 要らなくなったんですねそういえば
6:41 AM
同期的に実行されてるはずですね
Avatar
Kishikawa Katsumi 1/24/2018 6:41 AM
あ、よくみたらunowned parentViewか。私はmakerが壊れてると思ったんですけどね。
Avatar
@escaping はしてないので
6:42 AM
あ、 @escaping してる…!?
6:44 AM
あそうかそうですもんねレイアウトサイクルに入らないとレイアウト計算しないから @escaping しないとおかしいですもんね確かに…
6:44 AM
あくまでレイアウト計算の計算式しか作ってないですから
Avatar
Kishikawa Katsumi 1/24/2018 6:45 AM
なるほど。ここで返してるmakerが実際にビューのlayoutXXX()メソッドが呼ばれた時点でレイアウトを実行するという感じですか。 (edited)
6:47 AM
でもクラッシュしていたのはstoreHeightメソッドの途中ですよ、たぶん。
Avatar
そうですね、ただこのメソッドに限っていえば作った瞬間にもうレイアウト計算はさせてるはずなのでどっちかというと同期的に実行されてるはずのように思われますが1サイクル遅れてるかもしれません
6:47 AM
storeHeight の時点で LayoutMaker<Layout> が作れますので
6:48 AM
あ、今度はEXC_BAD_ACCESSはなくなりましたがLive Viewが表示されず Fatal error: Failed to get current view: file /Users/x_shi/Documents/Crazism/NotAutoLayout/NotAutoLayout/NotAutoLayout/LayoutEvaluations/FrameAdditionalEvaluation.swift, line 156 のエラーになりました 😇
Avatar
Kishikawa Katsumi 1/24/2018 6:49 AM
それはさっきのコードで再現します?
Avatar
さっきのコードはLiveView代入してないので、Playground-Bug ブランチのPlaygroundのコードの下にある元々コメントアウトされたコードを生かせば再現します
6:53 AM
理由は多分 unowned の時と同じ、weak currentView にアクセスしようとしていて落ちました
Avatar
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 絡みのバグな気がします。
Avatar
LayoutMaker はそもそも CustomStringConvertible に準拠してないから print できないはずなのではないでしょうか?
Avatar
omochimetaru 1/24/2018 6:56 AM
"()" は CustomStringConvertible 非対応でも使えるよ
Avatar
Kishikawa Katsumi 1/24/2018 6:56 AM
StringInterpolationは (edited)
6:56 AM
は何でもプリントできる。
Avatar
なるほど
Avatar
omochimetaru 1/24/2018 6:57 AM
CustomDebugStringConvertible, StringPrintable の順にためして、それでもだめだと リフレクションでダンプされる
Avatar
Kishikawa Katsumi 1/24/2018 6:57 AM
表示内容をカスタマイズしたいときにCustomStringConvertibleを使う感じ。 (edited)
Avatar
CustomPlaygroundQuickLookable < 僕もいるよ
Avatar
ふむふむそういうことですね、自分もこの前 print("maker: \(maker)") 使おうとして落ちてたから CustomStringConvertible に対応してないから落ちたかと思いました
Avatar
omochimetaru 1/24/2018 6:58 AM
TextOutputStreamか
6:58 AM
それで落ちる世界線やばない
Avatar
もしかして今のSwiftまだファントムタイプ使わない方が安全だったりします?
Avatar
Kishikawa Katsumi 1/24/2018 6:59 AM
ファントムタイプだからどうということはないと思います。
7:01 AM
状態の数だけ型ができるので、シンプルなコードより何か起こる確率は上がるかもしれませんが、それはファントムタイプに特有のことではないと思うので。
Avatar
なるほど
Avatar
なるほど再現した。 import Foundation class C: NSObject { } struct D { unowned let x: C } let c = C() let d = D(x: c) (edited)
Avatar
さすが
Avatar
omochimetaru 1/24/2018 7:06 AM
へえ〜〜
Avatar
@objc なオブジェクトを unowned で持つ struct を Playground が Mirror しようとすると落ちる。ということかな。
Avatar
しかも NSObject 継承しないと再現しないと
Avatar
「Playgroundが」は嘘ですね。最後の行 print(D(x: c)) でコマンド実行 swift test.swift でも再現するので。 (edited)
Avatar
Kishikawa Katsumi 1/24/2018 7:15 AM
macOSだけっぽいですねえ。Linuxだと起こらない。
Avatar
あ、シミュレーターでもこれは落ちますね 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) } }
Avatar
Kishikawa Katsumi 1/24/2018 7:15 AM
そしてmacで実行すると、D(x: (lldb) のように本当に直前までプリントされてクラッシュする。 (edited)
7:19 AM
ま、バグレポートですね。NotAutoLayoutについてはparentViewが外から触られることはないから、無理に直さなくてもいいかな。。。?
Avatar
今バグレポ出しました、とりあえずPlayground用に unownedweak プロパティーを一時的に通常プロパティーにします
7:23 AM
@rintaro @Kishikawa Katsumi Qiitaでこの現象のまとめを記事にしようと思ってますが、いただいた各種ソースコードをQiitaに貼り付けても大丈夫ですか? (edited)
👌🏻 2
☺ 1
Avatar
別の人にメンション送ってる気がする。。。 😅
💦 1
Avatar
https://bugs.swift.org/browse/SR-5289 一応既知でした。
👍 1
Avatar
本当だ今気づいた 😇 >メンション
Avatar
遅くなりましたが記事書きました https://qiita.com/lovee/items/56555e3c7cf880a44efd

TL;DR

下記のようなコードは落ちます: ```swift import Foundation class C: NSObject { } struct D { unowned let x: C } ...
👍 3
Avatar
norio_nomura 1/28/2018 8:40 AM
Xcode 9.3 beta 1でcode coverageを表示すると高確率でXcodeがクラッシュする…
😱 1
Avatar
omochimetaru 1/30/2018 4:51 AM
xcodeprojを機械的に編集する方法について調べた コマンドラインツール。Xcode.appの内部フレームワークを無理やりロードしてモデルを叩くアプローチが楽しいけどXcode9では動かなかった。保守停止。 https://github.com/0xced/xcproj pythonのライブラリ。保守されてるけど、どこで使われてるのかわからなかった、気になる。 https://github.com/kronenthaler/mod-pbxproj Rubyのライブラリ。CocoaPodsで使われてる。 https://github.com/CocoaPods/Xcodeproj Swiftのライブラリ。最近話題を見るツールの XcodeGen が内部で使ってる。 https://github.com/xcodeswift/xcproj ↑を内部で使うコマンドラインツール。機能は少ない。 https://github.com/xcodeswift/xctools SwiftPM内部の generate-xcodeproj のためのモジュール。 ファイル名に () がついててビックリした。 限られた生成機能しか無さそうだった。 https://github.com/apple/swift-package-manager/tree/master/Sources/Xcodeproj
xcproj - Command line tool for manipulating Xcode project files
mod-pbxproj - A python module to manipulate XCode projects
Xcodeproj - Create and modify Xcode projects from Ruby.
xcproj - Swift library for reading and writing Xcode projects
xctools - Handy command line tool for Xcode
4:53 AM
#swiftpm に書いたんだけど、SwiftPMの機能が若干足りないので、ラッパーでxcodeprojをちょっと編集すると良さそうだなと思っていて、↑の感じからすると、自分の用途だと、xcprojベースのxctoolsに機能追加のパッチを出すと一番良さそうな感じだった
Avatar
Kishikawa Katsumi 1/30/2018 4:53 AM
@omochimetaru xcodeprojってただのplistだからちょっとパッチを当てたいとかいう場合は自分で書いた方が楽だったりしますよ。 (edited)
4:54 AM
xctoolsを改善していくというのはそれはそれで良いと思います。
Avatar
omochimetaru 1/30/2018 4:54 AM
$ cat Makefile .PHONY: clean build test clean: swift package clean build: swift build test: swift test xcode: swift package generate-xcodeproj
4:55 AM
いまこんな感じにしていて、 make xcode に後段処理を追加したいんですけど、 plist 編集をちょっとやるパッチを、どのアプローチで書くかが悩ましいです
4:56 AM
そのパッチのインストールをややこしくしたくないし・・・
Avatar
Kishikawa Katsumi 1/30/2018 4:56 AM
swiftのスクリプトをさっと実行するようにしたらいいんじゃないかな。
4:57 AM
私は書き換えはしてないけど、プロジェクト構成を読み取るのはやる必要があって、
Avatar
omochimetaru 1/30/2018 4:57 AM
そうですね、 #swift-zatsu に書いたんですけど、 swiftのスクリプト実行基盤ツールがいろいろあるんですけど、 それをつかって、 ↑の xcproj を import しつつスクリプトで書くと楽かな?とか検討中です
Avatar
Kishikawa Katsumi 1/30/2018 4:57 AM
すごい適当に書いている。
Avatar
omochimetaru 1/30/2018 4:57 AM
うおおおインデントwww
4:58 AM
let pbxproj = try? PropertyListSerialization.propertyList(from: pbxprojData, options: [], format: nil) ↑型無しならこれだけでパースはできるってことですね〜
Avatar
Kishikawa Katsumi 1/30/2018 4:58 AM
けどプログラムから最低限扱える構造で読み取るのはPropertyListSerializationがやってくれるので、あとは対象を捕捉して変更して書き出す、だけだと思う。 (edited)
4:58 AM
そう。
Avatar
omochimetaru 1/30/2018 4:58 AM
まあそうですね〜そっちのほうが依存とか増えないしちょろっと書けそうですね
Avatar
/usr/libexec/PlistBuddy ではどうにもならないですか?
Avatar
Kishikawa Katsumi 1/30/2018 5:00 AM
Codableでマッピングしたら綺麗になると思うんだけど不要な部分も多いのでやってない。xcodeprojの構造はとにかくRefIDをたどっていくという形になっているので、
5:01 AM
ああ、PlistBuddyだとクエリで検索してそのままそれを更新できるからもっと簡単にできそう。
Avatar
omochimetaru 1/30/2018 5:02 AM
PlistBuddy知らなかったです、jqみたいなやつですね
5:02 AM
ID引いてオブジェクトプールから参照するみたいな構造があるからやるとしたらPlistBuddyを何度か叩く感じかな
Avatar
Kishikawa Katsumi 1/30/2018 5:02 AM
ただ、変更箇所のクエリを作るためにはまずデータをトラバースして構造を理解する必要があると思うので、Swiftでなぞってみるといいと思います。
Avatar
norio_nomura 2/5/2018 5:06 AM
Xcode 9.3 beta 1では出ない warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional valueswift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-01-aで出る。 (edited)
Avatar
norio_nomura 2/5/2018 5:34 AM
Xcode 9.3 beta 1とスナップショットの違いではなく、-swift-version 3の有無が原因だった。 (edited)
5:35 AM
https://github.com/apple/swift/blob/master/stdlib/public/core/StringRangeReplaceableCollection.swift.gyb#L566-L574 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 - The Swift Programming Language
5:39 AM
-swift-version 4だとこのflatMapが無くなって、deprecatedな方が使われるから。
Avatar
omochimetaru 2/7/2018 7:04 AM
xcprojというライブラリを使ってxcodeprojを書き換えてみた。まあまあ型がついてるのでわかりやすかった。 https://github.com/xcodeswift/xcproj https://gist.github.com/omochi/2a2ebe3cf99a1e5a63fbf6a38c587dc6
xcproj - Swift library for reading and writing Xcode projects
Avatar
norio_nomura 2/8/2018 12:42 AM
Xcode 9.3 beta 2のリリースノート ## 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)
Avatar
norio_nomura 2/13/2018 2:32 AM
📝 メモ: Xcode Source Editor Extensionでエラーメッセージを提供するには、CustomNSErrorに準拠しNSLocalizedDescriptionKeyにメッセージを持ったerrorUserInfoを返すErrorcompletionHandler()に渡す。 https://github.com/norio-nomura/SwiftLintForXcode/pull/10
2:37 AM
LocalizedErrorに準拠して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)
Avatar
そんなぁ
Avatar
Xcodeの⌥押してRectで選択するやつのCopyPasteがめちゃんこ賢くなっててため息出た
Avatar
omochimetaru 2/27/2018 4:56 AM
Image Literal がエディタ上で 山の絵文字みたいなやつしか出なくて
4:56 AM
サムネイルが出ないから何が設定されてるかさっぱりわからないんだけど
4:56 AM
なんか設定で直せる?
Avatar
Kishikawa Katsumi 2/27/2018 4:57 AM
特に関連する設定はないと思いますね。Derived Dataを消してみるとかそういうのを試すくらいかと思います。
Avatar
omochimetaru 2/27/2018 4:58 AM
なるほど、何か手元でのエラーなんですね。自分のところだけか。
Avatar
Playgroundだとサムネが出てくる試しがない
Avatar
Kishikawa Katsumi 2/27/2018 5:01 AM
とりあえず、Assets.xcassetsに入ってる画像の名前をいきなりタイプして補完出ますか?
Avatar
omochimetaru 2/27/2018 5:01 AM
画像ファイル名は補完では出てきて、補完ウィンドウではサムネイルが出ます
5:01 AM
でも、Assets.xcassetsには入れてないです。直接リソースとして突っ込んでます。
5:02 AM
補完から確定すると 山の絵みたいな文字になる。
Avatar
Kishikawa Katsumi 2/27/2018 5:02 AM
直接リソースとして入れた場合って、そもそも考慮されてるのかな。それで動いてはいるんですよね?
Avatar
omochimetaru 2/27/2018 5:02 AM
動いてたはずだけどちょっと確認してきますw
Avatar
Kishikawa Katsumi 2/27/2018 5:03 AM
動くのはたぶん合ってると思うんですけど、Xcodeのエディタはxcassetsの中しか見ないという気がしますねえ。
Avatar
なるほど、確かに Assets.xcassets に入れないとサムネ出てこないですね
5:06 AM
5:06 AM
だからPlaygroundでは出てこないのか
Avatar
omochimetaru 2/27/2018 5:07 AM
動くのは確認できました。なるほど・・・?
5:07 AM
↑そうそう、その山w
Avatar
プレグラのResourcesにAssetぶち込んだら見えないかしら
Avatar
omochimetaru 2/27/2018 5:07 AM
xcassetsを使うのが良いんですね、これ全然使ってなかったんで気づきませんでした、ありがとうございます
Avatar
Kishikawa Katsumi 2/27/2018 5:09 AM
イメージリテラルは最終的にはUIImageのなんとかというイニシャライザが呼ばれるだけなので、使えるのはわかる。 そして、エディタのサポート具合が異なるのもエディタに表示する段階では実行してるわけではないので理解はできる。 (edited)
5:09 AM
ただまあ不具合でいいんじゃないでしょうか。
Avatar
omochimetaru 2/27/2018 5:13 AM
xcassetに移したらサムネイルが出ました。
😢 1
5:13 AM
ソースコード上に書き込まれてるリテラルは名前だけみたいですね
Avatar
Xcode 9 で演算子や subscript への command クリック で定義に飛べなくなったので出来ない物だと思ってたら、右クリックメニューには普通に Jump to Definition あることに今更気づいて悲喜交交。
Avatar
omochimetaru 3/5/2018 12:55 PM
そういえば最近飛べないな〜って思ってたからそれかも・・・
Avatar
うおほんとだ。 演算子飛べなくて面倒なことがあった気がするので助かります(cmdクリックのほうが良いのはともかく)
Avatar
⌘ + Ctrl + j で飛ぶ派ですね。 エラーになれば、Xcode変な状態なんだなって思ってるので ⌘ + Shift + O で検索。
👍 2
Avatar
Playground、platformをmacOSにするとiOSに比べて上手く動くことが多い気がする(気がする)
Avatar
omochimetaru 3/6/2018 9:44 AM
iOSの場合、裏でiOS Simulatorが立ち上がってるみたいなんで、それかもですね
Avatar
感じますね
Avatar
Xcodeが変な状態だった場合は⌘⌥^Xで強制再起動が走るようにBTT設定してる
Avatar
Kishikawa Katsumi 3/6/2018 10:11 AM
Xcode再起動のショートカット。。。
10:12 AM
気持ちは理解します。
Avatar
⌘⌥^⇧XだとDerivedDataが消えて再起動です
😇 3
10:12 AM
捗る~~
Avatar
omochimetaru 3/6/2018 10:12 AM
wwww
Avatar
killall Xcode 2> /dev/null;sleep 1; rm -rf ~/Library/Developer/Xcode/DerivedData/; open /Applications/Xcode.app
Avatar
Kishikawa Katsumi 3/6/2018 10:13 AM
私はけっこうUndo履歴を使うので真似はできないですけど。
Avatar
Undo履歴消滅してしょんぼりすること結構ある
Avatar
Kishikawa Katsumi 3/6/2018 10:14 AM
Undoが遅くなるの全然問題ないんで、ディスク使って無限Undoにしてほしいですね。
Avatar
JetBrain製品は文明が進んでて
10:16 AM
ディスク履歴を勝手にgitっぽく作ってくれますね
10:16 AM
なので困ったときはそこを見ると大体救われる
Avatar
Kishikawa Katsumi 3/6/2018 10:34 AM
なにそれ。。。求めていたものな気がする。
Avatar
Undo履歴消滅しょんぼりもそうだけど、githubにあげてるやろ~~で作業ディレクトリ全部消して作業が見つからなくなることが年数回ほどある
Avatar
Kishikawa Katsumi 3/6/2018 10:43 AM
タイムマシンがあるとそのうちのいくつかは救われると思います。
Avatar
DownloadsフォルダをTimeMachine除外してて、作業ディレクトリがDownloads上にあって…みたいな悲劇がありました 😿
10:44 AM
TimeMachine自宅は設定してるけどギョムのPCは設定してないなぁ
Avatar
omochimetaru 3/6/2018 10:44 AM
Downloadsで作業するの行儀悪いね
Avatar
行儀悪いけどやりがち
10:44 AM
雰囲気的にはtmpなのだ
Avatar
Kishikawa Katsumi 3/6/2018 10:45 AM
あ、会社のMacは難しいかも。ユビレジで人数少ないときは、一人ずつ使ってたけど。
Avatar
omochimetaru 3/6/2018 10:45 AM
ちょっとやるやつは $HOME/temp で作業してる
Avatar
Kishikawa Katsumi 3/6/2018 10:46 AM
DesktopとDocumentsがiCloud同期されるようになってからは私もDownloadsフォルダで作業すること多いです。
Avatar
わかりすぎる
10:46 AM
アレ邪魔…
Avatar
Kishikawa Katsumi 3/6/2018 10:47 AM
だんだんチャンネルの話題から離れてきたけど、私は会社に用意してほしいのはモニタよりタイムマシンだなあ。
Avatar
omochimetaru 3/6/2018 10:47 AM
うちは全員分タイムマシンありますけど、会社だと難しい要因ってなんでしょう?
Avatar
Kishikawa Katsumi 3/6/2018 10:48 AM
や、単に全員ぶんは大変なのかなって思ってるだけです。
10:50 AM
WiFiが詰まるとかあるかな、とか。
10:50 AM
有線接続はあまり嬉しくない。
Avatar
omochimetaru 3/6/2018 10:50 AM
普通にTimeCapsuleを共有するとユーザごとにディスク容量を奪い合っちゃうんですけど、 USBハブでぶら下げた上で個別のディスクをパーティション切っておいて、一人1パーティションにしておくと、容量を均等に分けられる
10:51 AM
帯域の問題はありそうですね
10:51 AM
子機をばらまいていく必要がありそうだ。
Avatar
Wifiの帯域はただでさえカツカツなので、TimeMachineを割くゆとりはなさそう
Avatar
omochimetaru 3/6/2018 10:54 AM
初回世代は有線で取る事もできるよ。
10:54 AM
ま〜Xcodeとかリリースされた時にヤバそうだなあ
Avatar
Kishikawa Katsumi 3/6/2018 10:55 AM
初回はそれでいいけど、常に線があるのはちょっと。
Avatar
USB-Cの先に繋いでもいいのだけど、それやるとブチ太郎が死亡する未来が見えていて
10:55 AM
なんとか安全な感じにしたいけどなかなか
Avatar
Kishikawa Katsumi 3/6/2018 10:56 AM
そういう細かいのの積み重ねで出勤するメリットみたいなことを考えてしまうから、まあ改善できるならしてほしい。
Avatar
Xcodeのシンタックスカラーリング、文字色は指定できるけど文字の背景色は設定できないですよね なんか裏技ないかな
4:08 AM
マジックナンバーは赤背景白文字にしたいとかそういう
Avatar
Kishikawa Katsumi 3/7/2018 6:32 AM
Hackが必要だけどできる気がします。あとで記憶を辿ってみます。
6:37 AM
それも含めてちょいちょい議論されている「〜のパターンを検索したい」というののほとんどはlibSyntaxか-dump-astの情報を使えばできそうと考えてます。いい感じのUIと組み合わせるとけっこうみんな使ってくれそうだなと思うんですけどね。
Avatar
Kishikawa Katsumi 3/12/2018 4:00 AM
@hiragram 思い出そうとしてたの https://gist.github.com/mikeash/baab66481c4964d79eb074e40423dbf9 これなんですけどちょっと目的とは違いました。🙇🏻
Convince Xcode 9 not to smooth its source code font
Avatar
おっ。
4:02 AM
全然なにやってるかわからんw
4:02 AM
Compile the override library
治安が悪そう
Avatar
Kishikawa Katsumi 3/12/2018 4:02 AM
いや、Xcodeのエディタのレイアウトを書き換えるハックがあったなあと思ってそれが^なんですけど、ちょっとやりたいことに対しては大ざっぱすぎて難しいですね。
Avatar
expr void $fptr = (void *)(void ()(void))_T012SourceEditor0aB9LineLayerCACSo18NSAttributedStringC010attributedF0_AA0abC10IdentifierV010referencedC0AA0C13LayoutManager_p04linejK0AA0aB23FontSmoothingAttributesV04fontnO0So12CGColorSpaceCSg018textRenderingColorR0SaySo7CGImageC5image_s5RangeVySiG06columnX0tG6imagestcfc
4:03 AM
なんかわらっちゃった
Avatar
Kishikawa Katsumi 3/12/2018 4:03 AM
記憶が曖昧で、もうちょっとシンプルなソリューションだと思ってました。
Avatar
フォントの背景色指定したいみたいなXcodeの機能要望ってどこに出すのが適切なんでしょうか
Avatar
バグ、ではないんですがいいのかな…w
Avatar
Kishikawa Katsumi 3/12/2018 4:05 AM
^BugReportにDev Toolsっていうのがあるので、そこにEnhancement Requestみたいなのをタイトルに含めて送ればいいと思います。
4:05 AM
BugとSuggestionがあった
4:05 AM
これで送ってみるか
Avatar
omochimetaru 3/23/2018 6:39 AM
ffffffffffff(a: "aaa", b: "aaa\(3)", c: "aaa")
6:40 AM
↑xcodeのAuto Format、引数の文字列に \() 展開があると、次の段がずれる
😢 2
6:40 AM
ffffffffffff(a: "aaa", b: "aaa", c: "aaa")
Avatar
Kishikawa Katsumi 3/23/2018 8:54 AM
たぶん...ff(で始まったインデントが3)で終わってるんでしょうね。(がうまく処理できてない?
Avatar
omochimetaru 3/23/2018 9:01 AM
あ〜、そこがペアになっちゃっているの、ありそうですね。なるほど
Avatar
macOSのbeta 7も公開されたのに、Xcodeがまだbeta 4で止まってる…
Avatar
norio_nomura 3/27/2018 2:49 AM
新デバイスの新機能がAPIなどから露見するのを防ぐために、Xcodeのベータが遅れるのは毎度の事。 (edited)
Avatar
アップルのイベントって今夜でしたっけ?
Avatar
27 March Media Event 12 Hours 07 Minutes 09 Seconds
Avatar
てことは今夜Xcode 9.3出るワンチャンあるか
Avatar
norio_nomura 3/27/2018 2:55 AM
今回はシカゴ開催で0時からか。
2:56 AM
https://www.apple.com/apple-events/ には載ってないけどApple TVのApple Eventsには出てきてる。
Watch the latest Apple keynote stream, and check out the archive of special event announcements for our products and services.
Avatar
おっ ストリーミング配信もあるのかな
Avatar
While Apple often offers a live stream for its special events, the company has confirmed there will be no live stream for the March 27...
3:01 AM
ライブストリーミングではないという話をみました
Avatar
なるほど!
Avatar
Xcode9.3が出るということは、High Sierraにアップデート必須ということになるが…
😁 4
Avatar
https://swiftxcode.github.io/ SwiftPMプロジェクト を iOSアプリから使うテンプレらしい。使ったことある方いらっしゃいますか? (edited)
Use Swift Package Manager directly from within Xcode.
Avatar
Workspace 内に project が複数あるケースで、依存する project に変更があった場合先にそっちをビルドさせるのってできないんでしょうか?今は手動でプルダウンからターゲットを選んでてやや面倒です😑
1:22 PM
(Beginner に書くべきだったかな🙄
Avatar
プロジェクトまたぐとtarget dependenciesってないんだっけ
Avatar
omochimetaru 3/29/2018 1:23 PM
wokrspaceの中の複数のprojectは依存効きますよ (edited)
Avatar
(ここでいいと思いますよ)
1:24 PM
dependencyに入れたらやってくれる…みたいな感じだったっけ
Avatar
omochimetaru 3/29/2018 1:24 PM
target depsは無いけどフレームワークとかembedされてれば検出する
Avatar
あれれ、まじですか😵
1:25 PM
何か設定が足りてないのかしら🙄
Avatar
omochimetaru 3/29/2018 1:25 PM
automatic dependncy detectionみたいな感じのチェックボックスが
1:25 PM
スキームの設定に存在する
1:26 PM
共有してもらえたらみてみますよ
Avatar
了解です、見てみます!
1:30 PM
相変わらずのコレですw https://github.com/taketo1024/SwiftyAlgebra
Contribute to SwiftyAlgebra development by creating an account on GitHub.
Avatar
omochimetaru 3/29/2018 1:37 PM
SwiftyTopologyができてる。
1:39 PM
とりあえず
1:40 PM
SwiftyTopologyが import SwiftyAlgebraしているのに、依存が無いのが変ですね
1:41 PM
a
1:41 PM
ここにこれ設定すればよいかと
1:42 PM
プロジェクトまたいだ依存検出はコレ
Avatar
ありがとうございます!!!
Avatar
Read reviews, compare customer ratings, see screenshots, and learn more about Xcode. Download Xcode for macOS 10.13.2 or later and enjoy it on your Mac.
Avatar
やっぱHigh Sierra必須ですか?
Avatar
ですねー 
互換性:macOS 10.13.2 以降
とのことです
😂 2
Avatar
omochimetaru 3/30/2018 1:31 AM
Filevault解除しよっと・・・
Avatar
Kishikawa Katsumi 3/30/2018 3:28 AM
FileVaultの解除、1TBのSSDで確か1週間ほどかかった
😨 2
😇 1
Avatar
omochimetaru 3/30/2018 3:29 AM
1T SSDで使用量500Gですが、今見たら終わってた、2時間以下だ。
Avatar
Kishikawa Katsumi 3/30/2018 3:29 AM
ええー
Avatar
omochimetaru 3/30/2018 3:29 AM
iMac (Retina 4K, 21.5-inch, 2017)
3:29 AM
最近買ったマシンだから、かな?
3:29 AM
フラグメンテーションの影響などがあるのかも
3:30 AM
TimeMachineも一度発火しておこう。
Avatar
Kishikawa Katsumi 3/30/2018 3:30 AM
私の去年買ったMacBook Proは950GBくらい使ってるかな。
Avatar
RealmがXcode9.3でビルドできないんだが
😟 2
Avatar
Kishikawa Katsumi 3/30/2018 6:16 AM
どんなエラーが出ているんですか?
Avatar
carthageでこける
6:18 AM
そこからはこれからみるところ
6:21 AM
なんか関係ないところで死んでるっぽい (edited)
6:21 AM
なんじゃこれ
6:21 AM
ごめん,realmの問題ではないなこれ
Avatar
ログみたいです〜
Avatar
Kishikawa Katsumi 3/30/2018 6:22 AM
コンソールのログとXcodeのログを出してみなされ?
Avatar
proxyが詰まってる
6:22 AM
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
6:22 AM
あー,嫌な感じ
Avatar
omochimetaru 3/30/2018 6:22 AM
証明書コケ?
Avatar
オフィスからビルドしてみたから,それが原因臭いなぁ・・・
6:23 AM
昨日までうまいこっと動いてたのに・・・・
6:23 AM
っぽい
6:23 AM
証明書なんぞ,なんもいじってないぞ
Avatar
Kishikawa Katsumi 3/30/2018 6:24 AM
試しにiPhoneのテザリングに繋いでやってみるとか?
6:24 AM
ちょうど月末だし。
Avatar
no-proxyでビルド中
6:26 AM
xcodeのバージョン上げて,gitのバージョンが上がって,https周りの挙動が変わったのかなぁ
6:27 AM
いけてるくさいなぁ・・・
Avatar
あかん,これはproxy周りですわ
6:39 AM
くっそーゴミプロキシめ
Avatar
omochimetaru 3/30/2018 6:39 AM
え、もしかして、
6:39 AM
HTTPS通信を不完全なMITMしている・・・?
Avatar
わからん
6:40 AM
それはないと思う
Avatar
omochimetaru 3/30/2018 6:40 AM
ふむ〜
Avatar
あんのかな・・・・
Avatar
CAがあかんみたいやなぁ・・・・なんじゃこれ
Avatar
carthageの環境変数周りの問題っぽい
7:02 AM
普通にcloneしたら,httpsでcloneできてるから,なんかがおかしくなっている・・・・
7:02 AM
こういうの最悪
Avatar
一時的にsslVerifyをオフにしたら,うまくいくので,なんかSSL関連でトラブってるなぁ・・・・キーチェーンがタコになってるのかしら
7:15 AM
curl: (60) SSL certificate problem: unable to get local issuer certificate curlもこけてるなぁ・・・・.
Avatar
iCloud keychainをオフにしたら動いた
Avatar
結論出ました. iCloud Keychain Sharingが突如,悪さをして,ローカルにもってるCAのリストになんか影響を与えた模様. iCloud Keychain Sharingをオフにしたら,gitもcurlも正しく動作するようになりました.
Avatar
omochimetaru 3/30/2018 7:33 AM
なるほど
Avatar
norio_nomura 4/3/2018 10:33 AM
結局Xcode 9.3にSwiftSyntaxは入らないままだな。
Avatar
Kishikawa Katsumi 4/16/2018 3:13 PM
Xcode 9.3, observe(_:options:changeHandler:)-[NSObject addObserver:forKeyPath:options:context:] を使ってたらInstrumentsのLeaksがクラッシュする 👿
3:14 PM
要するに今どきのほとんどのアプリではInstrumentsでメモリリークを調査できない。
😯 3
😱 2
2:47 AM
このプロジェクトをXcode 9.3または9.4betaで開いてInstrumentsのLeaksでモニターするとアプリがクラッシュする。
2:51 AM
私は普段ツールチェーンはできるだけ早く最新にしようと主張しているのだけど、Xcode 9.3は他にも(正確にははっきりしてないけど)不具合のような挙動が観測されるので、WWDC終わるまでは9.2を使った方がいいかなという感想。
Avatar
omochimetaru 4/17/2018 2:52 AM
最近のApple製品、だいたいなんでもそういうトラップありませんか もう全然最新即インストールはしていない
Avatar
Apple、決め打ちした一つのプロジェクトに全振りして他が疎かになるイメージある
Avatar
Kishikawa Katsumi 4/17/2018 2:55 AM
ありますな。
Avatar
ほんとだ、うちのアプリもLeaksで落ちました
3:01 AM
Allocationsだと落ちなくて、Leaksとの組み合わせなんですね
Avatar
Kishikawa Katsumi 4/17/2018 3:12 AM
そうなんですよ。
Avatar
Xcode9.3のgitのマージツール、解決してもPullボタンアクティブにならないんですが、他に同じ症状持ってる人いますか?(そもそも使わない説)
Avatar
使ってないな
Avatar
デスヨネー
Avatar
Xcode9.3でIBOutlet貼れないのですがw 同じ症状の人いますか?👀
Avatar
Storyboardからもswiftファイルからもです?
Avatar
storyboard to swiftファイルです コード先書くぶんには繋げました(面倒)
Avatar
さいきんのXcode、xib側からIBOutlet/IBActionに接続しても繋がらなくない? swift側から伸ばさなきゃいけないけどそうすると、UIButtonのAction全部TouchUpInsideになってしまうんや
5:03 PM
にわタコさんも同じこと言ってたから何かありそうだけど、まだ遭遇してないですね…
Avatar
おー、にわたこさんも…同じ人がいたかぁ
Avatar
割とこれなるけど、気がついたら治ってる
5:14 PM
頻繁にDerivedData消してるからかな
Avatar
👀試してみます
Avatar
貼れない時ってどんな状態なんです?
5:16 PM
ポップアップで変数名入れてEnter押しても確定できないやつ?? (edited)
Avatar
エラー出るやつと、そもそもポップアップでないの二種類あると思う
Avatar
説明不足でした🙏エラーの方です
Avatar
Kishikawa Katsumi 5/10/2018 5:18 PM
ポップアップが確定できないのはあった気がします。思い出した。 @IBOutlet/Actionは書いて、StoryBoardのCtrl+クリックで繋ぐのは問題ないんじゃないかな?
Avatar
それは問題ないです
Avatar
赤いラベル出てフィールド定義できないやつですよね。こっちは既存のものにつなぐのも問題ないはず
👍 1
Avatar
明日にでもDerivedData消しやってみます。解決したら報告します💪
Avatar
Kishikawa Katsumi 5/11/2018 2:10 AM
WWDCまで出ないと思ってた9.3.1が出たようです。What's newを読む限り直ってる気はしませんが、試す価値はありそうです。
Avatar
試してみます💪
Avatar
RxSwiftのクラッシュ治ったかしら
Avatar
norio_nomura 5/11/2018 2:37 AM
Swiftのバージョンは変わってないよ>9.3.1
Avatar
過去にswiftのバージョン変わってないけどバグが修正されていた事例が、、
Avatar
ソースコードに /// - Tag: Hogehoge を置いてMarkdownファイルから [hoge](x-source-tag://Hogehoge) してもコードに飛んでくれないんですがこれ使ってる人いますか
7:11 AM
当方Xcode9.2
7:11 AM
Avatar
struct定義の手前に置いたTagには飛べるけどファイルの途中に置いたextensionへのTagは飛べない みたいなことがわかった。困った。
Avatar
それをインデックスしているのが https://github.com/apple/swift/blob/6d7fe7fb/lib/Index/Index.cpp#L1175 で、これのコールサイトを調べると https://github.com/apple/swift/blob/6d7fe7fb/lib/Index/Index.cpp#L639 ここだけで、これは ValueDecl にしか呼ばれず、 ExtensionDeclValueDeclじゃないので extension についた - Tag: はインデックスされないという問題っぽい。
swift - The Swift Programming Language
swift - The Swift Programming Language
Avatar
IBOutlet繋げられない件、DerivedData消しで解消しました🥂🤦‍♂️
🙌 3
Avatar
omochimetaru 5/15/2018 8:52 AM
FIXMEって絆創膏になるんだ。 (edited)
😮 2
Avatar
omochimetaru 5/23/2018 5:10 AM
@ありぜ
いや、自分はgithubからalamofireのproject取って来て、そこにPlaygroundぶち込んでimportしましたw
これやってみようとしたけどどうにもわからん
Avatar
Kishikawa Katsumi 5/23/2018 5:15 AM
同じワークスペースにあるプロジェクトはPlaygroundでインポートできます。
5:15 AM
ビルドされていればimportを書いたら動くと思います
5:16 AM
普通のアプリの感覚で一緒にビルドされないので、それでうまくいかないケースがよくあります。
5:16 AM
それ以外だとうまくいかないワークスペースをアップロードしてもらって調査ですね。
Avatar
omochimetaru 5/23/2018 5:18 AM
あ〜、わかりました。なるほど。 Generic iOS Device でビルドしてたけど、シミュレーターが正解でした。
5:19 AM
ありがとうございます。手動ビルドが必要というので気が付きました。
Avatar
Kishikawa Katsumi 5/23/2018 5:23 AM
さすがですね。
Avatar
飯行ってる間に解決してた😃
Generic iOS Device でビルドしてたけど、シミュレーターが正解でした。
(edited)
5:47 AM
これ地味にひっかかりますよね
Avatar
/Library/Developer/CommandLineTools/usr/bin/ /usr/bin/swift 自分のMacにSwift2種類入っているんですけどXcodeでインストールされる方ってどっちかわかる方いますか…?
10:40 AM
この環境だと /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からのインストールなような気がしているのですが
10:42 AM
https://github.com/bitrise-io/bitrise.io/blob/master/system_reports/osx-xcode-9.4.x.log Bitriseの実行環境だとXcode9.4.xだと前者を使うようになっており、bitriseが悪いのか自分の環境がおかしいのか分からず…
bitrise.io - Bitrise.io public issues
Avatar
手元のiMac 2017だと これはない /Library/Developer/CommandLineTools/usr/bin/ これはある /usr/bin/swift
10:47 AM
Xcodeが使ってるswiftは [omochi@omochi-iMac-PC43 ~]$ xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
10:47 AM
↑これでわかります
Avatar
ありがとうございます、 xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift 自分のはココ参照してました、3つswift入っているのか…
10:50 AM
問題としてはbitriseのxcode9.4環境でcarthageビルドがswift4.1で行われているみたいで、これを見る限り ビルドのときは4.1.2参照してcarthageは4.1参照している感じかもですね… (edited)
Avatar
/usr/bin/swiftxcrun -find swiftで見つけられるswiftのラッパーです。 (edited)
11:26 AM
xcode-selectでデフォルトを選択したり、DEVELOPER_DIR, TOOLCHAINS環境変数によってどこのswiftを使うかが決まります。
Avatar
なるほど、/usr/bin/swiftは実際には/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftを参照しているということなんですね
11:29 AM
本当だ、/usr/bin/swiftは18KBなんですね
Avatar
$ 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
11:31 AM
あれ?TOOLCHAINS環境変数って使えなくなった?
11:34 AM
あいや、使えた。 $ 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
11:36 AM
TOOLCHAINS=org.swift.40320171205a ではなく TOOLCHAINS=org.swift.40320171205 って書いてた。
Avatar
あ、すいませんこれそもそもローカルのxcodeとbitriseのxcodeのバージョンが違うっぽいです bitriseのビルド自体はちゃんとxcodeのswift-version使っているみたいです
11:37 AM
bitrise: 9Q1019a ローカル: 9F1027a
11:39 AM
bitirseのxcodeがまだXcode 9.4 beta 2だからcarthageでバイナリのチェック弾かれていたということみたいです…w お騒がせしましたー 💦
Avatar
バイナリをコミットしてるんですか?
Avatar
ですです、binaryにしてます
Avatar
最近/Library/Developer/CommandLineToolsのアップデートがMac App Storeへ来ないよね。昨日確認したらSwift 4.1のままだった。
Avatar
そのディレクトリ、binすらなかったです
11:44 AM
usr/shareだけあった
Avatar
xcode-select --installでインストールされます。
11:45 AM
/Library/Developer/CommandLineToolsが無いとHomebrewが文句を言うので、インストールした記憶。
Avatar
ふむ、明日見てみよう
11:46 AM
バイナリはだいたいは楽だけどたまにハマりますね
11:46 AM
僕は絶対ソースビルドマンになった
Avatar
最近/Library/Developer/CommandLineToolsのアップデートがMac App Storeへ来ないよね。昨日確認したらSwift 4.1のままだった。
12:52 PM
12:52 PM
これですかね…?
Avatar
norio_nomura 5/31/2018 1:32 PM
お、そうですね。
Avatar
omochimetaru 5/31/2018 2:38 PM
xcodeのschemeで、Run > Info のところで、Launch を Wait for executable to be launched にすることで、 swiftコマンドが起動する瞬間にデバッガをアタッチできるんですが
2:38 PM
swiftcコマンドに対して同じことをやろうとしても、Executableを指定するところで、 swiftcは実際にはシンボリックリンクなので、
2:39 PM
XcodeのExecutableを選択するダイアログが勝手に、リンク先のswiftの指定として解釈するっぽくて
2:39 PM
選択後にExecutableがswiftになってしまう。
2:39 PM
で、その状態だと、swiftcコマンドが叩かれてもデバッガアタッチされない
2:41 PM
あ、ちがう、かんちがいだ
2:42 PM
swiftcからの起動であってもswiftでwaitしておけばアタッチできた。
2:43 PM
自己解決しました・・
2:43 PM
いつのまにか /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc が混ざってて、自前版とごちゃごちゃになってた。
2:49 PM
swift-buildがswiftcを呼び出すところはSwiftのFoundationのProcess.popenで、
2:50 PM
この呼出にはデバッガがアタッチしないっぽい
2:50 PM
けどなんか起動したこと?は
2:50 PM
検出するみたいで、Xcodeはwaitからfinishに変わる。
2:52 PM
swift build からの一連の動作をデバッグしようとしてるんだけど難しいですね 今の所swiftのmain冒頭にargvのダンプを仕込んで、swiftpm経由で発火するときにstdoutに出させて、 呼び出しを洗い出したあと、手動で実行し直したりしています・・
Avatar
Xcode9.4のInstruments TimeProfiler、iOS11.3のiPhone7plusで自分のプロジェクトだと無限にinitializingし続ける https://stackoverflow.com/questions/49744280/time-profiler-in-instruments-not-working の現象だったけどiOS11.4にアップデートしたらちゃんと吐くようになった。
I recently update my Xcode to version 9.3, so is instruments. After that, time profiler won't work anymore, it usually works fine before. I tried to run it via Xcode, and I tried to run it manually.
6:48 AM
(再起動が効いたのかアップデートが効いたのかは分からないけど)
Avatar
Build ConfigurationでDEBUGの時だけリソースをバンドルする設定とかってありましたっけ…? Build Phaseで条件分岐してcpするしかないですかね
Avatar
omochimetaru 6/8/2018 4:21 AM
心当たりは無いです
Avatar
逆ですがこういう感じです? https://qiita.com/lovee/items/2a271fc8c1dd9ab577f8
あまり需要がなさそうですが、ゲームとかの場合ですと大量の素材データをアプリ内に封入したりすることがあるじゃないかと思います。そしてそれらの素材を全部 Xcode に登録すると、デバッグ時でも転...
Avatar
omochimetaru 6/8/2018 4:24 AM
Build Phaseで条件分岐してcpするしかないですかね
ちょうどこれのことかな?
Avatar
リソースを Release ビルドの時だけアプリに封入させる
これですね、やっぱりcpでやるしかないか
Avatar
多分やっぱりcpでやるしかなさそうな気が 🤔
♥ 1
Avatar
omochimetaru 6/8/2018 4:25 AM
リソースの配置ってPNGだったら色変換されたり
4:25 AM
Xcode側が手を出す場合があるのと、 xcassetsとかもあるから
4:25 AM
自分でcpでやると何かしら想定外の事態が生じるかも。
❤ 2
Avatar
🙇 ありがとうございます、cpします 現状ではサンプルのjsonを配置したかったので一旦cpで事足りそうです
🎉 1
Avatar
daisukeokaoss 6/13/2018 3:07 PM
すいません、質問なんですが、 AVCaptureSessionPreset1920x1080 を使おうとした時、use of Unresolved Identifierとかいうエラーが出るんですがどうすればいいでしょうか? よろしくお願いします (edited)
Avatar
端末がサポートしていない解像度かもしれないですね (edited)
4:29 PM
captureSession.canSetSessionPreset(AVCaptureSessionPreset1920x1080) (edited)
4:29 PM
とかでサポートしているか確認できるのですがいかがでしょうか (edited)
Avatar
use of Unresolved Identifierなので、コンパイルエラーぽい
4:31 PM
綴りの間違いか、コンパイラーが参照を解決できてないみたいなので、Xcode再起動とかclean からbuildしなおしではダメですかね??
Avatar
ObjCで書いているのであればAVCaptureSessionPreset1920x1080 で問題ないはずですが (edited)
4:33 PM
Swiftで書いているのであれば AVCaptureSession.Preset.hd1920x1080 のようなネームスペースの切り方する必要があります。 あとimport AVFoundation忘れているかも
Avatar
↑noppeさんのやつな気がする (edited)