半農半エンジニアの記録

関西在住エンジニア。個人で勉強・開発したこと、その他趣味のことを書いてます。農業してます。

XamarinでQRコード表示 - 落とし穴編

前回の記事にしたXamarinで使えるQRコード関連ライブラリのZXing。その後ハマったのでメモしとく。

www.m24te28.com

ちなみにUWPアプリの話で、Android、iOSは検証していない。

何が起こったか

ライブラリ使えばQRコードなんて楽やな、なんて思ってたのも束の間、事件が起こったのはそう、リリース時。 いや正確にはReleaseビルドした時。

察しの良い方はわかったかもしれない。そう、Debugビルドで動いていたのにReleaseビルドでは動かない。

正確にはReleaseビルドではQRコードが表示されない。

まじで焦った。もう夜の8時や。今日中に完成させなあかんのに。

解決方法

最終的にはググったら同士が見つかり、その通り設定すれば動いた。

ZXingScannerPage cannot work on UWP release build · Issue #775 · Redth/ZXing.Net.Mobile · GitHub

ビルド構成って何や?と思って調べたところやったのもあって、アタリをつけやすかった。

何が変わった?

要するに中間コードまでの生成で留めて、.Netランタイム上で動く状態にしておくらしい? そのためパフォーマンス下がりそう。(聞いたことそのまま)

ビルド時間めっちゃ短くなったので、なんとなく納得した。

詳しい人おりましたら是非とも教えていただきたい。

あるある?

この「Debugビルドで動くけどReleaseビルドすると動かなくなる」というのはあるある、というのをちょうど先日見かけたので心の準備ができていたのだろうか。焦ったけど、「これが噂のやつか…」という感覚になった。

常日頃Releaseビルドすることの大切さを実感。

別のライブラリ?

自分でも調べたつもりで良い候補が無いなーと思ってたけど、下記のライブラリを使ってみたら?と言われたので、また試してみる。

www.nuget.org

追記

別のライブラリ使っても同じ現象になった。両ライブラリでベースが同じなのか?とか思ったけどワカラン。

真の問題

しゃーなし今回は.NET Native tool chainビルド無しでやるか、と決心して数分後、別の問題発生。

Windowsストア申請する時に、「このプロジェクトは.NET Native tool chainビルドじゃないとアカンで」とのこと……orz

どうすればいいのかわからないまま、QRコードの実装はひとまず延期……

おまけ?今週のお題「雨の日の楽しみ方」

競プロ