ブックアプリを通す方法を結論から言うと、
・ビューワーアプリ(あるいはストアアプリ)
・サーバダウンロード
が条件である。トリビア系のアプリのようにテーブルでディレクトリを重ねてコンテンツを細切れのカード型にすると通る可能性はあるが、一般的な電子書籍としては、上記の方法しかなさそうだ。今回は自前のコンテンツを複数揃えるのが難しくなったので青空文庫のコンテンツを使用した。昨年著作権が切れた吉川英治氏の「宮本武蔵」をPDF化してコンテンツを揃えた。そして審査に通ったのが
◆JIPPO BOOKS(十方ブックス)
https://itunes.apple.com/jp/app/jippo-books-shi-fangbukkusu/id631021450?&mt=8
である。
SakuttoBookは今回のバージョンで、コンテンツのサーバダウンロードに対応し、iPhone 5用のレイアウトにも対応した。マーカー機能を追加して、サーバコンテンツの組み方向を個別に指定できるようになった。
App Storeアプリのリジェクトには大きくいって二種類がある。それは
iOSの仕様の変更によるもの
Appleのポリシーのよるもの
である。iOSの仕様変更によるものは対応が分かりやすい。Xcodeを書き換えればいいだけなので、プログラムを修正するだけでよい。ただし、こういう仕様の変更は年に1〜2回はある。
今年も5月にUDIDにアクセス可能な古いコードを使っているアプリは審査が通らなくなった。これらコードを削除すればよい。SakuttoBookも古いコードを使用しており、アップロードできないことがあった。これはリジェクト以前らアップロードしたときに「Invalid Binary」で刎ねられる。審査を待って落とされるよりましだろう。
このときのアップロードできない理由は「Non-public API usage:(非公開APIの使用)」というもので、いままでXcodeで仕えていたコードがいつの間にか「Non-public API」扱いになってしまった。正しくはiOS 6からNon-public API扱いになったというわけだ。
アメリカでは1年くらいまえからUDIDにアクセスするアプリを排除し始めており、コードを完全に排除するまでにiOS 6の普及を待ったということだろう。アプリがデバイスのUDID(40桁の固有識別子)を取得しデータベース化すると、ユーザーの承諾なしに不正に利用されることになる。広告ではUDIDによってターゲット化しているが、今後は地図アプリを使うときのGPSのように、UDIDなどのデバイスの識別子へのアクセスを許諾してから使うようになりそうである。
◆AppleによるUDID規制の動きと、これからのリワード広告における計測方法についての所感
http://blogs.itmedia.co.jp/jinmsk/2012/03/appleudid-87f8.html
SakuttoBookはアプリ内課金を使うときにUDIDにアクセス可能なコードを使っていた。というよりこのコードでiOS 5.1でのアプリ内課金と互換性を持たせていた。SakuttoBookの 2.1.xでビルドすると必ず1つはWarningが表示されるが、そのときのWarningがそれであった。
UDIDアクセスコードを削除すると、iOS 5.1のデバイスにはアプリがインストールできなくなる。つまりiOS 6のみとなる。iPhoneは3G以前、初代iPadはiOS 6はインストールできないので、デバイスはある程度制限されてしまう。また、iOSは6がインストールされていなければならないというデメリットもある。
ただしメリットもある。それはアプリ内課金サーバへのアクセスである。iOS 5.1まではアプリ内課金を使ってアプリ内コンテンツに課金しようとすると、Appleの課金サーバの接続が確立されるので異様に時間がかかることがあった。アプリ内コンテンツを購入したくても
値段でないじゃん
と腹立たしくなることもしばしば。これではアプリ内コンテンツは売れない。ところが、iOS 6ではこれがスムーズにいく。実機にアプリ内課金を使った同じアプリをインストールすると、iOS 5.1とiOS 6では課金表示に大きな差がでるのである。
iOS 5まではアプリ内課金しても、ユーザーがなかなか購入できないため販売機会を逸していたが、iOS 6ではそれがない。つまりiOS 6になってアプリ内課金はやっと実用的になったともいえるのである。単体アプリを販売する場合は、古いバージョンにも対応する必要があるが、アプリ内課金でコンテンツを売っていく場合は、iOS 6以降に限定しておくほうがメリットは大きい。
アプリの仕様変更でのリジェクトは、方向性がはっきりしている。対処方法も分かりやすい。分かりにくいのはAppleのポリシーでリジェクトされるものである。UDID使用禁止もある意味ではポリシーの変更だが、リジェクト基準は明確だ。UDIDアクセスコードを使わなければよい。
ところが、2.21リジェクトはコードの変更だけでは対処できない。2.21には
Apps that are simply a book should be submitted to the iBookstore.
とあり「単純な本はiBookstoreに申請」と書かれているが、ここでいう「単純な本である」あるいは「単に本である」の意味は不明確である。ここでもデービット氏は活躍しているに違いない。
◆アップルのアプリ審査担当者“デービッド”って誰?
http://zasshi.news.yahoo.co.jp/article?a=20130418-00000555-playboyz-soci
さて「単純な本」にしないために何ができるのかということを考えてみた。方法としては
iBookstoreにはない機能を強化する
アプリ内課金で複数のコンテンツを扱う
という方法があった。ところが、iBookstoreにない機能をアプリに追加しても、ブックアプリはリジェクトされてしまうのである。
>>続く
◆JIPPO BOOKS(十方ブックス)
https://itunes.apple.com/jp/app/jippo-books-shi-fangbukkusu/id631021450?&mt=8
◆SakuttoBook(サクッとブック)でiPhoneアプリを作る方法
http://bit.ly/mhgjCG
【SakuttoBook日記の最新記事】
- iOS 8、Xcode 5.1.1でSa..
- 2.21リジェクト顛末記2−ストアアプリ..
- SakuttoBookだけでするWebの..
- 法人向けD-U-N-S Numberを無..
- 日本語版iBookstoreローンチで始..
- 複数台のMacintoshでiOS De..
- 立川談幸師のグリム童話をSakuttoB..
- iOS 6から厳格になったiCloudの..
- Xcode4.5で必要になったiPhon..
- Xcode 4.5とiOSシミュレータ ..
- iOSアプリ内課金、リストア機能なしはな..
- SakuttoBook、PDFのユニバー..
- アプリ内課金を回避するエクスプロイトの衝..
- iOSシミュレータと実機のキャッシュを殺..
- アプリ内課金の仕組み 2 アプリ内課金は..
- アプリ内課金の仕組み 1 アプリ内課金ア..
- SakuttoBookユニバーサル版検証..
- SakuttoBookより安い儲かるiP..
- Lionへのアップデートを誘うiOS 5..
- Xcode 4でする実機インストールの動..