NuGetでAWSSDK.S3をインストール。

  • AccessKeyとSecretAccessKeyはAmazonの設定
  • RegionEndPointはS3のリージョンを指定
  • BucketNameは作ったBucketの名前
  • Keyはファイル名とか

Androidプロジェクトのプロパティ-Androidオプション-詳細設定ボタン

  • HttpClient実装を「Android」
  • SSL/TLSの実装を「ネイティブTLS 1.2+」

xamarinandroidoption

※追記(2017/11/10)

11.2から、input_source_ifやinput_source_unlessというパラメータが増えて、もっとスマートにトグル切り替えできるようになりました。

https://github.com/pqrs-org/KE-complex_modifications/blob/master/docs/json/example_input_source.json


長らくWindowsでは右AltでIMEを切り替えていたので、Macを使うようになってからはKarabinerでも同じような設定にしてましたが、Sierraになってからは使えなくなり、「英かな」とか「前の入力ソース」のショートカットを組み合わせたりとかしてしのいでいたんですが、これが微妙にレスポンスがよくなかったりしたので若干ストレスになってました。

最近、Karabiner-ElementsのComplex Modificationsで設定がサクッとダウンロードできるようになってたので、ちょっと日本語入力の切り替え癖を矯正してみようかと、Macの日本語キーボード的な英数とかなキーの設定にしてました。

が、なんかたまたま、Karabiner-Elementsのリリースノートを見ていたら、Version 0.91.9のところに”variable_if”とか”set-variable”などというものを発見。
(英語だしちゃんと見てなかった)

これ、切り替えたステータスを保持しておいたら、ToggleIME的なことができるんじゃないのかと思って英数・かなキーのjsonを書き換えてやってみましたら、びっくりしたことになんかそれっぽく動いてます。

Karabiner-Elementsで1キーでかなと英数をトグルするサンプル

見たらわかるとおり、imemodeが0か1かでjapanese_eisuuを送り出すか、japanese_kanaを送り出すかだけ。
サンプル見て真似して書いただけなので、ちゃんとした書き方なのかとかシチュエーションによってはだめなケースがあるのかよくわかりませんけど、なんかまあ一応それっぽい感じ。

APIサーバーがASP.NET Core2.0、クライアントがReactNativeで作ったiOSアプリ(fetch)、メソッドを呼ぶ際にはヘッダに「X-HogeHoge-Key」などという感じのキーを指定する仕様、でどうしてもヘッダのキーが認識できない状況が発生。

postmanとかcurlとか別のものからの呼び出しは問題ないし、同じAPIサーバーとやりとりしているWebアプリは問題ない。

全く同じように書いたコードで、PHP(Slim Framework)で作った同じようなヘッダをセットするAPIのケースは問題ない(というかそこからコードを流用してきた)。

結局調べた結果、どうもReactNativeからfetchする際に、ヘッダが小文字化されてる?っぽく、サーバー側はcase sensitiveでキーを探しに行っていたためと判明。

こんな感じ。

if (context.Request.Headers.Keys.Contains(keyName))
...

HTTPの仕様では、ヘッダの文字列はcase insensitiveらしいので、サーバー側でキーをチェックする際に、

if (context.Request.Headers.Keys.Select(x => x.ToLower()).Contains(keyName.ToLower()))
...

こんな感じにしてやらないとだめでした。

ちょっとコンポーネントを使いたくてng-boostrapを入れたら、開発中とかdevbuildの時は問題ないのに、production buildをしようとすると謎のエラーを吐かれます。

ERROR in ./$$_gendir/~/@ng-bootstrap/ng-bootstrap/alert/alert.ngfactory.ts
Module parse failed: C:\(省略)\$$_gendir\node_modules\@ng-bootstrap\ng-boots
rap\alert\alert.ngfactory.ts Unexpected token (13:21)
You may need an appropriate loader to handle this file type.
| import * as i2 from '@ng-bootstrap/ng-bootstrap/alert/alert';
| import * as i3 from '@ng-bootstrap/ng-bootstrap/alert/alert-config';
| const styles_NgbAlert:any[] = ([] as any[]);
| export const RenderType_NgbAlert:i0.RendererType2 = i0.ɵcrt({encapsulation:2,styles:styles_NgbAlert,
|     data:{}});
@ ./$$_gendir/ClientApp/app/app.module.browser.ngfactory.ts 10:0-103
@ ./ClientApp/boot.browser.ts

細かいところはimportしているコンポーネント次第だと思いますが、「なんとか.ngfactory.ts」で「Unexpected token」だとか言うあたりは共通してると思います。

ライブラリの問題かと思って別のものに入れ替えてみたりしたんですが、どうもwebpackでtypescriptをコンパイルしている段階だし、devでは動作しているのでライブラリのせいじゃない。

心が折れそうになりながら調べていたら、

https://github.com/aspnet/JavaScriptServices/issues/1168#issuecomment-320026397

という情報を発見。

webpack.config.jsの20行目あたり

{ test: /\.ts$/, include: /ClientApp/, use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] : '@ngtools/webpack' },

こうなってるところの、「include: /ClientApp/」を削除します。

{ test: /\.ts$/, use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] : '@ngtools/webpack' },

これで無事にproduction buildも出来るようになりました。
どうやら不具合っぽいので、いずれ修正されるみたいです。

こういうタイプのトラブルは、出口のわかりづらい試行錯誤の繰り返しなので、なかなか心が削られます。

« Prev