5 セットアップ
5.1 iOS Dev Center 上での設定
以下に記した 2種類の証明書を書き出す必要があります。
- APNs Development iOS(開発用プロビジョニングプロファイル用)
- APNs Production iOS(アドホック用ならびに製品用プロビジョニングプロファイル用)
書き出すための手順の詳細は、別途お配りしている「FANSHIP 導入事前準備(APNs 証明書等)」をご参照ください。
プロファイルは必ず更新してください
更新を行わない場合、FANSHIP のすべての機能が利用できない 不具合につながります。
後述の「プッシュ通知の有効確認方法」も必ずご確認ください。
Wi-Fi配信を利用する場合について
Wi-Fi情報を利用する場合、「Identifiers > iOS App IDs 」にて Access WiFi Information を有効 にしてからプロビジョニングプロファイルを再作成してください。
後述の「8-4.Wi-Fi情報を利用する場合」も必ずご確認ください。
5.2 Xcodeプロジェクトファイルの設定
Settings.bundle が含まれることを確認してください。
PopinfoReceiver.xcdatamodeld が含まれることを確認してください。
- libPopinfoReceiverLib.a(配布物)
- CoreLocation.framework
- CoreData.framework
- SystemConfiguration.framework
- CoreTelephony.framework
- UserNotifications.framework
また更新前のプロビジョニングプロファイルはプロジェクトから削除してください。
- TARGETS > Capabilities > Background Modes をオンにします
- 「Location updates」にチェックを入れます。
位置情報利用は App Store の審査で確認されます
位置情報を利用しない場合(9.1にて後述) や、位置情報のネットワーク測位のみを利用する場合(9.2にて後述) は、この設定は行わないでください。
正当な理由なく位置情報を利用する設定を行った場合、 App Store の審査にて却下 されますので、厳守してください。
Wi-Fi情報利用は App Store の審査で確認されます
Wi-Fi情報を利用しない場合は、この設定を行わないでください。
正当な理由なく設定を行った場合、 App Store の審査にて却下 される可能性があります。
ビルド対象プロジェクトにおいて、 TARGETS > Capabilities > Background Modes の「Background fetch」にチェックを入れてください。
具体的には、ipa ファイルの Entitlements に、キー aps-environment が含まれていることを確認してください。
ipa ファイルの Entitlements は、その ipa ファイル中に含まれる appファイル を検査することで確認できます。
appファイルを取り出す方法
appファイル は以下のようにして ipa から取り出すことができます(製品版プロビジョニングプロファイルの例)。
- アプリプロジェクトを Xcode で開き、製品版プロビジョニングプロファイルを指定し、「Product > Archive」と進んで、アプリをビルドします。
- Xcode の Organizer が開いたら、「Save For Enterprise or As-Hoc Deployment」を選んで進み、製品版プロビジョニングプロファイルを指定して、ipa ファイルを作成します。
- 作成した ipa ファイルの拡張子を「zip」に変更します。
- その zip ファイルを解凍すると、「Payload」というフォルダが出来ます。そのフォルダ内に .app ファイル が生成されています。
appファイルに対して、以下のコマンドを実行すると、Entitlements の内容を確認できます。
codesign -d --entitlements - <YourAppName>.app
出力に、以下のように「
<key>aps-environment</key>」が含まれていることを確認してください。
<key>application-identifier</key>
<string>ZZZZZZZZ.com.yourcompany.yourappid</string>
<key>aps-environment</key>
<string>production</string>
aps-environment が存在しない場合は
aps-environment が含まれない場合、アプリにプッシュ通知用のトークンを取得する許可が与えられていません。
プロビジョニングプロファイルの更新 が行われたか、ご確認ください。
開発版、アドホック版、製品版のそれぞれで設定されているか確認する必要があります。
プッシュ通知設定の誤りは自動検出されません
製品版でプッシュ通知が有効になっていない場合でも、アプリの ビルド 、 アップロード 、申請作業 すべてにおいて いかなる警告も発生しません 。
App公開後に発覚しても バージョンアップ版を公開するまで修正することができません ので、公開前にプッシュ通知が有効になっていることを必ず検査してください。
そのため、 ARC を「無効」にしたアプリに組み込む必要がある場合は、以下の手順で設定をお願いします。
多くの場合 ARC の設定は不要です
Xcode 6 以降、新規作成されるプロジェクトはデフォルトで ARC が有効になっています。
現在において、ARCを無効にして iPhone アプリ開発を行うケースは 極めて稀 ですので、多くの場合以下の手順の設定は不要です。
- TARGETS > Build Phases > Compile Sources から PopinfoListViewController.m を選択します
- エンターキーを押して「
-fobjc-arc」と入力します。 - 残りの(以下の)ファイルに対しても「
-fobjc-arc」と入力します。PopinfoDetailViewController.mPopinfoPadViewController.mPopinfoSegmentSettingsViewController.mPopinfoViewConfiguration.mPopinfoConfiguration.m
- Privacy - Location Always and When In Use Usage Description (iOS11,12用)
- Privacy - Location Always Usage Description (iOS10以下用)
- Privacy - Location When In Use Usage Description(iOS13用)
上記3つのキーに対する値には、位置情報を利用する目的( 利用理由 )を記述する必要があります。
以下の記述例を参考に文言を記述してください。
利用理由の記述例
お知らせを配信するために位置情報を利用することがあります

「利用理由」は App Store の審査で確認されます
位置情報、Wi-Fi情報、iBeacon のいずれかを利用しているにもかかわらず、この記述が行われていない場合、App Store の審査結果に影響が出る可能性があります。
「利用理由」はエンドユーザーに表示されます
3つのキーの値として記述した文言は、iOS の許諾ダイアログなどで利用されます。

なお、iOS のバージョンアップを契機に、文字列が表示される箇所は Apple により変更される可能性があります ので、エンドユーザーの混乱を避けるためにも、3つの値には 原則同一の文字列を記述 してください。
そのため、他の目的で使用する場合を除き、ビルドするプロジェクトの TARGETS > Capabilities > Background Modes において「Remote notifications」に チェックは入れないでください。
名前が紛らわしいですが、FANSHIP SDKでは使用しません
「Background Modes」や「Remote notifications」といった語句から、あたかもバックグラウンド時のプッシュ通知を届けるために必要であるかのように見えますが、これは「Background Notifications」(サイレントプッシュ)を利用可能にするオプションです。
極めて紛らわしいのですが、本SDKではこのオプションは使用しません。
Xcode 11 で Capabilities を追加するには
Xcode 11 から Capabilities の操作方法が変更されています。
上部ペインの「+」ボタンをクリックするか、キーボードで Command + Shift + L を押すと、以下のウィンドウが現れますので、Push Notifications をクリックすれば、 Capabilities の一覧に項目が追加されます。

なお、Push Notifications をすでに有効にしている場合は、このウィンドウの一覧には表示されませんので、Capabilities の一覧をもう一度確認してください。