2014年8月18日月曜日

Googleスプレッドシートからcsv、csvからplistを作成する

アプリの中で持っているあまり更新のないデータはplistで作っています。

ただ手元でデータを作るのはやっぱり表形式(スプレッドシート)が使いやすいですね。
Excelなど高価なものは使えないのでGoogleスプレッドシートを使います。

(1)
Googleスプレッドシートで作ったデータを下記手順でCSVを選択するとcsvファイルとしてダウンロードされます。
Google Spread Sheet > File > Download as > Comma-Separeted Values (.csv current sheet)
簡単!

(2)
そしてこのcsvファイルをplistにします。
ここからは私の力ではとてもスマートにできないのでまたまた検索。。。

いろいろページは出てきますが、こちらのページが一番簡単でした。
スマート!ありがとうございます!
csvファイルからplistを生成するPHPスクリプト - Over&Out その後http://d.hatena.ne.jp/shu223/20110511/1305129443
(3)
出来上がったplistをxcodeのプロジェクトに追加します。

ここはファイルをFinderからxcodeのプロジェクトにドラッグアンドドロップするだけ。
ただ、新規追加の場合はこれでいいのですが、何かしら修正なり更新をした場合に同じファイル名でファイルを差し替えたいところです。

そのまま上書いてくれそうですが、そうはいかないご様子。。。

英語で出てくる説明文をなんとなく読むと、要するに、
「元のファイルを削除してからやって」
という事のようです。

言われた通りに元のファイルを右クリック>Deleteしてからドラッグアンドドロップ。
できました!










xcodeのソース管理SCMとgitとsnapshotに翻弄…。

.hファイルが消し飛んでから、はや数週間…。

その辺の細かいお話はまた後日書くとして…。

今日はxcodeのソース管理やgitを使えるようになるまでと、
ソースコードをsnapshotで復元(リストア)したことをメモ。

(1)
消えた.hファイルを、唯一取っていたSnapshotから戻そうとした時に、
「いったんRestoreする直前にSnapshot取っておくか」と思い、

xcodeの上メニュー > File > Create Snapshot...

を、実行したところ、なぜか下記のようなエラーが出てしまう。

*** Please tell me who you are.
Run
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'xxxx@localhost.(none)')

『あなたが誰だか教えてください…。』

心に刺さる言葉だね…。

「もうスナップショットも取らずにリストアしてしまえ!」と思い、リストアを実行しても同じエラーが。
挙げ句、xcodeの画面が固まり強制的に終了させる事に…。こんなの初めて…。

(2)
gitというのがバージョン管理のツールだというのはかろうじて知っていたので、エラーメッセージやらgitというキーワードで検索してると、xcodeユーザーガイドに行き着く。

https://developer.apple.com/jp/devcenter/ios/library/documentation/Xcode_User_Guide.pdf
ふむふむ。勉強になる…。
ソース管理がなぜ大事かとかも書いてあるし、Appleさんってやっぱすごい。
マニュアルなんて作った事も見た事ない的な仕事をしている自分が恥ずかしい。。。

57ページの「プロジェクトのスナップショットを保存する」あたりからリンクで飛んだりしながら読み進めていくと、
もしかしたらgitが入ってないんじゃないかと思い始める。
※ これは最終的には勘違いです…。入ってます。

xcodeをインストールするときに「system tools」を選択していれば必要なものが入ってますよ、的な事も書いてあるけど、そんな記憶は残っている訳もなく…。

(3)
ターミナルを立ち上げて、エラーメッセージで出てたgit config・・・というコマンドを実行してみると、
『gitなんてコマンドはありません』という感じのメッセージが出る。

ますますgitがインストールされてないんじゃないかと思うが、わざわざインストール時にチェック外すかなぁ、とも思い検索を続けると次のページを発見。
XCode付属のgitのパス - たまめも(tech)http://d.hatena.ne.jp/ar_tama/20120227/1330304819
「/Applications/Xcode.app/Contents/Developer/usr/bin/git」に入っているらしい!

ターミナルでそのディレクトリまで行くと、確かにある!ありがとうございます!


このページに書かれている方法で、.bash_profileに追加。

(4)
xcodeユーザーガイドにある、
「既存のプロジェクトにgit/subversionによる版管理の機能を追加する」の手順をそのまま実行。

その前に、git --versionでgitコマンドが通るか確認。
localhost:~ ukokkei$ git --version
git version 1.8.5.2 (Apple Git-48)
オッケ!(鬼灯の冷徹の髪切り妖怪風)


順調かと思いきや、手順4のところで最初にでたエラーが…。

localhost:marjahnDrill ukokkei$ git commit -m "Initial commit"
*** Please tell me who you are.
Run
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'xxxx@localhost.(none)')

もう怖くない。
git configコマンド二個を実行して、手順4を再実行。成功!

どこのページがメモ忘れしてしまったが、xcodeの右側のUtilitiesエリアを見ると、
gitが有効になってないときは、source controlのところに黄色い丸が出るとのこと。

確かに黄色かったです。
上記のコマンドを実行したら、ちゃんと緑色の丸が出ました!

(5)
いざxcodeでcreate snapshotを。
取れた!

ではやっとやりたかった、restore snapshotを。
オッケ!!

ソースが戻ったー。
ビルドして実行すると、なつかしのiOSシュミレーターが立ち上がってくれたー!

けど最初にリジェクトされた直後に取ったやつだから、まあまあ古い。。。

リジェクトされた原因を回避するために書き加えていた.mファイルの方は、
もともと壊れてなかったのでリストアする前の状態に戻す。
これはテキストファイルでとってたのをコピペ…。

あとはiPadでもちゃんと下が切れないようにstoryboardでボタンとかの配置を上側にずらした作業が無に帰したので、これは後日やろう…。
これもAutoLayout(?)とかちゃんとやると、こんな苦労はしなくていいんだろうか・・・。

(6)
何はともあれ、スタートラインには戻れたのでまた出直しだ!


2014年8月3日日曜日

iAdとnendを両方使う方法が分からない

nendの審査は1日でおりたので、基本情報や報酬支払い情報などを管理画面から入力。

この辺の入力はnendのマニュアル通りで特に問題なし。

ちょっと広告枠のサイズってどれだろうと思ったけど、
こちらのサイトを見て、「320x50」を選択。

Monaca | モナカでNendの広告を表示する方法 その⑤


管理画面からSDKを落として、
「nendSDK for iOS ver 2.4.1 設定ガイド」を読みながらxcodeを操作。

ただ、そのまま@interface・・・を書くともともと書いていたiAdの部分(デリゲート)と、重複してしまい赤いびっくりマークが出てしまう。。。

つまずいたマニュアルの章
4-1-2.バナー型広告の実装手順
○ヘッダファイル
(1) delegate 準拠
出てきたエラー
Duplicate interface definition for class 'xxxxViewController'

iAdとnendを両方使うためにはどう書いたらいいのかよくわからず今日は終了。
デリゲートをよく理解できてないので、当然の結果か・・・。

次やる事は、
(1)iAdで書いたコードをコメントアウトして、nendにそのまま書き換えるか、
(2)下記のページみたいにうまい事切り替えれるようにするか、なのかな。

AdMobメディエーションで広告(Nend,iAd,AdMob)を切り替える方法



(2014.09.21追記)

方法が分かりました!

デリゲートを二つ設定する方法が分からなかったのですが、下記サイトに丁寧に書かれていました。

Objective-CでのDelegateについて
http://konton.ninpou.jp/program/cocoa/delegate.html

要するに、カンマで並べて書けばよかっただけでした…。