Skip to content

5 セットアップ

5.1 iOS Dev Center 上での設定

iOS Dev Center にログインし、「Certificates, Identifiers & Profiles」>「Certificates」に進み、プッシュ通知用証明書(Certificates) を書き出してください。
以下に記した 2種類の証明書を書き出す必要があります。

  • APNs Development iOS(開発用プロビジョニングプロファイル用)
  • APNs Production iOS(アドホック用ならびに製品用プロビジョニングプロファイル用)

書き出すための手順の詳細は、別途お配りしている「FANSHIP 導入事前準備(APNs 証明書等)」をご参照ください。

この2つのファイルを、FANSHIP 配信管理画面の「アカウント設定」において設置してください。

すでにアプリを公開されている場合、プッシュ通知を有効にするために、プロビジョニングプロファイルの更新を行います。開発用、アドホック用、製品用それぞれのプロビジョニングプロファイルを再作成してください。

プロファイルは必ず更新してください

更新を行わない場合、FANSHIP のすべての機能が利用できない 不具合につながります。
後述の「プッシュ通知の有効確認方法」も必ずご確認ください。

Wi-Fi配信を利用する場合について

Wi-Fi情報を利用する場合、「Identifiers > iOS App IDs 」にて Access WiFi Information を有効 にしてからプロビジョニングプロファイルを再作成してください。
後述の「8-4.Wi-Fi情報を利用する場合」も必ずご確認ください。

5.2 Xcodeプロジェクトファイルの設定

配布した lib 以下のファイル群すべてを、組み込むプロジェクトにドラッグアンドドロップし、ファイルを追加してください。

アプリプロジェクトの TARGETS > Build Phases > Copy Bundle ResourcesSettings.bundle が含まれることを確認してください。

TARGETS > Build Phases > Compile SourcesPopinfoReceiver.xcdatamodeld が含まれることを確認してください。

TARGETS > Build Phases > Link Binary With Libraries に以下を追加してください。

  • libPopinfoReceiverLib.a(配布物)
  • CoreLocation.framework
  • CoreData.framework
  • SystemConfiguration.framework
  • CoreTelephony.framework
  • UserNotifications.framework

プロビジョニングプロファイルを更新した場合、TARGETS > Build Settings > Code Signing において、更新後のプロビジョニングプロファイル を指定してください。
また更新前のプロビジョニングプロファイルはプロジェクトから削除してください。

位置情報(定期 GPS 測位) を利用する組み込みを行った場合、SDK がバックグラウンドで GPS を起動できるよう、以下の操作が必要です。

  1. TARGETS > Capabilities > Background Modes をオンにします
  2. Location updates」にチェックを入れます。

位置情報利用は App Store の審査で確認されます

位置情報を利用しない場合(9.1にて後述 や、位置情報のネットワーク測位のみを利用する場合(9.2にて後述 は、この設定は行わないでください
正当な理由なく位置情報を利用する設定を行った場合、 App Store の審査にて却下 されますので、厳守してください。

Wi-Fi情報を利用する場合、「TARGETS > Capabilities > Access WiFi Information 」をオンにしていただく必要があります。

Wi-Fi情報利用は App Store の審査で確認されます

Wi-Fi情報を利用しない場合は、この設定を行わないでください。
正当な理由なく設定を行った場合、 App Store の審査にて却下 される可能性があります。

FANSHIPはバックグラウンドフェッチ機能を利用します。
ビルド対象プロジェクトにおいて、 TARGETS > Capabilities > Background Modes の「Background fetch」にチェックを入れてください。

アプリをビルドした際、プッシュ通知が有効になっているかを必ず確認してください。

具体的には、ipa ファイルの Entitlements に、キー aps-environment が含まれていることを確認してください。
ipa ファイルの Entitlements は、その ipa ファイル中に含まれる appファイル を検査することで確認できます。

appファイルを取り出す方法

appファイル は以下のようにして ipa から取り出すことができます(製品版プロビジョニングプロファイルの例)。

  1. アプリプロジェクトを Xcode で開き、製品版プロビジョニングプロファイルを指定し、「Product > Archive」と進んで、アプリをビルドします。
  2. Xcode の Organizer が開いたら、「Save For Enterprise or As-Hoc Deployment」を選んで進み、製品版プロビジョニングプロファイルを指定して、ipa ファイルを作成します。
  3. 作成した ipa ファイルの拡張子を「zip」に変更します。
  4. その 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公開後に発覚しても バージョンアップ版を公開するまで修正することができません ので、公開前にプッシュ通知が有効になっていることを必ず検査してください。

SDK のソースコードは ARC(Automatic Reference Counting) が有効になっています。
そのため、 ARC を「無効」にしたアプリに組み込む必要がある場合は、以下の手順で設定をお願いします。

多くの場合 ARC の設定は不要です

Xcode 6 以降、新規作成されるプロジェクトはデフォルトで ARC が有効になっています。
現在において、ARCを無効にして iPhone アプリ開発を行うケースは 極めて稀 ですので、多くの場合以下の手順の設定は不要です。

  1. TARGETS > Build Phases > Compile Sources から PopinfoListViewController.m を選択します
  2. エンターキーを押して「-fobjc-arc」と入力します。
  3. 残りの(以下の)ファイルに対しても「-fobjc-arc」と入力します。
    • PopinfoDetailViewController.m
    • PopinfoPadViewController.m
    • PopinfoSegmentSettingsViewController.m
    • PopinfoViewConfiguration.m
    • PopinfoConfiguration.m

位置情報Wi-Fi情報iBeacon のいずれかを利用する場合、TARGETS > Info > Custom iOS Target Properties 内に、以下3つのキーを追加してください。

  • 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つのキーに対する値には、位置情報を利用する目的( 利用理由 )を記述する必要があります。
以下の記述例を参考に文言を記述してください。

利用理由の記述例

お知らせを配信するために位置情報を利用することがあります

5-1.png

「利用理由」は App Store の審査で確認されます

位置情報Wi-Fi情報iBeacon のいずれかを利用しているにもかかわらず、この記述が行われていない場合、App Store の審査結果に影響が出る可能性があります。

「利用理由」はエンドユーザーに表示されます

3つのキーの値として記述した文言は、iOS の許諾ダイアログなどで利用されます。
5-2.png
なお、iOS のバージョンアップを契機に、文字列が表示される箇所は Apple により変更される可能性があります ので、エンドユーザーの混乱を避けるためにも、3つの値には 原則同一の文字列を記述 してください。

FANSHIPはサイレントプッシュ通知を利用しません
そのため、他の目的で使用する場合を除き、ビルドするプロジェクトの TARGETS > Capabilities > Background Modes において「Remote notifications」に チェックは入れないでください。

名前が紛らわしいですが、FANSHIP SDKでは使用しません

「Background Modes」や「Remote notifications」といった語句から、あたかもバックグラウンド時のプッシュ通知を届けるために必要であるかのように見えますが、これは「Background Notifications」(サイレントプッシュ)を利用可能にするオプションです。
極めて紛らわしいのですが、本SDKではこのオプションは使用しません。

アプリプロジェクトの TARGETS > Capabilities > Push Notifications を有効にしてください。

Xcode 11 で Capabilities を追加するには

Xcode 11 から Capabilities の操作方法が変更されています。
上部ペインの「+」ボタンをクリックするか、キーボードで Command + Shift + L を押すと、以下のウィンドウが現れますので、Push Notifications をクリックすれば、 Capabilities の一覧に項目が追加されます。

5-4.png

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