PhpStormでXdebug

PhpStormでXdebugを使い始めるたび、設定に悩み、毎回時間をかけてグーグル先生に教えてもらった。今回の経験でざっとメモしておく。

リモートデバッグのイメージ:

サーバ側(localhostかwebsite):
php.iniに[xdebug]という項目設定した内容でxdebugが起動される

クライアント側(PhpStorm):
サーバ側設定した内容に合わせて、デバッグ情報を取得。下記の項目は要確認
host,port,IDE key

クライアント側のブラウザーより、url発行、サーバ側処理した結果とともに、xdebug情報も上記設定したポートを経由して持ってきて、PhpStormでデバッグ処理してくれる。(以上は個人的理解)

設定内容
1 php.ini(最低必要)
mampの場合、phpinfoにて”Loaded Configuration File”で検索して、php.iniファイルの在処を確認できる。
zend_extension=”xdebug.so”
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.idekey=”PHPSTORM”
保存後サーバ再起動、mampの場合、phpinfoにてxdebugで検索して、内容確認できる。上記内容が入っていればOK。

2 PhpStorm: Preferences > Servers >
phpstorm1
↑ここで設定するポートは、サーバへのhttpアクセス用ポートです。

3 PhpStorm: Preferences > Debug >
phpstorm2
↑ここで指定するポートは、php.iniで設定したポートです。

4 debugの設定
phpstorm3
↑”Break at first lin in PHP scrips”をチェックしておく。

phpstorm4
↑ここで指定するIDE keyは、php.iniで指定したidekeyです。

実行
上記の設定が問題なければ、ブレークポイントなしでも、phpstormではどこかに止まる。

Your app uses the “prefs:root=” non-public URL scheme

アップルレビューチームにリジェクトされた。

Your app uses the “prefs:root=” non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.

Next Steps

To resolve this issue, please revise your app to provide the associated functionality using public APIs or remove the functionality using the “prefs:root” or “App-Prefs:root” URL scheme.

プロジェクトを検索し、一箇所当たった。

let url = NSURL(string: “prefs:root=Privacy&path=CAMERA”)

UIApplication.shared.openURL(url! as URL)

これは、バーコードを読み取る際、カメラを起動して、ユーザに権限拒否された状態だったら、設定画面を開いて設定できるようにする処理。

これを下記に直し、再申請することに。

                if let url = URL(string: UIApplicationOpenSettingsURLString) {

                    UIApplication.shared.openURL(url)

                }

申請結果を後日追記。

No Accounts with iTunes Connect have been found for the Team

3週間後、appleの年間メンバーズシップ(iOS Distribution Certificate)が切れます。新たに延長購入した。その際xcodeでプロジェクトのArchiveを行うと、タイトル通りのエラーが表示され、進められない。

https://developer.apple.com/jp/programs/でログインしておく。
原因:下記画面上のstatusには、invalidとなっていた。
スクリーンショット 2018-07-12 14.33.00

invalidになっているprofileを選び、Editボタンを押して、有効なCertificatesを選んで、Generateボタンを押下する。これでxcodeを再起動したりして、Achiveをもう一回やると解決。

スクリーンショット 2018-07-12 14.39.35

 

追記:

一旦上記の手順を踏まえて解決し、新しいバージョンを公開できたが、その後のバージョンを公開する際、また同じエラーが発生。iOS Provisioning Profilesの内容を見ると、古いものが翌日に切れるという状態になっている。古いものをクリックして、Revokeボタンを押して、マシンを再起動してから、もう一回Archiveを行うと、無事完了した。

スクリーンショット 2018-07-31 16.36.50

12.9インチディスプレイスクリーンショットの撮り方

アップルアプリを公開にあたり、12.9インチディスプレイのスクリーンショットが必要になった。

デフォルトでは、command+sで取ってくれるのは縮小したもので、使えない。シミュレータを選び、メニューから下記のチェックを外せば、command+sで12.9インチディスプレイのスクリーンショットが取れる。

symbol(s) not found for architecture arm64

このエラーの原因を元として、いろんなエラーが発生し、1日費やしてしまいました。結局、このエラーの原因を直さない限り、直しても直しても対応しきれません。やっと解決したので、嬉しいよりは悔しい気持ち。

google-maps-ios-utilsを追加する際、

Copy items if needed

Create folder references

のオプションが出ていて、前者をチェックしたのに、後者はチェックしていなかった。追加したものを削除し、上記両方にもチェックをいれて再度追加したら、無事解決。

自分の根気良さに拍手。

coredataでEntityのクラスを作成時のエラー

既存のcoredataに、新規のEntityを追加、EditorメニューのCreate NSManagedObject  Subclassでクラスファイルを作成して、コンパイルすると、下記のようなエラーになりました。二回目なのに、解決には時間がかかったことでメモしときます。

エラー:

<unknown>:0: error: filename “新規Entity名+CoreDataClass.swift” used twice: ‘/Users/******/Dropbox/****/swift/*****/******/Data/新規Entity名+CoreDataClass.swift’ and ‘/Users/******/Library/Developer/Xcode/DerivedData/******-buueghuwfmqsgydcwrfrsnfhquyu/Build/Intermediates.noindex/******.build/Debug-iphonesimulator/******.build/DerivedSources/CoreDataGenerated/******/新規Entity名+CoreDataClass.swift’

<unknown>:0: note: filenames are used to distinguish private declarations with the same name

<unknown>:0: error: filename “新規Entity名+CoreDataProperties.swift” used twice: ‘/Users/*******/Dropbox/*****/swift/*****/******/Data/新規Entity名+CoreDataProperties.swift’ and ‘/Users/*******/Library/Developer/Xcode/DerivedData/*****-buueghuwfmqsgydcwrfrsnfhquyu/Build/Intermediates.noindex/******.build/Debug-iphonesimulator/*******.build/DerivedSources/CoreDataGenerated/*******/新規Entity名+CoreDataProperties.swift’

<unknown>:0: note: filenames are used to distinguish private declarations with the same name

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1

解決法:

新規Entityのみエラーになっていましたので、その設定には問題があることになります。右側のData Model InspectorのClassのCodegenが「Manual/None」に直せば解決しました。

往国内的中国银行汇款的痛苦经历

今天(2017年12月18日),我妈在微信上跟我说,中国银行的人又来电话了,让她提供我的收入证明。老太太气得血压上升。这是怎么回事呢?

10月底,快进入十一月了,日本各公司进入了年底模式,开始着手员工年末调整的手续和资料。从去年开始,日本对于不在一起生活的被抚养者,要求提供亲属证明,否则的话,不能享受该部分的所得税免税。日本人好说,去当地政府开个证明即可。对于外国人,则需要提供户籍证明或公证,以及抚养人给被抚养人的汇款证明。去年因为是第一年,公司早早就提醒了,所以很从容的就准备好了资料。可今年,忙着小孩的事就忘了。11月2号星期四是期限(11月3号是日本的公共假期),公司提前十天索要资料。户籍证明可以用去年的复印件,可汇款却没有证明。我们家每年元旦或春节都回国,都是带钱回去交给老人的,汇款实在是太贵。可为了免税,这个钱也就只能花了,况且今年小孩太小,还没有回过孩子奶奶家,也该给我妈寄点钱了。

我主要有两个银行,A银行和B银行。A银行往国外汇款只能汇美元,B银行可以汇日元。现在日元贬值,所以我没有多想就用B银行汇了,B银行的网银里登录了以前给我妈汇款的账号,都不用重新填,我也没有确认就汇了50万日元,约合3万人民币。事后,银行方面还来电话确认汇款人身份和汇款目的。这在以前是没有的,看来现在对国际汇款比较严格了。可两天后,银行来电话说,对方的账号不存在,要我确认。日期已经到了11月1号星期三。赶紧联系我妈,让她去银行确认。为了赶上日期,半夜我决定用A银行再汇了一笔美元(汇率114.3JPY/USD),等值50万日元,后来看来,这是个相当错误的决定。第二天,等我妈确认了银行的信息,我才意识到,那个账号是很老的账号,已经废了。根据日本银行的说法,现在钱已经到了对方银行,我有两种选择:

1)花4千日元把钱收回来(我已经花了6千日元汇出去)

2)花2千日元修改网银登录的账号,再花4千日元办一次电信手续(合计6千日元)

用第一种方法的话,结果就是我花了一万日元,钱还在我的账上。用第二种方法的话,结果就是我花了一万二千日元把钱汇出去。我选择了第二种方法,现在看来,这也是个错误的决定。

一个星期以后,我查了一下我妈的中国银行网银,钱没有到账,是不是日本的三连休的影响?还是等等吧。又过了一个星期,11月21号,钱还是没有到。我只得让我妈去银行问问了,一个七十多的老太太,实在是不想太麻烦她。结果那天我妈腿疼。11月24号,去了银行,结果银行说,给我妈打了N多个电话,都没人接。我妈是被金融诈骗骗过,所以废了座机,手机上不认识的电话一般都不接。银行说,她来了两笔汇款,比较异常(同一个人给同一个账号相近的日期里汇了不同的外汇),因为怀疑洗钱(银行原话用词),需要提供汇款人和她的关系证明。汇款时用的是我老婆的名义,所以我把我的身份证和结婚证照下来发了过去。11月29号,可等我妈拿着去银行时,接待的是另一个人,却说需要汇款人的合法收入证明。不同的人说的不一样,因为第一个人是具体管这个的,所以决定下次去还是找第一个人。12月4号左右,可再去时找到第一个人,他(她?)也强调这是上面的规定,他也没方法,让我妈不要再去银行了,他会跟我妈联系,并留下了我在日本的电话。但迄今(12月18号)为止,我没有收到过国内银行来的电话。这不,今天我妈就收到了银行的电话,让我提供收入证明。

对中国银行的疑问:

1)同一个人给同一个账号相近的日期里汇了不同的外汇

如果这个金额巨大,可以怀疑是洗钱。可总共100万日元,约合6万人民币的汇款,一年就这么一次,够得上洗钱的规模吗?而且,这个收款账号的现金流动情况,你们都是查得到的,是不是洗钱账户一目了然。国外的银行,能汇的币种就是不同,你们不知道吗?

2)银行的人提到,收款账户今年收到了不止一笔汇款

收到了多少汇款你们有发言权,可我给我妈的汇款今年就这么一次,我比你们有发言权。如果真是有多次汇款,那我们有知情权,必须追究那些汇款是怎么回事。为什么不把清单提供给我们协助调查?

3)只知道汇款银行会询问收入来源,没听说过要求收款人提供汇款人收入来源的。而且国与国不一样,你们想要的证明怎么相信它?我是不是还得提供翻译件,是不是得去中国大使馆盖章?是不是得去公证一下,这个证明的名义人和我或我老婆是同 一个人?你们有疑问,又有那么大的资源和权利,真心想调查不是分分钟的事吗?

儿子在外,给独居的老母寄一笔钱,让我,让她都有一个安慰,就那么难吗?

漢方の力2

処方された漢方薬を飲み終わったところ、治療の結果のまとめてみる。

治療の目的は、気管深部の痰絡みを改善したいことだった。いまは、痰はまだあるものの、絡む場所は喉のすぐそこなので、ちょっと咳をすれば出せるようになっている。あの死にそうな咳をしなくても良いようになっている。これで治療の結果としては満足している。あと、時間あったら、日本の漢方医に通ってみて、痰をなくすように努める。

今回の治療は、痰絡みの改善効果以外に、意外なところに効果がでている。改めて漢方の力に感心した。

足裏の改善

これも十数年前から、足裏の皮膚が荒れて、痒さもなく、痛みもなく、ただただ乾燥した感じで、がちがちになり、動物の脱皮のように簡単に剥がせる。日ごろは、靴下を脱ぐと、粉々になった皮膚の粉末が雪のように出てくる。普段の生活に何の支障もないものの、見た目的には不衛生で、人には見せられない。それを治そうと思って、皮膚科に診察してもらったが、先生がその場で皮膚の破片を顕微鏡で観察した結果、菌が見つからないので、治療しようがないとの結論になった。ひどくなったら、またいらしてくださいとのことになった。見た目的なことだけなので、それきりに、二度と皮膚科に行っていない。今回の痰絡みの治療で、見る見るうちに、足の裏の様子がどんどん変わっている。

20170907_left 20170907_right

↑ 2017/09/07 この日から、変化に気付き、写真を撮り始めた。これよりもっとひどかった。黒い点は、皮膚を剥がす際の出血の跡。

20170919_left 20170919_right

↑ 2017/09/19

 

20171008_left 20171008_right

↑ 2017/10/08

 

20171029_left 20171029_right

↑ 2017/10/29

なぜよくなったか、まったくわからないが、持っている知識だと、体の皮膚も一応器官なので、先生が漢方で内臓を調整しているうちに、関連性のある皮膚までも改善できたではないかと、勝手に自分で解釈している。

また、心拍数も以前より落ち着いた気がする。以前は安静していても、測った心拍数は80以上。今は、平均で70半ばになり、時には60台も出ている。気のせいかもしれないが、気持ち的にはよくなっている。