日々精進

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

Mac

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'