2016年11月20日日曜日

現在のお支払い方法が拒否されたため、前回の購入を完了できませんでした。

Appleストアの引き落としは即時ではないので残高がない場合は以下の表示になり、
すべてのアプリがダウンロードできなくなります。

どうやら開発ライセンスを購入した際に、残高がなくなっていたようです。
デビットカードを使用していたので油断していました。
デビットカードなら通常は即時に引き落としされるのですが・・・これはAppleに問題がありますね。
悪用されかねないですし。
とりあえず、引き落としが終わるまでクレジットカードに変更しておきました。

2016年11月2日水曜日

itunes Connect ログインできない

itunes Connectにログインできない障害が発生中です。
ログインできても管理画面の表示が途中で停止してしまいます。

解決方法

よくある障害なので待ちましょう。
長いと半日くらい待たされますが・・・

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ボタンを押す

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

2016年9月21日水曜日

DropBoxのテキストファイルを編集できる無料アプリ

DropBoxのテキストファイル編集するなら「Nocs」がお勧めです。
iOSは無料アプリが少ないので重宝します。

Can't access device storage

スマホがPCとUSB接続できなくなりました。機種はp9 liteです。
エラーメッセージ
Can't access device storage
If your device's screen is locked, disconnect its USB cable, unlock your screen, and then reconnect the USB cable.

原因

スマホを長いこと再起動していない。

解決方法

スマホを先起動

2016年9月19日月曜日

Mac 勝手に変換される

Mac 勝手に変換される
ELからライブ変換機能が追加され、アップデート後はデフォルトでオンになっています。

解決方法

メニューバーからライブ変換のチェックを外す。
慣れれば使い易いのかもしれませんが、windowsとの兼ね合いもあるのでオフにしています。それと変換候補が表示されなくなる不具合があります。それは再起動で治せます。

2016年9月15日木曜日

El Capitanアップグレード方法

El Capitanにアップグレードしてみました。

最新のXcodeがインストールできないためです。

アップグレード方法

アップルストアからインストールできます。

変化したこと


  • 日本語が自動的に変換されてしまう。
  • Genymotion、ヴァーチャルボックスが動かない。
  • セキュリティの設定が変更されている?
  • Soundflowerが動かない

最新バーションをインストールする。
https://github.com/mattingalls/Soundflower/releases
インストール前にアンインストールスクリプトが同伴されているのでスクリプトエディタの実行ボタンを押して使用します。
画面収録時のLadioCastの設定見本

データの引き継ぎ

アプリとファイルは引き継がれてそのまま使用できます。

2016年9月8日木曜日

upload to app storeが非表示

Xcodeのアカウント設定を修正したところ「upload to app store」ボタンが使えなくなってしまいました。
distribution requires enrollment in the apple developer program

開発者プログラムの再認証が必要なようです。
今までは無料で使えていたのですが。。開発者プログラムを更新しないと再認証できない。

GooglePlayGameServiceをXCodeビルドする際のメモ

GooglePlayGameServiceをXCodeビルドする際のメモ

1,cocoapodsのインストール

cd プロジェクト(xcodeprojのあるところ)
sudo gem install cocoapods
pod install
以下ログ
Setting up CocoaPods master repo
CocoaPods 1.1.0.beta.2 is available.
To update use: `sudo gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.1.0.beta.2

Setup completed
Analyzing dependencies
Downloading dependencies
Installing GoogleAppUtilities (1.1.1)
Installing GoogleAuthUtilities (2.0.1)
Installing GoogleNetworkingUtilities (1.2.1)
Installing GooglePlayGames (5.1.1)
Installing GooglePlusOpenSource (1.7.1)
Installing GoogleSignIn (4.0.0)
Installing GoogleSymbolUtilities (1.1.1)
Installing GoogleUtilities (1.3.1)
Generating Pods project
Integrating client project
https://developers.google.com/identity/sign-in/ios/start-integrating
[!] Please close any current Xcode sessions and use `Unity-iPhone.xcworkspace` for this project from now on.

以下XCodeの修正

2. XCodeにフレームワーク追加

      AddressBook.framework
      AssetsLibrary.framework
      CoreData.framework
      CoreTelephony.framework
      CoreText.framework
      Security.framework
      libc++.dylib
      libz.dylib
拡張子が変更されています。
dylib >> tbd ios9mod

3. XCodeにフレームワーク追加 other

      GoogleOpenSource.framework
      GoogleSignId.bundle
      GoogleSignId.framework
      gpg.bundle
      gpg.framework
ダウンロードリンク
https://developers.google.com/games/services/downloads/sdks
https://developers.google.com/identity/sign-in/ios/sdk/
https://developers.google.com/+/mobile/ios/upgrading-sdk

4. Other Linker Flags に値を追加

  -ObjC

5、Enable BitcodeをNoにする

6、インポート文の修正

importを以下のようにする
<GoogleSignIn/GIDSignIn.h>
<GoogleSignIn/...>
4か所あります。

以下エラーと修正情報

・Unknown type name '__declspec'
NORETURN 削除 エラー箇所の行頭を削除

GoogleOpenSource.framework/GoogleOpenSource(GTLDateTime.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
・clang: error: linker command failed with exit code 1 (use -v to see invocation)
Build Settings>Build Options>Enable Bitcode =noにする

・Could not launch “app name XXX”
process launch failed: failed to get the task for process -1
Build Settings>Build Options>Provisioning Profileを設定

・Apple Mach-O Linker (ld) Error Group
clang: error: linker command failed with exit code 1 (use -v to see invocation)
CocoaPodsを使用しているプロジェクトは”.xcodeproj”でなく”.xcworkspace”から開きます。

・[super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
行を削除
プッシュ通知とバックグラウンドの設定。

プッシュ通知用のプロファイルを作成。

そこからキーチェーンで証明書を右クリックして書き出ししてパスワード付きのp12を作る。開発用と製品用の二つが必要。
作成したp12をグーグル開発コンソールのゲームサービスに登録する。
オブジェクトC用のソースをUnityに貼り付ける。

info.plistの設定

  <key>NSCameraUsageDescription</key>
    <string>マルチプレイに使用します</string>

2016年9月6日火曜日

Xcode7へアップグレード後に幾つかのエラー

Xcode7へアップグレード後に幾つかのエラーが発生。

対処方法まとめ


Unknown type name '__declspec'
NORETURN 削除 エラー箇所の行頭を削除

linker command failed with exit code 1 (use -v to see invocation)
Build Settings>Build Options>Enable Bitcode =noにする

Could not launch “app name XXX”
process launch failed: failed to get the task for process -1
Build Settings>Build Options>Provisioning Profileを設定

2016年9月5日月曜日

GooglePlayGAMEServce iOS向けの設定

GooglePlayGAMEServce iOS向けの設定
iTuneConnect側
GPGS側
アプリIDが必要なため。iOSアプリを登録しないとテストできません。

2016年3月10日木曜日

外部ファイルの読み取り。mp3 ogg

 外部ファイル(プロジェクトのリソース以外のファイル)を読み取りたいのですが、
byte配列からオーディオクリップに変換することはできないようです。
winとmacなら外部ファイル(pngやjpg)からスプライトを作成はできます。
再ビルドせずにファイルの差し替えができるのはテキストと画像だけのです。

2016年3月1日火曜日

Unity外部ファイルの読み取り mac win用

Unityでresourceフォルダ以外の外部ファイルを読み取るサンプルです。
今回はSystem.IO周りで実装しています。
ResourceLoadだと実行ファイル作成後のファイル追加ができません。
WWWクラスだと絶対パスが必要になります。

//exe Appファイルの場所を取得
string stCurrentDir = System.IO.Directory.GetCurrentDirectory();
        Debug.Log (stCurrentDir);

        System.IO.StreamReader cReader = (
            new System.IO.StreamReader(stCurrentDir+@"/ファイル名.csv"System.Text.Encoding.UTF8)
            );
        
        string text = string.Empty;
        while (cReader.Peek() >= 0) {
            string stBuffer = cReader.ReadLine();
            text += stBuffer + System.Environment.NewLine;
        }
        cReader.Close();
        
    
        GameObject go =GameObject.Find ("結果表示するTextオブジェクト");
        go.GetComponent<Text> ().text =text;

画像やテキストの読み取りはできますが音声(MP3やogg)を読み取ることはできないようです。※正確にはaudioclipに変換できない。

2016年2月19日金曜日

Unity エラー Can't add

unityでスクリプトをオブジェクトに追加しようとしたところ以下のエラーが発生。
Can't add script component 'HTLMMu' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match.
スクリプトのクラスが見つからないため、スクリプトコンポーネント「スクリプトファイル」を追加することはできません。何のコンパイルエラーとファイル名とクラス名が一致することをがないことを確認してください。

原因

よく見たらスクリプトファイル名が一文字違いました。。

2016年1月29日金曜日

新型MacのFusion DriveのSSDが128GBから24GBに

いつの間にか新型iMacの1TBフュージョンドライブのSSDが大幅に縮小されていました。
128GBから24GBなので約5分の1です。

>以下公式の説明
Fusion Drive
 Fusion Driveは高速なフラッシュストレージと大容量のハードドライブを組み合わせたものです。
 1TBのFusion Driveは1TBのハードドライブと24GBの高速フラッシュストレージを組み合わせます。そのため、クイックな起動、スリープ状態からのほぼ一瞬での復帰、アプリケーションのすばやい立ち上げができるようにするOS Xのファイルやアプリケーションを格納しても、最も頻繁に使うファイルやアプリケーションのためのスペースには十分な余裕があります。2TBと3TBのFusion Driveは、より容量の大きいハードドライブと128GBの高速フラッシュストレージを組み合わせるため、最も頻繁に使用するファイルのためのスペースがより大きくなります。最高のパフォーマンスが欲しい場合は、32GBのメモリを搭載したiMacを、2TB以上のFusion Drive、またはすべてフラッシュストレージで構成してください。
注意:容量を示す単位は1GB=10億バイト、1TB=1兆バイトですが、実際にフォーマットされた容量はそれ以下となります。

Mac miniのフージョンドライブは従来通り128GBのSSDを搭載しています。
しかし、24GBのSSDではハイブリットHDDと大差なさそうですね。

2016年1月24日日曜日

iPod touch6 電源が入らない。touch位置がずれる

開発テスト用のiPodの不具合。ios9.2。

タップ位置がずれる

両サイドのタッチ位置が外側にずれます。上下は上方向にずれます。中心から遠いほどタッチ箇所のずれは大きくなります。
 これはiOS独自の仕様かもしれません。指での仕使用を前提にタッチ位置を調整しているようです。

電源が落ちて、電源が入らなくなる

iOSは再起動の項目がありません。しかし、再起動を行わないといずれはシステムが落ちてしまいます。ホーム+電源を10秒長押しすることで強制再起動することができます。

OSのバージョンアップでアプリが不具合だらけになる

特にアプリ同士の連携などに不具合が発生します。アプリ開発者が調査改修を行わないと改善できません。開発者にとってはメンテナンスコストがかかる市場です。
 ユーザーもこのことを知っているのでOSのバージョンアップを行わない人が多い。結局Androidと変わらないセキュリティです。