ラベル iPhone の投稿を表示しています。 すべての投稿を表示
ラベル iPhone の投稿を表示しています。 すべての投稿を表示

【2018年9月版】WindowsのiTunesでバックアップ先を変える方法

はじめに、

自分のWindowsが 32bit か 64bit かの判断もつかないような人は、

この先ファイルを損失する可能性も否めないので、ちゃんと調べるか、今すぐ立ち去る事をオススメする。

なお、以降の手順で何が起きても自己責任となるので、そこを1つよろしく。



ここでは、使用している Windows10 が、64bitだという体で進める。


1. Windowsでシンボリックリンクが貼れるツールをインストールする。

http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#download

以下の2つを落とす。x64の方ね。インストールも順に入れる。

vcredist_x64.exe for VS2005 SP1, version 6195/June 2011 (3.0 Mb)

Link Shell Extension (3.87Mb)

2. iTunesがバックアップ先にするフォルダがあるか確認し、なければ作る

→これがマジで地雷。Appleの公式にも書いてある場所と違う。
 おそらくどこかの時期でiTunesの仕様が変わり公式に反映されていないと思われる。
 2018年9月23日時点で入れたiTunes(Windows)のバックアップ先は、
 C:\Users\<自分のユーザー名>\Apple\MobileSync
 になっている。

→隠しファイルの表示を有効にしないと見えないかもしれん。


→上記フォルダがなければ、新規フォルダで空フォルダを作る


3. バックアップしたい場所に新規フォルダを作る

4.作ったフォルダを右クリ→「リンク元として選択」をクリック

5. 手順2のMobileSync下に「Backup」フォルダがある場合、「Backup1」などにリネーム
なければ次の手順へ進む

6. なにもない場所を右クリ→「リンクを作成」→「シンボリックリンク」を選択

7. できたシンボリックリンクの名前を「Backup」もちろん半角でリネーム

iTunes からPCへ手動バックアップをしてみて、中にフォルダが出来上がれば成功。これで任意のフォルダにバックアップできるようになった。

※当然ながら「このコンピュータにバックアップ」の話で、iCloudにバックアップの話ではない。

スプライトやテクスチャの端に余計な1ドットの線が入る訳

Unity のスプライトや、ゲーム開発においての初心者あるある。

主に2Dゲーを作ろうとしたときに、スプライトの端に隣のテクセルが見切れてしまうような現象に出会ってしまった場合、

テクスチャのサイズをPOW2(2累乗サイズ)にしていないかを確認しよう。

1 / 2 / 4 / 8 / 16 / 32 / 64 / 128 / 256 / 512 / 1024 / 2048 / 4096 など

POW2のサイズに余白を足してでもテクスチャを広げてみよう。

浮動小数が割り切れる数になるため、端数がでて変な見切れは発生しなくなる。

ざっくりとiOSアプリの申請から審査開始までの日付を知る方法

以下のサイトが現在の平均審査開始までの日数を統計してて便利。

http://reviewtimes.shinydevelopment.com/


必ずこの日付ではなく、ざっくりとした数値なのであくまで目安程度にどうぞ。

ちなみに、自分が3つほど提出した際も、この日付通りか数日前に開始されたので大体あってそうです。

iPhoneアプリ開発者さんはブックマークしといて損はないと思います。

iOS で glBindTexture glGenTextures などテクスチャ系処理が 0x502 (GL_INVALID_OPERATION) を出す

今回は、UIView の init 系で処理をすると、

コンテキストが正しく認識されず、 OpenGL がちゃんと初期化されていない事で起こっていた。

なぜか gl****Texture 系のみで、他の設定系はエラーが出ていなかったので迷ってしまった。

これが原因で、glDraw 系は EXC_BAD_ACCESS で止まる。

結論として、layoutSubviews の中で OpenGL を初期化するようにしたら直った。

cast of indirect pointer to an Objective-C pointer

iOS7 対応しようとビルドしてみたらこんなエラーが出たのでメモ。

[Before]
NSData *data = NULL;
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)attrDictionary, (CFTypeRef*)&data);
// (CFTypeRef*) のキャストの所で cast of indirect 〜 が出てビルド通らず


[After]

CFTypeRef cfref = NULL;
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)attrDictionary, &cfref);
NSData *data = (__bridge id)cfref;
// 一度定義した CFTypeRef を渡した後ブリッジキャストで解決

Flash CS6のスプライトシート書き出し後 C/C++用UVテーブルを作成する

Flash CS6 でスプライトシートを書き出すという便利な機能があるが、

各スプライトのUVがXMLで吐き出されるため

スプライトシートを作ったはいいけど、iOSのOpenGLで使う時など

C/C++ でも使える形式に変換するものがないので Python で簡易スクリプトを書いてみた。

動作確認は Python2.7.2 Windows7 。 バッチ処理は Windows 向けだが

Python スクリプト自体は他の環境でも動くと思われる。

まずは以下の Python スクリプトをコピペして保存。

=====[ convert.py ]=====
# -*- coding: utf-8 -*-
import codecs
import sys, re

sys.stdout = codecs.lookup('utf-8')[-1](sys.stdout)

print u"open file.\n"

inname = sys.argv[1]
trimname= inname.split('\\')[-1].split('.xml')[0]

f = codecs.open (inname, 'r', 'utf-16')

data = f.read ()

print u"file size: " + unicode (len (data)) + u" byte(s).\n"

#print data

f.close ()

print u"replace text.\n"

xlist = re.findall (r'x="([0-9]+)"', data)
ylist = re.findall (r'y="([0-9]+)"', data)
wlist = re.findall (r'width="([0-9]+)"', data)
hlist = re.findall (r'height="([0-9]+)"', data)
nlist = re.findall (r'name="([a-zA-Z0-9_]+)"', data)

out = u"typedef struct{ int x, y, w, h } ssuv;\n\n"

if len (xlist) == len (ylist) and len (xlist) == len (wlist) and len (xlist) == len (hlist) and len (xlist) == len (nlist):

 i = 0
 
 out += u"enum {\n"
 
 for x in xlist: 
  
  print nlist[i]

  out += u"\t%(name)s,\n" % {'name' : nlist[i][:-4] }
  
  i += 1
 
 out += u"};\n\n"
 
 i = 0
 
 out += u"ssuv %(valuename)s_tex[] = {\n" % {'valuename':trimname}
 
 for x in xlist:
 
  out += u"\t{%(X)d, %(Y)d, %(W)d, %(H)d},\n" % { 'X':int (xlist[i]), 'Y':int (ylist[i]), 'W':int (wlist[i]), 'H':int (hlist[i])}
 
  i += 1

out += u"};\n"

print u"output file."

f = open (trimname + "_out.txt", 'w')

f.write (out)

f.close ()
========================

あとは引数に xml のファイルパスを渡してやれば

ファイル名_out.txt というファイルで enum とテーブルに変換したものを吐き出す。

適当にバッチ化してやると楽かも。

例えば、Windows ならさらに以下の様なバッチファイルを作成する。

=====[ convert.bat ]=====

echo off
python convert.py %1
pause

=========================

以後、このバッチに処理したい xml をドラッグするだけでコンバートされる。

ちなみに enum で定義される名前は、

シンボル名をそのまま使うのでシンボル名に全角を使わないような工夫が必要です。






親ビューから子ビューの範囲にあるタッチイベントを処理したい時

親から子の範囲にあるタッチイベントを処理したいという時は、

子にも親で処理したいイベントを実装する。( touchesBegan など )

その中に以下のコードを入れる。

[self.superview /*EventMethod*/:touches withEvent:event];

/*EventMethod*/ には、touchesBegan、touchesMoved、touchesEnded など

そのイベントを記述。

こうすることで、このイベントを親に丸投げできる。

Admobの振込失敗時は来月再試行される模様

Admobから月頭に一定額貯まったからPaypalに振り込むよーとメールが来た。

しかしそれから一週間待てど、二週間待てど全然振り込まれない…。

某掲示板によれば実際に振り込まれるのは、20日後とか月末になるらしい。

そもそもPaypalをプレミアムアカウントにしていなかった事をすっかり忘れていて、

Paypalへ20日直前になってアカウントをプレミアムに変更する申請を行った。

が、当然間に合わず、振込処理が行われる日はパーソナルアカウントのままだった。

それが原因かAdmobからPaypalに拒否されてしまったよと

21日に以下のメールが届く

==============================
Dear AdMob Publisher,

Your PayPal payment for AdMob earnings was returned to us status "Denied."
We apologize for any inconvenience, and will reattempt payment in our
September payment cycle. We are working with PayPal to determine the
cause of this issue.
==============================

来月もう一回振込を試みるよって事みたいなのでひとまず安心ですが、

Admobを使う方はひとまずPaypalのプレミアムアカウントを

取得orアップグレードしておいた方が無難だと思われます。

※プレミアムにしたからといって料金が別途かかるみたいな事は今の所ないようです。

=====[ 追記 ]=====

翌月、しっかりと振り込まれました。

(この時は15日に振り込まれてました。)

iPhoneホームボタンの効きが悪い時の応急処置方法

ホームボタンが効かなくなった時が、デコピンだなんだと

いろいろな改善策のウワサが色々あるみたいですが、

自分は端末下部のスピーカー、マイク穴からフーーッ!っと思い切り

息を吹き入れてやると、短時間だがなぜかかなり良好な状態まで改善します。

至近距離から強くて長めの息を吹き入れる感じです。

それを片方やってもう片方みたいな感じ。

短時間で一日と持ちませんが、数分は効きがかなり改善しますので

お困りの方は、ぜひ一度お試しあれ。

---------------------
追記:

それでもやっぱり毎回やるのはキツイ…

最近は爪や指の先でホームボタンを端から対面までスライドさせるように

押すと反応する事がわかりその方法で慣れてしまった

(もはやゴリ押し…)