2014年10月19日日曜日

プライバシーポリシーでReject → 再申請

めっきり寒くなりましたね。
いままではポロシャツ中心でしたが半袖だと寒いので長袖のシャツを着ています。

「麻雀点数計算ドリル」をバージョンアップしようと申請をしていましたが、この前Rejectの連絡がきました。

iTunes Connect に記載されていたReject理由をそのまま貼付けます。

---------------------------------------------------
Reasons

17.5: Apps that include account registration or access a user’s existing account must include a privacy policy or they will be rejected
----- 17.5 -----

We noticed that your app includes account registration or access to users’ existing accounts but does not include a privacy policy, which does not comply with the App Store Review Guidelines.

Please add a link to your privacy policy in the Privacy Policy URL field in iTunes Connect and ensure that the URL you provide directs the user to the intended destination.

To add or modify your app’s privacy policy link:

- Log into iTunes Connect
- Click on “My Apps”
- Select your app
- Revise the “Privacy Policy URL” field
- Click “Save"
- Once you’ve completed all changes, click the “Submit for Review” button at the top of the App Details page

NOTE: Please be sure to make any metadata changes to all App Localizations by selecting each specific localization and making appropriate changes.
---------------------------------------------------

今回のバージョンアップは、満貫以上の点数表の一部が間違っていたので訂正したのと、広告ネットワークのnendを追加しました。

nend SDKを使用するとユーザ情報を取得するようです。そういうアプリはプライバシーポリシーを書いたURLを iTunes Connect の該当アプリの”Privacy Policy URL”に記載してください、という意味だと解釈しました。

nend SDKのプライバシーポリシーはnend様のホームページ上にしっかり記載されていますので、そちらを見れば問題ないと思います。ただ、このURLをそのまま iTunes Connect に直接記載するのはどうかと思いましたので、サポートサイトと同じようにこのブログの投稿に「麻雀点数計算ドリル プライバシーポリシー」を作り、そこに詳細はnend様のプライバシーポリシーを参照するように誘導して、そのURLを記載しました。個人でiPhoneアプリを作ってnendSDKを利用している他の方達はどうしているのか気になるところですが探しても意外と見つかりませんでした。

再申請の手順としては、iTunes Connect のReject理由に書かれている箇条書きの通りに進めました。すべて iTunes Connect 上での操作で完結しますので、xcodeの操作はしませんでした。

アプリのステータスは「レジュー待ち」に無事変わりましたので、このまま審査が通過する事を期待します。

麻雀点数計算ドリル プライバシーポリシー

本アプリは、株式会社ファンコミュニケーションズ様が提供するスマートフォンアプリケーション広告配信用モジュール「nend SDK」を使用して広告を表示しています。

nend SDKが取得する情報の項目、利用目的などの詳細は下記URLをご参照ください。

nendSDK広告配信用モジュール・プライバシーポリシー
https://nend.net/privacy/sdkpolicy

2014年9月21日日曜日

アプリをバージョンアップする

初めてのバージョンアップです。

最近、iTunes Connectの画面が新しくなったのでちょっと苦戦。。。

アップデートの手順

こちらのサイトにお世話になりました。


ド素人iPhoneアプリ開発者takaakiSasakiのブログ

[iPhoneアプリ開発]刷新(リニューアル,バージョンアップ)されたiTunes Connectでのアプリのアップデート(申請)がややこしいですが、何故か上手くいったみたいなのでその辺りを。IDFAの件です。

評価セクションでハマる



さらにハマったのは、

「評価」セクションで、Apple コンテンツ説明の頻度レベルを選択する必要があります。

と、エラーが出てしまう事…。評価ってどこ…?

こんどはこちらのサイトにお世話に。

三千世界のインターネットで烏と共に

【Xcode6.0.1,iTunesConnect】『「評価」セクションで、Apple コンテンツ説明の頻度レベルを選択する必要があります。』 - 三千世界のインターネットで烏と共に

要はレーティングの編集を押して、追加された項目も選択してね、ということ。

Distributionで止まる

あとは、xcodeでビルドしてValidation→Distribution。

自分のネット環境の問題か相手先の問題化は分かりませんが、
Distribution中に10分くらい読み込み中になってしまいキャンセルを押す事に・・。
深夜にやっていたので、翌日の昼間に再トライしてみたら、すんなり三分くらい待ったら行きました!

IDFA質問の選び方

こちらの回答例どおりに記載。
【iOS】アプリ申請時のIDFAメモ zoomAroid

いちおう英語も読んだ上で、きっとこれであってるはずと選びました。

いまは、レビュー待ちです。リジェクトされませんように…。



「iAd」と「nend」を併用する

しばらく止まっていたnend導入。

重い腰をあげてやってみます。

一番ネックになっていたのは、delegateを二個設定する方法でした。

これは、過去記事に解決方法を記載。
iAdとnendを両方使う方法が分からない
(要は、カンマで並べて書けばよかったと…。)


iAdとnendを1個の画面(ビュー)に同時に表示させるにはどうしようかと考えます。

やっぱり切り替わった方がかっこいいよねぇ、とか考えましたが、
広告の在庫で判断などのロジックを書くのはけっこう大変そうだったのと、
そもそもiAdがなぜかリリースしてから今まで、
広告のインプレッション数が0のままという状態・・・。

これをふまえて、
画面一番下にnend、その上に積み重なる形でiAdを表示させる事にしました。


これだと、ゲームする画面自体が狭くなるので、使う人には不評になるかも…。





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

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