hackscodeでXcodeをちょっと便利にする
hackscode
最近ちょっとしたツールを書きました。
https://github.com/toshi0383/hackscode
今後色々便利コマンドを追加していきたいと思っていますが、今のところ下記の1つだけです。
remove-build-file
以下のようにすると、 MyViewModelSpec.swift
以外の *Spec.swift
をビルド対象から除くことができます。
$ hackscode remove-build-files --from-target Tests --matching Spec.swift --excluding MyViewModelSpec.swift
Build Phase(PBXBuildFile
)から除いているだけなので、Xcode上でファイルは編集できるというのがポイントです。
このようにターゲットのチェックが外れた状態になります。
Swiftのコンパイルはとても時間がかかるので、大きなコードベースでテストケース1つだけを直すような時に使うと便利です。
しかしこれをコマンドラインで毎回指定するのも、ちょっと長くて面倒ですよね?そこで、AppleScriptの出番です。
#!/usr/bin/osascript
use AppleScript version "2.4" # Yosemite or later
use scripting additions
use framework "Foundation"
on run
tell application "Xcode"
set projectPath to path of active workspace document
set projectFolder to characters 1 thru -((offset of "/" in (reverse of items of projectPath as string)) + 1) of projectPath as string
set sourceName1 to (get name of window 1)
try
do shell script "hackscode remove-build-files --from-target AbemaTVTests --matching Spec.swift --excluding " & sourceName1 & " --project-root " & projectFolder
display notification "👌 Ignored all specs except " & sourceName1 with title "Hackscode"
on error errStr number errorNumber
display notification "🛑 " & errStr & " (" & errorNumber & ")"
end try
end tell
end run
このコードを適当なファイル名で保存して、以下のようにXcodeの設定 => Behaviorsに追加します。
こうすると、ショートカット1発で、現在開いているファイルを --excluding
に指定して実行することができます。今日もこれ何度か使ったのですが結構便利です。
pbxprojの編集には、XcodeGenでも使われているxcodeprojを使っています。
トラブルシュート
コマンドラインと違って、XcodeのBehavior経由だと PATH
が通っていなかったり、カレントディレクトリがプロジェクトルートになっていない場合があります。
そんな時は、コマンドラインからXcode.appを開き直すとうまくいくようになるかもしれません。
$ cd project_root/ # App.xcodeprojのあるディレクトリに移動
$ open -a /Applications/Xcode.app App.xcodeproj
なぜXcode Editor Extensionではないのか?
Xcode Editor Extensionも試したのですが、以下の理由でやめました。
- 開いているファイル名が取得できない(致命的。。)
- インストールが面倒かつ期待通り変更が反映されなかった
- AppCodeやvimユーザが使えない
Editorのメニューに出てくるのはとても便利なんですけどね。そこだけ使わせて欲しい😅
Xcode Editor Extensionで一応こういう置換ツールはサクッと作れたけど、バグ修正した後の再リリース内容が反映されず、配布とインストールが鬼門な印象を受けた。 pic.twitter.com/8ELsJE4iCD
— Toshihiro Suzuki (@toshi0383) 2018年7月6日
Xcode Editor Extensionについてはこちらのスライドが参考になると思います。
https://speakerdeck.com/takasek/20170916-number-iosdc
まとめ
以上久しぶりにちょっと記事を書いてみました。
Xcodeは長く使っている割に使いこなせていない部分も結構ある気がしているので、他にもこういうコマンドあったら便利そうとかあれば教えて欲しいです🙏
Author And Source
この問題について(hackscodeでXcodeをちょっと便利にする), 我々は、より多くの情報をここで見つけました https://qiita.com/toshi0383/items/8f9d00e86fbb559ba908著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .