2016年10月19日水曜日

GPGSでAndroidとiOSのマルチプレイ実演


 無料アプリ「リーマンズ マルチプレイ」のiOS版がリリースされました。
 慣れないXCodeがバージョンアップされるたびに仕様変更がされて試行錯誤でしたが、なんとかUnity+GPGSの扱いに関しては一段落です。

日本のアプリはUnityが多く使われてはいますが、GPGSを使ったアプリは少ないですね。特にマルチプレイのゲームは日本語での情報が少ないです。GPGSに関して実装や審査等の情報はこちらです。GPGSに関して


GooglePlayGameServiceをApple審査に通す

GooglePlayGameServiceを導入したアプリを審査に通すには。

  1. googleへのログインはアプリ起動直後以外にする
  2. googleへログインする必要性をメモに書く

以下メッセージのやり取り

1.0 バイナリでの却下
Legal - 5.1.1
We noticed that your app uses Google login for authentication purposes but does not include account-based features offered by that site.
In order to use Google for authentication, your app must include significant account-specific functionality from Google.

Next Steps
Please revise your app to implement your own authentication mechanism, or incorporate significant account-specific functionality from Google.
If your app does include additional account-specific features from Google, please provide us with details on where we can locate these features in your app.

Legal - 5.1.1
We noticed that your app requires users to register with personal information to access non account-based features. Apps cannot require user registration prior to allowing access to app content and features that are not associated specifically to the user.
Specifically, your app requires login on launch in order to start playing.
Next Steps
User registration that requires the sharing of personal information must be optional or tied to account-specific functionality. Additionally, the requested information must be relevant to the features.

原因

どうやらアプリ起動時にgooogleのログインを表示するのが問題らしい。

解決方法

GPGSを使うボタンを押下したタイミングでgoogleのログイン画面を出す。

1.0 バイナリでの却下
Information Needed
We began the review of your app but aren't able to continue because we need additional information about your app.
At your earliest opportunity, please review the following question(s) and provide as much detailed information as you can. The more information you can provide upfront, the sooner we can complete your review.
- Why does a user use Google login only to play Multiplayer?
- Does your app contain any Google account-specific features?
Once you reply to this message in Resolution Center with the requested information, we can proceed with your review.
Best Regards,

原因

質問のメッセージ

解決方法

メッセージの返信
リアルタイムマルチプレイを行うために、グーグルへログインが必要です。
In order to perform a real-time multiplayer, you need to login to Google.
・Google Play Games Services
https://developers.google.com/games/services/common/concepts/realtimeMultiplayer

2016年10月16日日曜日

GPGSAppController didRegisterForRemoteNotificationsWithDeviceToken

Xcode8のGPGSで以下のエラーが発生
[super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
どうやらスーパーへの呼び出しが最新のXcodeと合わないようです。

対処法1スーパーを削除する

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { // [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; // NSLog(@"Got Token for APNS: %@", deviceToken); // send the token to GPGS server so invitations can be sent to the local player // NOTE: GPGPushNotificationEnvironmentProduction indicates this is // using the production APNS service. // GPGPushNotificationEnvironmentSandbox indicates that the sandbox // service should be used. This value needs to match the cooresponding // certificate registered in the play app console, under linked apps > ios in // the section for push notifications. gpg::RegisterDeviceToken(deviceToken, GPGPushNotificationEnvironmentProduction); }

対処法2行を削除する

最新のGPGSソースでは行がなくなっています。

2016年10月11日火曜日

iTunes Connectの審査、レビューが早くなった

iTunes Connectのアプリの審査が早くなっていました。
どうやら48時間以内で審査を完了させる方針になったようです。
以前は4日〜10日ほど、順番を待たなければいけませんでした。

appleの48時間作戦!

というか今までの審査が長すぎでした。
対照的にGooglePlayは審査が20分ほど長くなったような気がします。
それでも1時間以内ですけど。
どちらも審査の自動化などに力を入れた結果ですね。

Unity5 AdMob Xcode8 ios10対応

Xcode8 ios10からパーミッションの設定が必要になりました。
Unity5 AdMobプラグインを使用する場合はinfo.plistファイルに以下のパーミッションを追加します。Xcodeのプロジェクトにあります。右クリックでソースを表示できます。

info.plistの設定

    <key>NSCalendarsUsageDescription</key>
    <string>広告に使用します。</string>
    <key>NSCameraUsageDescription</key>
    <string>広告に使用します。</string>
    <key>NSBluetoothPeripheralUsageDescription</key>

    <string>広告に使用します。</string>

パーミッションの設定に失敗した場合

Dear developer,
We have discovered one or more issues with your recent delivery for "". To process your delivery, the following issues must be corrected:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
Once these issues have been corrected, you can then redeliver the corrected binary.
Regards,
The App Store team

2016年10月10日月曜日

itunes connect ビルド 反映されない

itunes connectにxcodeでビルドとアップロードしたファイルが表示されません。

原因

  • itunes connectに反映されるまで時間がかかる
  • アップロードしたファイルに問題がある
他にもitunes connectやxcode、developer Centerの連動は即時に反映されないので数十分は待つ必要がある
 アカウント情報の更新にも時間がかかるので上記三つの連動は数時間待つことを見積もっておいたほうが良い。
アップロードしたファイルに問題がある場合はメールが届きます。
 Dear developer,
We have discovered one or more issues with your recent delivery for "アプリ名". To process your delivery, the following issues must be corrected:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
Once these issues have been corrected, you can then redeliver the corrected binary.
Regards,
The App Store team

processing symbol files xcodeエラー

XCodeをアップデート後、アプリをアップロードしようとした際にエラーが発生しました。
processing symbol files xcodeエラー

解決方法?


  1. Apple developerコンソールから開発者のプロファルをダウンロード
  2. ios_distribution-2.cerをダブルクリック
  3. 再度アップロード画面に戻りtyragenボタンを押す

開発者アカウントを更新した直後だったので原因は不明です。