読者です 読者をやめる 読者になる 読者になる

日々精進

新しく学んだことを書き留めていきます

Mac

キーチェーンに登録されている証明書のID一覧を表示する

mac

以下のコマンドで表示出来る。 security find-identity -p codesigning -v

xargsからmvなどに引数を渡す

mac

find . -name “*.php” | xargs -J% cp -f % ~/workspace/phpfiles J%オプションを付けると、%がパイプからの入力に置換される。 Linux系やBSD系のOSでは微妙に書き方が違うっぽいので注意。 参考:macでfind-xargsからのcpやmvに引数を渡す

マクロで動的にシンボルを定義する

Token-Pasting Operator (##)を使うとシンボルを動的に定義出来る。 ここでの動的に、というのは実行時に、という意味では無く文字列を結合してシンボルをつくることができるという意味。 Stringizing Operator (#)を使うとシンボルを文字列に変換できる。 #…

ポートフォワーディング設定が消える現象の解決方法

mac

現象 ・MacにParallelsを入れて、いくつかのVMを動かしている。 ・VMへのアクセスはParallelsのポートフォワーディング機能を使って行っている 例:ホストOSの8080番へのアクセスをVM1の80番にルーティングする ・この状況で、たまにポートフォワーディング…

2クリックで指定したMacに画面共有でログインする

mac

・動機 画面共有をよく使うんだけど、 ファインダーからログインするMacを選ぶのとかめんどい。 出来ればワンアクションでログインしたい。 ・やり方 ・Applescriptからシェルスクリプトを実行する。 理由はシェルスクリプトを直接実行すると実行後にターミ…

削除したはずの秘密鍵を使ってsshログインできてしまう現象

mac

ssh-agentが秘密鍵をキャッシュすることが原因。 macでは常にssh-agentが動いてるっぽい。killしてもすぐ復活する。 一度ssh-agentをkillするとキャッシュはクリアされる。

lsofを実行すると「lsof: WARNING: can't stat() smbfs file system /Volumes/」エラー

mac

sambaサーバをマウントしたが、その後接続が切れた場合このようなエラーがでるっぽい。 sudo lsof -i:8002を実行すると下記のエラーが出た。 なぜ8002ポートとマウントしたドライブが関係あるのかは不明。。 lsof: WARNING: can't stat() smbfs file system …

macからsshで接続しているときに「Write failed: Broken pipe」が出て接続が切れる

mac

クライアントもサーバもMacでssh接続しているときに起きた。 OS:OS X 10.9 これはsshクライアントまたはサーバの設定でKeepAliveの長さを設定してやればよい。 今回はサーバ側の設定を修正した。 ・sshdの設定を変更する サーバ側の/etc/sshd_configに以下を…

VM上のMacに「画面共有」でログインする方法

mac

「画面共有」のサーバ側 ・以下のようにVM環境のホストOSのポートフォワーディング設定をする ホストOSの6001番→ゲストOSの5900番 ※5900-6000番ポートは「画面共有」が使用するので、使わない方がいいです ・ゲストOSの環境設定から画面共有の許可設定を行う…

mavericksにjavaをインストールする方法

mac

mavericksのターミナルでjavaコマンドを実行すると、 ダイアログが出てそこからOracleのJava配布サイトに行けるが、ここからJavaのインストーラをダウンロードし、インストールしてもjavaコマンドが使用可能にならないという罠があった。 下記Appleのサイト…

iTerm2の設定を複数のMacで共有する

mac

Dropboxを使って同期する。 ・~/Library/Preferences/com.googlecode.iterm2.plist をDropboxフォルダに移動する。 ・Dropbox下の設定ファイルにシンボリックリンクを張る ln -s ~/Dropbox/com.googlecode.iterm2.plist ~/Library/Preferences/com.googlecod…

iTunes ConnectにアプリをUploadすると、「Malformed Framework」エラー

mac

エラーの全文は以下。 Malformed Framework - The framework bundle HockeySDK (appname.app/Contents/Frameworks/HockeySDK.framework) must contain a symbolic link 'HockeySDK' -> 'Versions/Current/HockeySDK'. Refer to the Anatomy of Framework Bun…

sudo launchctl listに登録したJobがない

mac

これは登録したユーザが違うため。 以下のようなコマンドでJobを登録すると、Rootではなく、現在のユーザで登録される。 launchctl load -wF -D user ~/Library/LaunchAgents/jenkins.plistよって下記のコマンドを実行すればJobが見つかる。 launchctl listJ…

keyremap4macbookで!などの記号が出せない

mac

以下のようにEXTRA3+Wで数字の1のキーとSHIFTを押す設定にしても、!が出ず1が出てしまう・・・としばらく悩んだ。 <autogen>--KeyToKey-- KeyCode::W ,ModifierFlag::EXTRA3, KeyCode::KEYPAD_1 ,ModifierFlag::SHIFT_L</autogen>これは単にKEYPAD_1は数字キーパッドの1のキ…

windowsのAlt+TabをMacで実現する

mac

hyperswitchというアプリを使うと似たことができる。 HyperSwitch ただ、一つのアプリで複数のウィンドウを表示している場合はOption+Tabを二回押しても元のウィンドウに戻ってこない。 完全に再現は出来ないのかな。。

アプリ名を取得する

mac

やり方がいくつかあるらしい。 自分は下記を使いました。 NSString *appName = [[NSRunningApplication currentApplication] localizedName]; 参考:Technical Q&A QA1544: Obtaining the localized application name in Cocoa

sandbox化したアプリからログイン項目に自アプリを登録する

mac

ログイン時にアプリを起動させたい場合、ログイン項目に自アプリを登録する。 そのためにLaunchAtLoginControllerを使っていたが、これはsandboxからは使えない。 Mozketo/LaunchAtLoginController · GitHub sandboxからシステム環境設定を変更するにはApple…

Time Machineバックアップ先を他のMacにする

mac

OS X Serverをインストールすれば簡単にTime Machineの母艦にできるらしい。 会社のマシンのバックアップ取りたい。。 Mac miniをTime Machineサーバーにした : 或る阿呆の記

sandbox化したアプリから標準のメールアプリ経由でメールを送信する

mac

Technical Q&A QA1802: Adopting Scripting Targets for Composing Mailに下記を.entitlementsファイルに追加するというのが載っていたが、メールの送信は出来るようにならなかった。 <key>com.apple.security.scripting-targets</key> <dict> <key>com.apple.mail</key> <array> <string>com.apple.mail</string></array></dict>…

Norton Internet Securityでノートン ライセンスの状態:不明になる

mac

ウィルススキャンは動いておらず、「Could not communicate with Norton Internet Security」というエラーメッセージが出たりするという現象が起きた。 原因はOSのバージョンが10.8だったことで、10.9にすると直った。 10.8にも対応してるはずなのに。。

.bash_profileに定義した環境変数が正しく設定されない

mac

例えば、以下の設定を.bash_profileに書いた場合 export http_proxy=http://proxy:9080/以下のようになった。 echo $http_proxy #=> export/proxy:9080/なんだこれ・・・と思っていたら、.bash_profileの改行コードがCRになっていたのが原因だった。 LFに変…

ビルドエラー「File not found: /Users/name/Library/Developer/Xcode/DerivedData/appname-bdakpnwzcghihlaqsqhitzdfvhzx/Build/Products/Debug/appname.app/Contents/MacOS/appname」

mac

まだXCode5移行時のビルドエラーと闘ってます。移行思ったより手強い。。 このエラーはテスト用ターゲットをビルドしたときに、Build Settings>Linking>Bundle Loaderで指定しているテスト対象のアプリがビルドされていないと起こる。 Edit Scheme>Build>Tar…

ビルドエラー「ld: symbol(s) not found for architecture x86_64」

mac

ビルド時にシンボルが見つからないよ、というエラー。 以下のようなメッセージが出ているので、この場合はCopySymbolicHotKeysメソッドを定義しているファイルを探してそのファイルがプロジェクト内にあれば、ビルドターゲットがおかしいのでビルド対象を増…

ビルド時に「Xcode cannot run using the selected device. Choose a destination with a supported architecture in order to run on this device.」

mac

Target>Build Settings>Architectures>Valid Architecturesでi386を選んでいるとこのエラーが出る。i386を削除すると直った。

ビルド時に「Directory not found for option '-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/Developer/Library/Frameworks'」

mac

調べてみると、 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/ の下にDeveloperフォルダがない。Systemフォルダはある。 cocoapodが作ったPods-.xcconfigを見てみると、下記の行があったので、 FRA…

XCode4で開発したMacアプリをXCode5に移行する

mac

XCode4で開発したMacアプリをXCode5に移行する時にやったことリスト ・XCode5で全XIBを表示し、XIBフォーマットをXCode5に移行 ・「linker command failed with exit code 1 (use -v to see invocation)」というビルドエラーが出た。 Framework not found xx…

フォルダ毎の容量を調べるアプリ

mac

OmniDiskSweeperを使うとフォルダ毎の容量がわかる。 ディスクの空き容量を増やしたい時に、容量食ってるフォルダ・ファイルを調べるために使ってます。おすすめです。 参考:Macの容量を空けたい人へ。フォルダやファイルのサイズが一目でわかるアプリ「Omn…

pipを実行すると「pkg_resources.DistributionNotFound: pip==1.4.1」

mac

pipが壊れていることが原因。以下を実行してpipを再インストールすると直った。 sudo easy_install --upgrade pip参考:python - pip broke. how to fix DistributionNotFound error? - Stack Overflow

GHUnitのテストカバレッジを出力する方法

やり方がHack感あってかっこいい。fopen$UNIX2003とかなんなんですかこれは。。やり方は↓ GHUnitのテストカバレッジをJenkinsで表示する - TOKOROM BLOG

cocoa podでインストールしたライブラリの.pchを修正する

マクロでライブラリのログ出力を切り替えたりするなど、設定を変更することがあるのでこれは便利。 podをインストール後の処理を定義出来るとは知らなかった。やり方は↓ 参考:CocoaPodsで自動生成されたターゲットにPreprocessor Macroを定義する方法 | 踊…

AppStore申請時の設定

mac

・利用開始日は3週間ぐらい先にしておく 理由は利用開始日を基準として新着アプリかどうかが判定されるから。 ・プライマリ言語は英語で 理由はローカライズしてない国のAppStoreでアプリを表示すると説明文がプライマリ言語になるから。 AppStore申請ひと…

Mac App IDを登録しようとすると画面が固まる

mac

Register Your Mac App ID画面でContinueボタンを押した後、Loading...から先に画面が進まない現象が起こった。 原因はChromeを使っていたこと。Safariでは問題が起きなかった。 AppleのサイトはSafariを使って見た方がいいなこれは。。

リリースビルドにspark inspectorなどを含めないようにする方法

cocoa podのtargetを使えばdebugビルドにのみ含めるように出来る。 target :debug do pod 'CocoaLumberjack' endこれをやるにはリリース用のターゲットと開発用のターゲットを分けないといけないが、基本それはやった方がいいよね。 参考:ios - Cocoapods d…

macのレンタルサーバ

mac

意外とやってるとこあった。そしてどこも高い。まあMacのハードウェアが高いからしょうがないのか。。 本当はEC2が対応してくれると嬉しいんだけどなぁ。 よさそうだったとこは以下。 MacStadium - Hosting Setup 50$/月でMacmini一台を占有できる。 Cloud M…

Macアプリの複数起動を禁止する方法

mac

applicationDidFinishLaunchingでいかを実行すればよい。 - (void)deduplicateRunningInstances { if ([[NSRunningApplication runningApplicationsWithBundleIdentifier:[[NSBundle mainBundle] bundleIdentifier]] count] > 1) { [[NSAlert alertWithMessa…

NSButtonは複数行のタイトルを付けられない

mac

その割にword wrapとかの設定があるのはなんでなんだろう。。 ↓の記事によると、そもそも長いタイトルを付けたい場合は名前が悪いのでもっと簡潔な名前にしろとのこと。簡潔でわかりやすくて誤解されない名前を付けるのは難しいんだよなぁ。。 参考:objecti…

コピペする時にフォーマットを除いてくれるアプリ

mac

ブラウザからスティッキーズにコピペするときとか、余計なフォーマットが付いてきて鬱陶しいことありませんか。 FormatMatchを使うと余計なフォーマットを除いてくれて便利。 これ地味に便利だなあ。 Macのクリップボードにコピーしたテキストの余分なフォー…

keyRemap4MacBookは神アプリだった

mac

今までもkeyRemap4MacBookを使ってキー配列を変更し、便利に使っていたんだけど、 Windowsの「のどか」で出来ていたOne Shot ModifierとOriginal Modifierの設定が出来ないのが残念だった、、んだけど、それは勘違いでした。 One Shot Modifierを設定出来る…

Macでフォルダの情報を更新する方法

mac

finderに更新機能が無くてたまに不便だなと思ってたけど、更新機能をFinderに追加するアプリがあるらしい! 詳細は↓ [Mac] Finder 上で Windows でいう F5 を実現してくれるアプリ “refresh finder” | tande lab. そしてFinderのツールバーにアプリを置ける…

シェルスクリプトで現在時刻のn日前を計算する

mac

たとえば下記のようにすると7日前になる。 date -v-7dlinuxだと下記のように書けたりするらしいけど、Macではエラーになった。 date -d '10 days ago'

おすすめMacアプリ

mac

iOSアプリ開発者用アプリが多いですが参考まで。 ・Dash 公式ドキュメントを素早く引くことが出来る。AppCode,XCodeとの連携機能あり。 自分で作ったAppleDocなんかも引ける。 ・Charles デバッグプロキシ。通信速度を遅くしたり、切ったり、 リクエストのレ…

自動でObjective-Cのコードをモダンな書き方に変換する

XCodeのModernizerを使えばできる。 XCodeのメニューのEdit>Refactor>Convert to Modern Objective-C Syntax... を実行するとモダンな書き方に変更できるところのDiffが見られるのでDiffを確認した後一気に置換できる。

dockにアイコンを出さない方法

mac

plistにLSUIElement YESを追加すると出なくなる。 因みにsparkle frameworkはLSUIElementがYESであれば アプリがアクティブになっていなくても、更新ダイアログをアクティブにするロジックになっている。 参考:cocoa - How to hide the Dock icon - Stack O…

dmgインストーラの作成方法

mac

下記サイトに詳しく書いてある。思ったより簡単ですね。 参考:Codevarium » Blog Archive How to create your own beautiful Mac OSX *.dmg files (with free software) » Codevarium

画面共有の共有先から手元のMacにクリップボードの中身を送信する

mac

なぜか共有クリップボードを有効にしたら、手元のMacから共有先のMacへのクリップボードの送信はできるけど、逆が出来ない状況になった。手元がOSX10.8で共有先が10.9なのが原因かも知れないが不明。 一応共有クリップボードを無効にし、「クリップボードを…

mavericksにchefをインストールする方法

mac

chefは公式にはまだmavericksに対応してないので以下の方法でインストールする。 wget https://opscode-omnibus-packages.s3.amazonaws.com/mac_os_x/10.7/x86_64/chef-11.8.0_1.mac_os_x.10.7.2.sh chmod a+x chef-11.8.0_1.mac_os_x.10.7.2.sh sudo ./chef…

mavericksでhomebrewをinstallしようとすると「syntax error」

mac

marverics - 10.9でhomebrewのインストール時にエラーがでる - Qiita 上記記事と同じ現象でした。 インストールスクリプトのURLが変わっていることが原因。 下記を実行するとインストール出来た。てか大半のサイトは古いURLのままだからはまるはこれは。。 r…

ターミナルを起動すると「pointer being freed was not allocated」

mac

ターミナルを起動すると以下のエラーが出るようになってしまった。 Last login: Tue Aug 2 13:39:03 on console login(4836,0x7fff74188960) malloc: *** error for object 0x7f9173e00990: pointer being freed was not allocated *** set a breakpoint in …

テキストエディットでテキストファイルを編集してはいけない

mac

Vagrantfileをテキストエディットで編集し、vagrant upすると、以下のエラーが出た。 invalid multibyte char syntax error, unexpected $endこれはテキストエディットを使ってるとユーザが意図しないところでマルチバイト文字を埋め込んでしまうことが原因…

windowsからmacをリモート操作する

mac

RealVNCを使うととても簡単にできた。 セットアップ手順は下記サイトそのままでOK。 これは便利!WindowsからMacへリモートデスクトップする方法 | SpiralCode これは便利だなぁ。 注意点:オプション>カラーレベル の「フル」を選択する操作は起動する度に…