Amarronの日記

iOSやMac、Web系の記事を書きます。

CocoaPods インストール 使い方 メモ

cocoapodsのインストールと使い方のメモです。

cocoapods概要:Mac アプリや iOS アプリ開発者向けのライブラリ管理ツール
実行環境   :OS X バージョン10.9
前提条件   :「Ruby」「Command Line Tools」がインストールされていること (MacOSはデフォでRubyが入っていると思います。)
「Command Line Tools」のインストール方法やcocoapodsの詳しい参考URL:http://www.iosjp.com/dev/archives/451

流れ

  1. インストール
  2. 使い方
  3. その他

1. インストール

次のコマンドを実行でOK

$sudo gem install cocoapods

2. 使い方

2-1. Podfileファイルを作成
2-2. ライブラリのインストール
2-3. Xcodeで実行

2-1. Podfileファイルを作成

作成したプロジェクトの「hogehoge.xcodeproj」と同じディレクトリに「Podfile」というファイルを作成します。
「Podfile」ファイルに、プラットフォーム(iOSのバージョン等)と追加したいライブラリ情報を記入します。

「Podfile」ファイルの例↓(1行目:プラットフォームがiOS7.1、2行目:iRateのライブラリ追加)

platform :ios, '7.1'
pod 'iRate'

※ライブラリー名は、CocoaPodsホームページで検索できます。

2-2. ライブラリのインストール

次のコマンドを実行でOK

$ pod install

Xcodeは閉じて実行しましょう。

2-3. Xcodeで実行

「xcodeproj 」ファイルではなく、「xcwordspace」ファイルで開きます。
(クラスをimportして使えるようになっています。)

3. その他

CocoaPodsのバージョンアップ

次のコマンドを実行でOK(コマンドはインストールと同じ)

$ sudo gem install cocoapods

メモ:ライブラリをインストールする時に次のようなエラーになる時に良く使います。

[!] The `master` repo requires CocoaPods 0.32.1 -

参考URL:http://qiita.com/snow_richisland/items/90132544d482a4668b7c

RSS1.0,RSS2.0,ATOM のフォーマット・仕様・構造

調べたので備忘録。

種類

RSS1.0

  • シンプルな記述がウリ。テキスト配信向き?
  • RDFシリーズを元にして制作されている。
  • はてなRSSは1.0を使用。FC2も1.0を使用。

RSS2.0

  • 配信する文章の色を変えたり、リンクを仕込めるなど、グラフィック面でいろいろ出来る。コンテンツ配信向き?
  • RSS1.0の後継シリーズではない。(0.9x系の流れを汲む規格)
  • XMLシリーズを元にして制作されている。

ATOM

  • RSS2.0からいろいろ削って、よりシンプルに。よりスマートに。
  • GoogleGmail(ジーメール) にて、メールの内容を Atom フィードで提供するサービスを行っている。

構造

RSS1.0

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xml:lang="ja">

    <channel rdf:about="サイトのRSSのURL">
        <title>サイトのタイトル</title>
        <link>サイトのURL</link>
        <description>サイトの内容</description>
        <dc:date>RSSの最終更新日時</dc:date>
        <dc:language>ja</dc:language> 
        <items>
        <rdf:Seq>
        <rdf:li rdf:resource="記事1のURL" />
        <rdf:li rdf:resource="記事2のURL" />
        </rdf:Seq>
        </items>
    </channel>

    <item rdf:about="記事1のURL">
        <title>記事1のタイトル</title>
        <link>記事1のURL</link>
        <description><![CDATA[記事1の内容]]></description>
        <dc:creator>記事1の作者名</dc:creator>
        <dc:date>記事1の作成日時</dc:date>
    </item>

    <item rdf:about="記事2のURL">
        <title>記事2のタイトル</title>
        <link>記事2のURL</link>
        <description><![CDATA[記事2の内容]]></description>
        <dc:creator>記事2の作者名</dc:creator>
        <dc:date>記事2の作成日時</dc:date>
    </item>
</rdf:RDF>

RSS2.0

<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
    <channel>
        <title>PHP & JavaScript:更新情報</title>
        <link>http://phpjavascriptroom.com/</link>
        <description>PHP & JavaScript Room:新着3件</description>
        <item>
            <title>記事タイトル3</title>
            <link>http://phpjavascriptroom.com/post3.html</link>
            <description>記事の内容です。</description>
            <pubDate>Wed, 11 Jun 2008 15:30:59 +0900</pubDate>
        </item>
        <item>
            <title>記事タイトル2</title>
            <link>http://phpjavascriptroom.com/post2.html</link>
            <description>記事の内容です。</description>
            <pubDate>Tue, 10 Jun 2008 15:30:59 +0900</pubDate>
        </item>
        <item>
            <title>記事タイトル1</title>
            <link>http://phpjavascriptroom.com/post1.html</link>
            <description>記事の内容です。</description>
            <pubDate>Mon, 9 Jun 2008 20:50:30 +0900</pubDate>
        </item>
    </channel>
</rss>

Atom

<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' xml:lang='ja'>
    <id>tag:phpjavascriptroom.comfeed/</id>
    <title>PHP & JavaScript Room:更新情報</title>
    <updated>2008-06-11T15:30:59Z</updated>
    <link rel='alternate' type='text/html' href='http://phpjavascriptroom.com/feed/' />
    <link rel='self' type='application/atom+xml' href='http://phpjavascriptroom.com/feed/atom10.xml' />
    <entry>
        <id>http://phpjavascriptroom.com/post3.html#20080611</id>
        <title>記事タイトル3</title>
        <link rel='alternate' type='text/html' href='http://phpjavascriptroom.com/post3.html' />
        <updated>2008-06-11T15:30:59Z</updated>
        <summary>記事の内容です。</summary>
    </entry>
    <entry>
        <id>http://phpjavascriptroom.com/post2.html#200810153059</id>
        <title>記事タイトル2</title>
        <link rel='alternate' type='text/html' href='http://phpjavascriptroom.com/post2.html' />
        <updated>2008-06-10T15:30:59Z</updated>
        <summary>記事の内容です。</summary>
    </entry>
    <entry>
        <id>http://phpjavascriptroom.com/post1.html#20080609205030</id>
        <title>記事タイトル1</title>
        <link rel='alternate' type='text/html' href='http://phpjavascriptroom.com/post1.html' />
        <updated>2008-06-09T20:50:30Z</updated>
        <summary>記事の内容です。</summary>
    </entry>
</feed>

要素

  • channel
    チャンネル情報。 <channel>~</channel>
    • title(必須要素)
      チャンネル名。 <title>PHP & JavaScript Room:更新情報</title>
    • link(必須要素)
      チャンネルのURL。サイトURL。 <link>http://phpjavascriptroom.com/</link>
    • description(必須要素)
      チャンネルの説明。
      <description>PHP & JavaScript Room:新着3件</description>
    • item+
      チャンネルのコンテンツ情報。日付が新しいもの順。1つ以上~いくつでも。
      • title
        コンテンツのタイトル。ページタイトルや記事タイトル。
        <title>【Ajax】Simple JSの使い方</title>
      • link
        コンテンツのURL。
        <link>http://phpjavascriptroom.com/index.php?t=ajax&p=simplejs</link>
      • description
        コンテンツの概要。
        <description>14KBの超軽量JSライブラリ「Simple JS」をサンプル付きで紹介。</description>
      • author
        コンテンツを書いた人のメールアドレス。
        <author>amarron@yahoo.co.jp (PJ)</author>
      • category
        コンテンツのカテゴリ。
        <category>Ajax JavaScript</category>
      • comments
        コンテンツに対するコメントがあるページのURL。
        <comments>http://phpjavascriptroom.com/ajax/simplejs.html#comment</comments>
      • enclosure
        コンテンツに添付されるメディアオブジェクト。
      • guid
        コンテンツのユニークな永続的なURL。
        <guid>http://phpjavascriptroom.com/ajax/simplejs#he20080204</guid>
      • pubDate
        コンテンツの公開日。
        <pubDate>Mon, 4 Feb 2008 15:30:59 +0900</pubDate> <pubDate>Mon, 4 Feb 2008 15:30:59 GMT</pubDate>
      • source
        記事で引用しているRSSのチャンネル。引用元のURLを指定するurl属性は必須属性。
        <source url='http://www.sample.com/rss.xml'>sample.com</source>

参考サイト

[Web]RSSとRSS2とATOMの違いをまとめてみる。
[rss][atom]RSSとATOMの文書構造モデル(メモ書き)
RSS -- サイト情報の要約と公開
RSS 2.0 のフォーマット
Atom 1.0 のフォーマット

おすすめ書籍

もっとrssを知りたい方にオススメです。

App Store に iOSアプリ を 公開する方法

大まかな流れが中心です。画像や詳細なイベントは他の参考サイトで確認して下さい。
証明書関連の作成参考サイト:http://r-dimension.xsrv.jp/classes_j/ios_test/
iTunes Connectデベロッパガイド:https://developer.apple.com/jp/documentation/iTunesConnect_Guide.pdf

前提条件

Apple Developer Programに購入済み。
Apple Developer Program購入方法(法人)はこちら

流れ

  1. 証明書関連の作成(Certificates, Identifiers & Profiles)
    1-1. Certificatesの作成
    1-2. Identifiersの作成
    1-3. Devicesの追加(開発用のみ必要)
    1-4. Provisioning Profilesの作成
  2. Xcodeで証明書を設定
  3. 配布したいアプリの設定
    3-1. iTunesConnectでアプリを追加
    3-2. Xcodeでアーカイブ
    3-3. iTunesConnectでアプリの状態確認

1. 証明書関連の作成(Certificates, Identifiers & Profiles)

申請に必要な証明書関連を作成します。
証明書(CertificatesとProvisioning Profiles)は、ダウンロード後クリックするとMacのキーチェーン保存されます。
キーチェーンに保存後Xcodeでその証明書を選択しアプリの実機確認や配布用のアーカイブに利用します。

「Certificates, Identifiers & Profiles」の項目説明

url:https://developer.apple.com/account/ios/certificate/certificateList.action

  • Certificates
    開発者の証明書
    (開発用と製品用に1つずつ必要となります。(複数アプリで同じ証明書を利用する))
    (プッシュ通知を利用する場合は、さらにアプリごとに開発用と製品用に1つずつ必要となります。)

  • Identifiers
    アプリのID(1アプリに対して1つ必要、Wildcard App IDを選ぶと全アプリで利用可能となります。)

  • Devices
    実機確認用iPhone一覧(アプリに対して利用可能な実機を追加できます。)

  • Provisioning Profiles
    開発者とアプリを紐付けるファイル(1アプリに対して開発用と製品用に1つずつ必要となります。IdentifiersのWildcard App IDで証明書を作成すると全アプリで利用可能となります。)

f:id:Amarron:20140212110453p:plain

1-1. Certificatesの作成

左のメニューのCertificatesをクリックし右上の「+」で新規作成を行います 。

f:id:Amarron:20140212105838p:plain

Development(開発用)かProduct(製品用)かどちらかを選びます。
CSRファイルを作成します。(ここはMacのキーチェーンアクセスで行います)
(ユーザーのメールアドレスはAppIDで登録したメールアドレスを利用し、デスクに保存を設定するをチェックします。)

f:id:Amarron:20140212110007p:plain

作成したCSRファイルをアップロードします。
Certificates(証明書)が作成されるのでダウロードします。

1-2. Identifiersの作成

左のメニューのIdentifiersをクリックし新規作成を行います。

f:id:Amarron:20140212111710p:plain

名前(App ID Description Name)はアプリ名(英数)にすると分かりやすくなると思います。
接頭辞(App ID Prefix)はTeamIDが良さそうです。(複数の App ID Prefixとキーチェーンについて
識別子(App ID Suffix)は逆ドメインが推奨されています。(Wildcard App IDを選択すると全てのアプリ共通で利用出来ます。)
注意:Bundle App IDは、各アプリのBundle App ID(plistの「Bundle identifer」)と一致している必要があります。

f:id:Amarron:20140212120058p:plain

1-3. Devicesの追加(開発用のみ必要)

左のメニューのDevicesをクリックしデバイスを追加します。
メモ:「UDID」は、XcodeのOrganizerで確認出来ます。(Devicesで、対象のiPhoneを選択し「Identifier」がUUIDです)
注意:「Register Device」のNameは半角英数で登録しないと文字化けします。(文字化けした状態で複数登録してると判断出来なくなるので半角英数で登録すると分かりやすいと思います)

f:id:Amarron:20140212112532p:plain

1-4. Provisioning Profilesの作成

左のメニューのProvisioning Profilesをクリックし新規作成を行います。
「1-2. Identifiers」で作成したアプリIDと「1-3. Devices(開発用のみ必要)」を選択します。
「Provisioning Profiles」が作成されるのでダウンロードします。

f:id:Amarron:20140212113158p:plain

2. Xcodeで証明書を設定

Buid SettingのCode Signingで「1-1. iOS Certificates」で作成した証明書を設定します。
(プッシュ通知も必要な場合、「Provisioning Profile」に「1-4. Provisioning Profiles」を設定します)

f:id:Amarron:20140212114924p:plain

3. 配布したいアプリの設定

作成したアプリをApp Storeで配布するためにアプリを追加します。

3-1. iTunesConnectでアプリを追加

iTunesConnectに接続します。
Manage Your AppsをクリックしてAdd New Appを選択するとアプリの追加設定でができます。

f:id:Amarron:20140212133933p:plain

注意:「1-1. Certificates」で製品用の証明書を作成していないと、"You have no eligible Bundle IDs for iOS apps. Register one here."と表示され新しくアプリを追加出来ません。

App Informationでは、アプリ名(App Name)や管理番号(SKU Number)を設定します。
App Nameは、App Storeに表示されるアプリ名で申請の途中で変更可能です。(既に登録されている名前は登録出来ません。日本語入力出来ます。)
SKU Number、管理番号で途中で変更できません!(既に登録されている名前は登録出来ません、プロジェクト名等分かりやすい名前でOK)
Bundle IDは、「1-2. Identifiers」で設定したIDを選びましょう。

f:id:Amarron:20140212134412p:plain

配布希望日(Availability Date)は、未来日を設定します。私は2週間位先を大体設定しています。(AppStoreの新作として表示される日らしいです。)
アプリ料金(Price Tier)はアプリ料金を設定します。
教育機関向けの割引(Discount for Educational Institutions)は無料アプリであればチェックを外します。
法人向けカスタム非公開アプリ(Custom B2B App)もチェックを外します。

f:id:Amarron:20140513123236p:plain

アプリの詳細情報を入力を完了すると、ステータスが「Prepare for Upload」に変わり「Ready to Upload Binary」が選択できるようになります。 f:id:Amarron:20150314203827p:plain

「Ready to Upload Binary」が選択し、法的な質問に答えるとステータスが「Waiting For Upload」に変更されます。
Xcodeでアーカイブを作成しましょう。

3-2. Xcodeでアーカイブ

Buid SettingのCode Signingで「1-1. iOS Certificates」で作成した証明書を設定します。(製品用に変更します)
(プッシュ通知も必要な場合、「Provisioning Profile」に「1-4. Provisioning Profiles」も製品用に変更します)

f:id:Amarron:20140212114924p:plain

ツールバーのProduct->Archiveを選択します。
アーカイブが完了するとOrganizer画面が表示されるので「Validate」を選択しましょう。(Validateでエラーになる場合が多いのでハマるかもしれません。。。)
Validateが成功したらDistributeを選択しましょう。
f:id:Amarron:20150314203850p:plain

3-3. iTunesConnectでアプリの状態確認

ステータスが「Waiting For Upload」から「Upload Received」に変更されていればアプリの追加成功です。
数分後に「Waiting For Review」に変更されます。
後は、App Storeに公開されるのを待つだけです。お疲れ様した。

今後のステータス

Waiting For Review

In Review(Appleレビュー中)

Processing for App StoreApp Storeに公開されるまでのチョットした待ち時間)

Redy for Sale(App Storeに公開されている状態)
(2015/01追記:Redy for Sale(販売準備完了)にステータスが変更されてもすぐにストアに公開されない場合もあるようです。24時間過ぎても公開されないようであればAppleへ問合せしましょう。問合せはiTunesConnectのフッターの「連絡先」リンクより問合せが出来ます。)

「Waiting For Review」と「In Review」はトータルで1〜2週間かかります。(アプリにもよります)
審査NGの場合、「Processing for App Store」へ進まず「Rejected」のステータスになります。(指摘内容を修正して再度、「3-2. Xcodeでアーカイブ」からやり直し)
「Processing for App Store」は、数時間で「Redy for Sale」へ変更されます。

iOSDeveloperProgram 法人契約 流れ

iOSアプリのAppStoreで配布したい場合に「iOS Developer Program」の登録が必要となります。
法人契約時の大まかな流れと注意点等を記載します。
AppStoreにアプリを公開する方法はこちら

契約時の流れ

  1. メールアドレスの取得(Apple ID登録用、今回はgmailアカウント作成)
  2. Apple ID作成
  3. DUNS NUMBERの取得
  4. iOS Developer Program 購入

注意:Apple関連の登録はsafariを利用しましょう。

1. メールアドレスの取得(Apple ID登録用、今回はgmailアカウント作成)

gmail用アカウントを新規作成します。
メモ:アカウント名はAppleで使用する名前と一致していなくても問題ありません。また、既にメールアドレスをお持ちの方はそれを使用しても特に問題ありません。

2. Apple ID作成

Apple IDを新規作成(1で作成したメールアドレスで登録)します。
注意:Apple IDの氏名は半角でローマ字入力をしないと途中でエラーになります。(修正もできなくなり、Appleへ問合せ対応となります)

f:id:Amarron:20140205202026p:plain

3. DUNS NUMBERの取得

iOS Developer Program」でDUNS NUMBERが必要となるため取得します。
東京商工リサーチにてDUNS NUMBERを検索します。
法人契約を結ぶ企業名で検索します。

  • 既に発行されている場合、DUNS NUMBERを控えて「iOS Developer Program 購入」へ進みましょう。
  • 発行されていない場合、発行依頼をしましょう。数時間後、メールにてDUNS NUMBERが届きます。 (私の場合、発行に4〜5時間かかりました。また、休日は発行されませんでした。)

注意:iOS Developer ProgramのDUNS NUMBERは本社ではないと登録できなません。

4. iOS Developer Program 購入

iOS Developer Programの登録を行います。
登録すると途中でステータスが進めなくなります。(法人の確認のため。3営業日ほどで確認電話がかかってきて、ステータスの進め方を説明とわからなくなった時のサポート番号(0120-933-388)を教えてくれます)
法人の確認が終わるとステータスが進められるようになり「iOS Developer Program」の購入が出来るようになります。
注意:iOS Developer Programの購入してすぐにはは利用できません。Welcomeメールが送られるまで待ちましょう。(私の場合、約1日かかりました。購入してもすぐに使えないので間違って2回購入しないようにしましょう。)

AppStoreにアプリを公開する方法はこちら

参考にしたURL

iOSアプリのスクリーンビューを計測する

iOSアプリ開発で、ユーザーのスクリーンビューやイベント、ユーザー数等を計測したい場合があります。 「Google Analytics SDK」を組込む事によって簡単に監視することが出来ます。

使用したツールSDK

Xcode Version 5.0.2
Google Analytics SDK for iOS Version: 3.02 (October 2013)

計測するために行うこと

  1. Google Analyticsのサイトで登録・設定
  2. iOSアプリにSDKを組込む
    ※cocoapodsを使うとかなり楽になります。cocoapodsの使い方はこちら

既にAnalytics関係の解説サイトが多いため、詳しくはリンクしている解説サイトを見て貰えると大体わかると思います。
※参考にしたサイト
Google Analytics SDK for iOS v2 を組み込んでアプリの利用解析を行う
http://maccle.com/develop-ios-app/how-to-add-google-analytics-sdk-for-ios-to-xcode/

・SV組込方法
https://developers.google.com/analytics/devguides/collection/ios/v3/

・イベントトラッキング
https://developers.google.com/analytics/devguides/collection/ios/v3/events https://support.google.com/analytics/answer/1033068?hl=ja

・日本語ドキュメント
https://github.com/kshuin/google-analytics-ja/blob/master/Collection/iOSSDK/DevGuide/AdvancedConfiguration.md

1. Google Analyticsのサイトで登録・設定

Google Analyticsのサイトでログイン又はアカウントの作成
②アカウントの管理画面を開く(右上の「アナリティクス設定」クリック)
③アカウントの管理画面で新しいアカウントの追加(「+新しいアカウント」クリックし、トラッキングの対象をアプリを選択)
④トラックングIDの発行(アカウントの管理画面のサブミットボタンで作成されます)
※トラックングIDは「2. iOSアプリにSDKを組込む」で使用します
iOSアプリにGoogle Analytics SDK V2 beta4を入れてみたが非常に参考になりました。画面キャプチャーも入っているので分かりやすいと思います。

2. iOSアプリにSDKを組込む

Google AnalyticsからSDKをダウンロードします。
②ダウンロードしたSDKXcodeプロジェクトに(“Copy items into destination group’s folder (if needed)” をチェックして)コピーします。

GAI.h(GoogleAnalyticsServicesiOS_3.03/GoogleAnalytics/Library) GAIDictionaryBuilder.h(GoogleAnalyticsServicesiOS_3.03/GoogleAnalytics/Library) GAIFields.h(GoogleAnalyticsServicesiOS_3.03/GoogleAnalytics/Library) GAILogger.h(GoogleAnalyticsServicesiOS_3.03/GoogleAnalytics/Library) GAITrackedViewController.h(GoogleAnalyticsServicesiOS_3.03/GoogleAnalytics/Library) GAITracker.h(GoogleAnalyticsServicesiOS_3.03/GoogleAnalytics/Library) libGoogleAnalyticsServices.a(GoogleAnalyticsServicesiOS_3.03)

③Link Binary With Librariesにライブラリファイルを追加します。

CoreData.framework
SystemConfiguration.framework
libGoogleAnalytics.a

④トラッカーの設定 (後日書きます)
⑤スクリーントラッキングの追加 (後日書きます)

iOSアプリにSDKを組込む時のハマリどころ

self.screenName設定(SV計測)をviewDidlAppearに書くと計測されたりされなかったり(clickEventを計測するとついでに計測される)
→viewDidLoadに書く

self.trackedViewName = @"Screen Name";
→self.screenName = @"Screen Name";
https://developers.google.com/analytics/devguides/collection/ios/v3/screens
(trackedViewNameがSDKのVersion3にはない)

GoogleAnalyticsServicesiOS_3.03/GoogleAnalytics/Libraryをそのままコピペしない
(libGoogleAnalytics_debug.aを削除して、libGoogleAnalyticsServices.aを入れる)

Macで「.DS_Store」と「._xxx」ファイルを作らない方法

実行環境:OS X バージョン10.9

Macでファイルを編集すると隠しファイルが作成されます。
MacユーザーであればFinderの設定で不可視ファイルを非表示にすれば気にならないのですが、 共有ドライブを使用しているとWindowsユーザーから文句を言われたり、 何を見たか丸わかりになってしまうのでかなり不便です。

対処方法は次の2パターン。

  1. ターミナルコマンドで作成しないようにする。

  2. 隠しファイルを削除するアプリを使う。

私は、ターミナルコマンドでは「.DS_Store」が作成されないように出来たのですが、 「._xxx」が作成されて続けてしまったので、隠しファイルを削除するアプリも使いました。
(ファイルサーバー上の隠しファイルのみ作成したくない場合はターミナルコマンドで大丈夫そうです。)

1. ターミナルコマンドで作成しないようにする。

[アプリケーション]→[ユーティリティ]→[ターミナル]を起動して、以下のコマンドを実行して再起動すればOK!

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

設定を戻したいときは最後をfalseにする。

2. 隠しファイルを削除するアプリを使う。

アプリをインストールしてネットワークディスクをクリーンアップする設定でOK!
BlueHarvestをインストールします。
②[BlueHarvest]→[環境設定]→[OS X データクリーンアップ]で削除するファイルを適当に設定。

f:id:Amarron:20131115213914p:plain

これでファイルを編集しても「.xxx」ファイルが作成後数秒で削除されるようになりました。 Mac起動時にこのアプリも立ち上がるので特にストレスなく使えてます。
※過去に作成された「.
xxx」ファイルも消えてしまうので、削除したくない方には余りオススメしません。

※追記(2014/01)
BlueHarvestは、無料で使い続けられないようです。
(数週間で試用期間が終わります。)
他に、方法があれば追記していきます!

※追記2(2014/05)
「1. ターミナルコマンドで作成しないようにする。」の実行のみで、ローカルPCでは隠しファイルは作成されますがファイルサーバー上では隠しファイルは作成されないようです。
ファイルサーバー上のみ削除したい人は「1. ターミナルコマンドで作成しないようにする。」の対応でOKだと思います。

※追記3(2014/05/18)
.DS_Store とはという記事を書きました。
興味がある方はこちらもご参照ください。