So-net無料ブログ作成

iBooks(EPUB3/テキスト)の作成方法

▼動画で説明



iBooksを作成・公開したので作成方法をメモ

<作業環境>
Windows PC(OS:Win7)

<準備するもの>
・表紙(cover.jpg)

・原稿のテキストファイル(txt)
 →冒頭部分に本の情報を記載
  ((小説タイトル))タイトル
  ((小説著者))著者名
 →小説本文には目次用に小見出しを記載
  (小見出し)本文

・EPUB作成ツール(ひまつぶし雑記帖)

 iBookstoreに本を公開するにはEPUBのバージョン3 が必要。
 EPUBを作成するツールは様々あるが、
 今回はひまつぶし雑記帖のスクリプトを使う。

 事前にPerlをインストールし、パールのパスを通す。



■iBooks作成(EPUB3)
・ひまつぶし雑記帖のサイトでスクリプト一式をダウンロード
http://t2aki.doncha.net/?id=1366869172

・展開

・原稿ファイルを保存
easy_epubフォルダ

・EPUBファイル作成

・コマンド実行
cd "easy_epubフォルダ"
perl easy_epub.pl "原稿のテキストファイル"


・準備しておいた画像を保存
OEBPS\images フォルダ

・本文をhtmlタグで編集

・ターミナルで下記コマンド実行しEPUBファイルを再圧縮
※zipはインストールしてパスを通しておく

cd "easy_epubフォルダ"
zip -0 newbook.epub mimetype
zip -r newbook.epub META-INF/*
zip -r newbook.epub OEBPS/*


以上

ちなみに公開したiBooksはこちら↓↓↓↓↓

声優テキスト 発声・発音編


[プッシュ通知]AppBank Felloを使ってみた

scr_fello1.png
AppBank Felloはプッシュ通知の実装時に必要なサーバー周りの開発を行う必要がなく、数行のコードを追加するだけで利用できます。かつどれだけ使っても無料です。
https://appbank.fello.net/

scr_fello2.PNG

【大まかな流れ】
・iOS dev centerでプロバイダ証明書、プロビジョニングプロファイル作成
 ⇒プロバイダ証明書は(*.cer)→(*.p12)→(*.pem)に変換
・AppBank Felloの管理コンソールにアプリ追加、プロバイダ証明書(*.pem)登録
・XcodeのプロジェクトにAppBank FelloのSDK、Framework、コード追加
 ⇒Bundle ID、プロビジョニングプロファイルは設定しとく
・Macに端末をつないでアプリ実行、プッシュ通知を許可してデバイストーク発行
・AppBank Felloの管理コンソールでプッシュ通知を実行

scr_fello3.PNG

参考
https://fello.net/help/notification_integration_for_ios


■プロバイダ証明書(*.pem)の作成方法
1.iOS dev centerでプロバイダ証明書作成、ダウンロード(*.cer)
2.キーチェーンに追加して書き出し(*.p12)
 ※今回は念のため秘密鍵は選択しない、パスワードは設定しない
3.ターミナルでコマンド実行(*.pem)
 openssl pkcs12 -in <証明書.p12> -out <証明書.pem> -nodes -clcerts
 ※cdコマンドで証明書の保存先に移動しとく
 ※パスワードきかれたら何もせずエンター

[エラー]Missing Push Notification Entitlement

プッシュ通知を実装したアプリを申請したらiTunes Storeから以下のメールが来た。
(アプリのステータスはWaiting For Review)

ーーーーーーーーーーーーーーーーーーーーーーーーー
Missing Push Notification Entitlement - Your app appears to include API used to register with the Apple Push Notification service, but the app signature's entitlements do not include the "aps-environment" entitlement.
If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the "aps-environment" entitlement.
See "Provisioning and Development" in the Local and Push Notification Programming Guide for more information.
If your app does not use the Apple Push Notification service, no action is required. You may remove the API from future submissions to stop this warning. If you use a third-party framework, you may need to contact the developer for information on removing the API.
If you would like to update your binary for this app, you can reject this binary from the Binary Details page in iTunes Connect. Note that rejecting your binary will remove your app from the review queue and the review process will start over from the beginning when you resubmit your binary.
ーーーーーーーーーーーーーーーーーーーーーーーーー

アプリにプッシュ通知が実装されてるけど、App store公開用のProvisioning Profile にプッシュ通知の設定がちゃんとされてないとゆう内容。
申請の際、Organizerで過去(プッシュ通知設定前)のProvisioning Profileを選択してたかも。

【対処】
念のため申請するアプリのProvisioning Profileの設定が正しか確認して、
Organizerで最新のProvisioning Profileを選択して申請したらうまくいった。
(Provisioning Profileの設定がおかしかったら再作成した方がいいみたい)

▽申請するアプリのProvisioning Profileの設定が正しか確認する方法
・Xcodeの[Window] - [Organizer] - [Archives] - [Distribute] を選択
・「Save for Enterprize ・・・」を選択しNext
・App store公開用のProvisioning Profileを選択しExport
・パッケージファイル(.ipa)保存先を指定しSave
・ターミナルで解凍コマンド実行「unzip <パッケージ.ipa>」
 ※Payload/フォルダに展開される
・ターミナルで署名状況を確認するコマンド実行
 「codesign -d --entitlements :- Payload/<パッケージ.app>」
"aps-environment" があればOK!!
scr_terminal_20140306.png

[プッシュ通知]ニフティクラウドmobile backend を使ってみた

scrpush1.PNG
プッシュ通知を全て自分で実装しようとするとかなり大変。

プッシュ通知用のサーバが必要なので、
自前のサーバがない場合、MySQL付きのレンタルサーバを借りて、テーブル作って、DBにユーザ情報を登録するPHPファイルを準備したり何やら。。

サーバ側の処理を全てしてくれるサービスは幾つかあり、
「ニフティクラウドmobile backend」はそ1つ。(以下、ニフティmBaaSと略す)
つまずいて実装に2日掛かりましたが、めーーーっちゃ楽です。
http://mb.cloud.nifty.com/

無料のBasicプランでもAPIリクエスト・プッシュ通知が200万回/月利用でき、基本ストレージも5GB使用可能。
scrpc1.png


【大まかな流れ】
・iOS dev centerでプロバイダ証明書、プロビジョニングプロファイル作成
 ⇒プロバイダ証明書は(*.cer)→(*.p12)に変換
・ニフティmBaaSの管理コンソールにアプリ追加、プッシュ通知許可、プロバイダ証明書(*.p12)登録
・XcodeのプロジェクトにニフティmBaaSのSDK、Framework、コード追加
 ⇒Bundle ID、プロビジョニングプロファイルは設定しとく
・Macに端末をつないでアプリ実行、プッシュ通知を許可してデバイストーク発行
・ニフティmBaaSの管理コンソールで端末の登録を確認、プッシュ通知を実行

scrpush2.PNG

(参考)
http://mb.cloud.nifty.com/doc/quickstart_ios.html
http://www.lancork.net/2013/10/ios-push-with-nifty-mobile-backend/



★つまずいた所1★
プロバイダ証明書(p12)作成の際、証明書と秘密鍵の両方選択して書き出すと、
管理画面でプッシュ通知すると、「配信エラー」になる。
サポートに問い合わせて解決した↓↓↓
========================================================
●証明書(p12)作成時の注意事項
 ・書き出す際にパスワードを設定しないでください
 ・書き出す際は証明書のみを選択してください
   →証明書に紐付く秘密鍵を選択する必要はありません
========================================================


★つまずいた所2★
iPhone5(ios6.x)でプッシュ通知のテストをしたら、狂った様にサウンドが鳴った(10回くらい)
マナーモードにしてても狂った様にバイブが鳴った(10回くらい)
コードを変更して通知タイプをアラートだけにしたら解決した。

AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
<<変更前>>
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

<<変更後>>
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert)];



★つまずいた所3★
ビルドするとエラーが出る
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_CLLocationManager", referenced from:
objc-class-ref in NCMB(NCMBGeoPoint.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
手順にはないけど、CoreLocation.framework を追加したら解決。


★つまずいた所4★
ビルドするとエラーが出る
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
Undefined symbols for architecture armv7s:
"_OBJC_CLASS_$_FBAccessTokenData", referenced from:
objc-class-ref in NCMB(NCMBFacebookUtils.o)
"_OBJC_CLASS_$_FBRequest", referenced from:
objc-class-ref in NCMB(NCMBFacebookUtils.o)
"_OBJC_CLASS_$_FBSession", referenced from:
objc-class-ref in NCMB(NCMBFacebookUtils.o)
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
Build Settings >Linking >Other Linker Flagsに「-all_load」や「-ObjC」が設定されていると出るエラー(Facebook SDKの追加が必要)
確かadmob広告用に「-ObjC」を設定してた。
「-ObjC」を消すとアプリが落ちる。。
今回はadmob広告を削除した。。。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。