カテゴリーアーカイブ OS

takahashi 著者:takahashi

WWDCでmacOSの新バージョン、macOS Mojave 発表!

先日行われたAppleの発表会”WWDC 2018″で、Macの新バージョン “macOS Mojave(モハベ/モハーヴェ)”が発表されました!

Apple、ダークモードをサポートした「macOS Mojave」を発表 ~開発者プレビューを開始

正式版リリース自体は秋ごろになりそうとのことですが、現時点でいくつかの新機能が発表されました。

・ダークモード
今まで、macOSの基本色は白がメインでしたが、これを黒メインのUIに変更し、目への負担を抑える機能が追加されたようです。

新しいmacOS「Mojave」のダークモード、壁紙の色も変わって良い感じです #WWDC18 – GIZMODO

感覚としては1Twitterの”夜間モード”に似ています。普通にかっこいい。

・Dynamic Stacks
散らばったデスクトップを自動で整理してくれるファイル整理支援機能も追加されたようです。

macOS Mojave 新機能まとめ:ダークモードやファイル整理機能追加 #WWDC18 – GIZMODO

自分もよくデスクトップを散らかしてしまうので、この機能はありがたいかもですね。

他にもいろいろ改良がくわえられているmacOS Mojave。登場が楽しみですが、アップグレードする際に注意しなければいけない変更点も出てきました。

・OpenGL/OpenCLが非推奨に

なんとMojaveからOpenGLが非推奨に。自社謹製のMetalを使えという方針にするようです。
OpenGLは現在でも普通にバリバリ使われている技術だけに、さすがに非推奨にするのは早すぎる気がするのですが…いかがでしょう。

ちなみに、macOS High Sierraで打ち切られるかもといわれていたmacOS用 32bit版アプリの対応ですが、今回のバージョンまでは非推奨ながら動作するようです。
Apple、macOS 10.14 Mojaveが32-bitアプリをサポートする最後のmacOSになると発表。QuickTimeやJava 1.6フレームワークも廃止へ。 – AAPL Ch.
いろんな点で今後の動きが気になりますね。

  • この記事いいね! (0)
村上 著者:村上

【Xcode】アプリをアップロードできないときの対処法

最近は遭遇率がほぼゼロなのですが、一時期、正規の方法でXcodeからApp Storeにアプリをアップデートできない時がありました。
で、その時の対処法についてまとめ。
ちなみに、主な原因はネットワーク接続エラーでした。
そのため、接続先を変更すれば改善されることもありましたが、どうしようもないときにこちらの方法を使いました。

なお、今回参考にさせていただいた記事はこちらから。

Xcodeからアップロードできないときは、Application Loaderを使おう – Qiita
https://qiita.com/_natsu_no_yuki_/items/68140e7c0e96afbb2e4b

 

さて、そのアップロード方法ですが、まず Archive を実行すると自動的に表示される下の画面から、アプリをエクスポートします。

なお、この画面は、Xcodeのメニューから Window > Organizer からも開くことができます。

エクスポートが完了したら、Xcode の メニューから Xcode > Open Developer Tool > Application Loader を選択します。

すると、下記のような画面が表示されるので、下の選択から、先程エクスポートしたアプリの iOS App ファイル(拡張子が .ipa)を選択します。

ファイルを選択後、アプリの情報が表示されたら、次へを押せば完了です。
これでアップロードできたので、あとは、アプリ情報が反映されるのを待つだけです。

 

以上、アプリがアップロードできないときの対処法でした。
当時、ひどいときは 2〜3回試しても失敗したので、そのときはこの方法を使っていました。
最近では、全くと言っていいほど遭遇しなくなり、ありがたいですが…いざというときのために覚えておきたいです。

  • この記事いいね! (0)
takahashi 著者:takahashi

Ubuntu 18.04に xrdpをインストールしてみる

最近、サーバーOSとしてUbuntu 18.04をGUI付きで使い始めました。
SSHでCUI上でフルコントロールができるとはいえ、やはりリモートでGUIで操作したいときもたまにあります。(GUIアプリケーションの操作など)

そういう時にリモートからGUIを操作する手段はいくつかあるのですが、今回はXRDPという、Windowsのリモートデスクトップクライアントから接続できるようにする方法を試してみました。

まず、aptでxrdp本体をインストールします。

sudo apt install -y xrdp

Ubuntuの場合、基本的にこれだけで動作するのですが、このままだとログイン後にエラーが発生してうまくつながらないので、追加の設定を行います。

#new_cursorsの無効化
sudo sed -e 's/^new_cursors=true/new_cursors=false/g' \
 -i /etc/xrdp/xrdp.ini

#xrdpサービスの再起動
sudo systemctl restart xrdp

#xsessionファイルの作成
D=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
cat <<EOF > ~/.xsessionrc
 export GNOME_SHELL_SESSION_MODE=ubuntu
 export XDG_CURRENT_DESKTOP=ubuntu:GNOME
 export XDG_DATA_DIRS=${D}
 export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
EOF

#Authentication Requiredダイアログの回避
cat <<EOF | \
   sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-color-manager.pkla
 [Netowrkmanager]
 Identity=unix-user:*
 Action=org.freedesktop.color-manager.create-device
 ResultAny=no
 ResultInactive=no
 ResultActive=yes
EOF

sudo systemctl restart polkit

詳細についてはこちらを参照してください。
Ubuntu 18.04: GNOMEデスクトップ環境にXRDPで接続する – Narrow Escape

あとはWindowsのリモートデスクトップでWindowsに接続するのと同じ方法で接続します。

認証情報が間違っている場合はこちらの画面が表示されます。
ここで正しい情報を入力すればそのままログインできます。

ログイン後の画面。
ちゃんとデスクトップが表示されました(/・ω・)/

Windowsにはよくリモートデスクトップで繋げているけど、めんどくさいのでLinuxにも同じ方法で繋げたい!という方にはおすすめです。

  • この記事いいね! (0)
takahashi 著者:takahashi

Google Chromeがv67からPWAに対応。Twitterなどの対応サイトで利用可能に。

最近、Windows10 AprilUpdateでMicrosoft EdgeベースのPWAに対応したニュースがありましたが、Google Chromeも、Chrome67からPWAに対応したようです。

Google Chrome 67安定版リリース、「サイト分離」機能やセンサー用API「Generic Sensor API」を搭載 – Gigazine

Twitter LiteなどのPWA対応サイトをChromeブラウザ経由でも、アプリとしてインストールしておくことが可能となりました。

ただ、現在はまだデフォルトで無効になっているようですので、
chrome://flags
から有効にする必要があります。
chrome://flagsにアクセスしたら、検索バーに”PWA”と入れます。

Desktop PWAs をDefautからEnableに変更します。

再起動を求められるので、Chromeを再起動を行えば、PWAが有効になります。

Twitterの公式アプリが自分の環境で動かない、アプリがない、という方は是非試してみてはいががでしょうか。

  • この記事いいね! (0)
takahashi 著者:takahashi

Googleアシスタントがついにタブレットにも対応!

先日ふと自分のタブレットの画面を見たら、Googleアシスタントが利用可能になったという通知が届いていました。
驚いて調べたところ、最初はスマホのみに対応していたGoogleアシスタントの対応範囲がタブレットまでに広がったという情報がでていました。

「Googleアシスタント」、Androidタブレットでも提供へ – CNET Japan

記事によると、タブレット対応に加え、今までAndroid 6.0以上が必要条件だったのが今回Android 5.0にも対応したとのこと。
これはかなり朗報ではないでしょうか。

GogleアシスタントはGoogle検索アプリの音声操作よりも多くのことを声で操作できます。
詳しくは以前書いた記事をご覧ください。

Siriの強力なライバル!? Googleアシスタントがかなりスゴイ!

Android5.0まで対応範囲が広がったとのことなので、機種変などで現役を引退したAndroid 5.0以上の端末をGoogle HomeみたいにGoogleアシスタント専用端末にしてしまうという使い方もありかもしれませんね。

  • この記事いいね! (0)
takahashi 著者:takahashi

WIndowsでPCの指紋センサーがおかしくなった時の対処法

Windows10から Windows Hello が搭載され、指紋センサーとそのドライバさえPCに搭載されていれば専用ソフトなして指紋認証ログインができるようになりました。

毎回PCのロックを解除するたびに長いパスワードを入れないといけないことを考えると指紋認証が使えるだけでかなり楽になりますよね。

この指紋認証センサーですが、Windowsの場合まれに不具合が発生して利用できなくなることがあるようです。
そんな時の対応方法をご紹介したいと思います。

1.単純に再起動してみる。

Windows OSは非常に複雑で、裏ではたくさんの仕組みが協調動いています。起動してしばらくすると、何らかの原因でこれらの仕組みの一部が上手く動作しなくなることがあるようです。
指紋認証ができなくなった場合、まずその可能性が考えられます。

再起動する際に注意する点として、”シャットダウン”→”起動” ではなく、必ず”再起動”してください。
シャットダウンの場合、設定によってはシャットダウン前のOSの状態が残ってしまう場合があります。

Windows10 – 高速スタートアップを有効/無効にする方法 – PC設定のカルマ

2.デバイスをWindowsに”再認識”させる

1を試しても駄目な場合にこの方法を試すと解消される場合がありました。
まず、スタートボタン(Windowsのロゴのボタン)を右クリックして、”デバイスマネージャー”をクリック。

下のような画面が開くので、中から”生体認証デバイス”を選択して項目を展開します。

すると、今お使いの指紋認証デバイスが出てくるかと思います。
対象のデバイス名を右クリックすると”デバイスのアンインストール”という項目があります。

クリックするとダイアログが開きますので、“このデバイスのドライバーソフトウェアを削除します”にチェックが入っていないことを必ず確認したうえでOKをクリックします。

デバイスマネージャーの一覧から消えたことを確認したうえで、PCを再起動させます。

単にデバイスを削除しただけであれば次回起動時やプラグアンドプレイの再認識を行った際にデバイスが自動的に認識され、再インストールされます。
ただし、”このデバイスのドライバーソフトウェアを削除します”にチェックを入れてしまった場合はドライバが削除されてしまうため再認識されなくなってしまいます。
もしドライバを消してしまった場合はドライバーソフトウェアの再インストールが必要になるので注意してください。

再起動後に再度動作を確認してみて、元通りうまく動作すれば作業完了です。

3. 1、2の手順を試してみてもダメだった場合、ドライバーソフトウェアの再インストールが必要になるケースがあります。

ドライバーソフトウェアはメーカー製PCの場合はそのメーカーのサイト、外付けの指紋認証センサーであればそのセンサーを販売しているメーカーのサイトや付属のCDからインストーラーを起動して再インストールします。

また、ドライバによってはバグが発生しているバージョンが存在している可能性があり、そのバグが原因で正常に動作していないことも考えられます。
もしメーカーにもともとインストールされていたドライバよりも新しいものが公開されている場合は、必ず最新のものをインストールしてみてください。

ソフトウェア的な問題であれば、ここまでの手順で代替問題が解消されているかと思います。

* もしそれでも解消されない場合

上の手順を試しても問題が解消されない場合、OS本体の不具合であったり、ハードそのものに問題がある場合も考えられます。
取り外せるものの場合は、一度他のデバイスでは正常に使えるかなどを確認し、問題がありそうであれば修理に出すことをお勧めします。

  • この記事いいね! (0)
村上 著者:村上

【Xcode】ビルド時の「[プロジェクト名] has conflicting provisioning settings.」エラーの対処法

今回はXcodeでアプリをビルドしようとしたときに遭遇したエラーについて。
長文エラーって、英語が苦手な身からしては読む気すら失せるので、それだけで億劫かつ憂鬱になります。

エラー全文はこちらから。

[プロジェクト名] has conflicting provisioning settings. [プロジェクト名] is automatically signed for development, but a conflicting code signing identity iPhone Distribution has been manually specified. Set the code signing identity value to “iPhone Developer” in the build settings editor, or switch to manual signing in the project editor.

ざっくり翻訳したところ、プロビジョニング設定が競合していることが問題とのことでした。
本来であれば、自動的に署名が行われている箇所に、手動で異なる設定が指定されているのだとか。
が、このあたりの設定を変更した記憶がないので、心当たりがありません…。

今回参考にさせていただいた記事はこちら。

iOS – iOSアプリ申請時のArchiveでconflicting provisioning settingsエラーが出る(56698)|Teratail
https://teratail.com/questions/56698

 

肝心な対処法ですが…「Automactically manage signing」のチェックを一度外し、再度チェックするだけ。
下の画像の下あたりにあるチェックボックスがそれです。

あとは、通常通りビルドを行ったところ、なんの問題もなくビルドが完了し、実機・Simulator のどちらでもアプリを実行することができました。
エラー文が長いので、最初に遭遇した時は身構えましたが、対処方法としてはなんてことはなかったですね。
チェックの解除・設定をおこなうと、プロビジョニングの設定がリセットされるので、今回のエラーが解消されるとのことでした。

以前も書いた気がしますが、とりあえず原因がわからないエラーに遭遇したら、丸々コピーして検索しましょう。

  • この記事いいね! (0)
村上 著者:村上

【jQuery】FastClickライブラリを特定の要素のみ無効にする方法【iOS】

Cordova開発をしているとお世話になるライブラリが、この「FastClick」だと思います。
これを使うことで、モバイルでアプリを実行したときのクリックの反応速度がかなり改善されます。
が、ものによっては、この FastClick ライブラリと競合を起こすライブラリもあるようで、今日、まさにその現象に遭遇しました。

 

競合を起こしたライブラリは、OpenstreetMap を使用した地図を表示できる「MapBox」です。
地図の表示の全てに影響するわけではなく、地図に表示したマップピンをクリックして、吹き出しを表示するロジックに影響が出ており、iOS でのみ吹き出しが表示できない状態でした。
クリックの動作をする箇所でのエラーだったので、最初は Click イベントを取得できていないことを疑いましたが、エラーログを見たところ、FastClick との競合が原因でした。

 

解決方法ですが、こちらのサイトを参考にしました。

JS/jQueryでFastClick.jsを使ってスマホのclickイベントの300ms遅延をなくす|ITハット
http://ithat.me/2016/11/06/js-jquery-smartphone-click-event-300ms-delay-fastclick

サンプルに書くほどでもないのですが…対策方法は、FastClick を無効化したい aタグなどの要素に、needsclick というクラスを追加するだけです。

<a class="needsclick">FastClickを無効にしたい要素</a>

特定の要素のみに FastClick を適用する方法もありますが、現在開発中のシステムでは、無効化したい要素がここのみだったので、この方法を採用しました。
ちなみに、特定の要素のみに適用する方法は下記の通りです。

<div>
    <div class="fastclick">
        <!-- FastClickを適用する要素 -->
    </div>
    <div>
        <!-- FastClickを適用しない要素 -->
    </div>
</div>
$(function(){
    FastClick.attach($('.fastclick')[0]);
});

全てに FastClick を適用するときには、下記のように記述します。

$(function(){
    FastClick.attach(document.body);
});

対策としては以上です。

 

ということで、FastClick を一部無効化する方法でした。
ライブラリの競合はやはり厄介ですね。
最悪、FastClick を無効化しなければいけないのでは…と思ったので、解決策があって良かったです。

  • この記事いいね! (0)
村上 著者:村上

【Cordova】iOSの「The GOOGLE_APP_ID either in the plist file ‘GoogleService-Info.plist’ or the one set in the customized options is invalid.」エラーの対処法

タイトルが長くてすみません。
今回は、Cordovaで開発中のアプリが、Simulator・実機問わず、急に実行時に落ちる様になってしまったので、その対処法についてです。

ちなみに、エラー全文はこちらです。

The GOOGLE_APP_ID either in the plist file ‘GoogleService-Info.plist’ or the one set in the customized options is invalid. If you are using the plist file, use the iOS version of bundle identifier to download the file, and do not manually edit the GOOGLE_APP_ID. You may change your app’s bundle identifier to ‘(null)’. Or you can download a new configuration file that matches your bundle identifier from https://console.firebase.google.com/ and replace the current one.

凄く長いので、読むのも一苦労ですが、Google翻訳にかけてみたところ、「‘GoogleService-Info.plist’またはカスタマイズされたオプションに設定されているGOOGLE_APP_IDは無効です。」とのこと。
エラー文の中にもある「GoogleService-Info.plist」が何らかの理由で壊れていることが原因らしいです。

なお、今回参考にした投稿はこちら。

iOS : invalid GOOGLE_APP_ID in GoogleService-Info.plist or set in the customized options #308 − fechanique/cordova-plugin-fcm
https://github.com/fechanique/cordova-plugin-fcm/issues/308

今回のエラーと全く同じ質問でした。
どうやら「GoogleService-Info.plist」ファイルは壊れやすいようです。

 

対処法は至って簡単です。
私の環境では、platforms/ios/[プロジェクト名]/Resources/Resources にある GoogleService-Info.plist が壊れていたことが原因だったため、その一つ上のディレクトリの platforms/ios/[プロジェクト名]/Resources/ にある「GoogleService-Info.plist」をコピーするだけでした。
なお、すでにファイルが有る場合は上書きします。
あとは、通常通り実行すれば、問題なく起動・動作しました。
これで一件落着です。

 

以上、iOSの実機でアプリが実行できなかったときの対処法でした。
とりあえず、わからないエラーは丸々コピーして、Googleなどで検索しましょう。
大概の投稿者は、投稿記事にエラー文を載せているので、2〜3記事も見れば、解決策がヒットするはずです。

  • この記事いいね! (0)
takahashi 著者:takahashi

主要Linuxディストリに追加された新しいパッケージ形式”Snaps”とは

恥ずかしながら最近初めて知ったのですが、最近の主要ディストリでは、RPMやDEB形式ではない新しいアプリケーションパッケージシステム(パッケージマネージャー)である”Snaps”(Snap、Snappyとも呼ばれる)が実装されているらしいです。

Linuxの新しいパッケージフォーマット、Ubuntu生まれのSnapsは、小アプリケーション群のためのコンテナのようだ – Tech Crunch

最初”なぜ今更あたらしいパッケージマネージャーなんて…”と思ったのですが、記事を読んでなるほど納得がいきました。

パッケージは端的に言ってしまうとWindowsでいう所謂”Windowsインストーラ”にあたります。本来、Linuxではアプリケーションをインストールするときに”ビルド”という手動の作業が必要だったのですが、従来のRPMやDEBなどどいったパッケージマネージャーは、パッケージを”インストール”することによって、初期設定も含めて全自動でアプリをインストールしてくれるという非常に便利なシステムです。


debパッケージ


rpmパッケージ

ただし、Windowsインストーラと異なるのはそのパッケージ単体をインストールするだけではアプリは動作しないという点。
Linuxの場合、一つのアプリを動作させるためには、そのアプリが動作するのに必要となるライブラリ群をあらかじめOSにインストールしておく必要があります。
アプリとアプリが必要とするライブラリの関係を”依存関係”とよび、パッケージにはアプリが必要とする依存関係も登録されています。

ところが、この依存関係というのが非常に厄介な存在です。
実はDEBやRPMといったパッケージマネージャーは飽くまで依存関係にあるアプリがインストールされているかのチェックのみで、足りない依存関係を自動で満たす機構はもっていません。
もっとも現在ではyumやaptなどといったコマンドを使えばこの依存関係の自動補完も行ってくれますが、あくまで外部のツールが補完しているのであり、DEBやRPM本体の機能でないことには注意が必要です。

さらに、インストールするアプリが要求するライブラリなどによっては、使用しているOSや、登録しているリポジトリで提供していないものがある場合が考えられます。
この場合、たとえaptやyumを用いたとしても、アプリをインストールすることができません。

さらに、DEBとRPMには互換性がなく、DEBパッケージマネージャーを採用しているOSでRPMパッケージはインストールできないし、逆にRPMパッケージマネージャーを採用しているOSでDEBパッケージはインストールできません。
一応、パッケージ形式を相互変換してくれる”alien”コマンドはあるのですが、自分が試した限りでは上手く動作しませんでした。

今回のSnapsパッケージは、そんな従来のパッケージマネージャーの欠点を解決してくれそうなシステムになっているようです。

 

Snapsは、最近はやりの仮想化技術である”コンテナ”のような仕組みになっており、Snapsパッケージ内にアプリとそのアプリが必要とするライブラリ群もすべて含まれているとのこと。
また、Snaps内のアプリはアップデートもロールバックも行えるようになっているようで、より柔軟な使い方ができるようになりそうです。

つまり、同じLinuxでありながら使用できるアプリが異なっていた各ディストリ上でも、Snapsをサポートしているバージョンであれば、debian系LinuxであろうとRedHat系Linuxであろうと、同じパッケージをインストールすることができるようになります。Linuxアプリ開発者は今までdeb形式とrpm形式のパッケージを準備する必要がありましたが、今後はSnapsパッケージ一つ作るだけで両方のLinuxユーザーから利用してもらえるようになります。とても画期的ですね。

現時点ですでにSnaps形式のパッケージが出回りつつあるようですが、まだ日本語化されていなかったりするパッケージも多いようで、快適に利用できるようになるまではもう少し時間がかかりそうです。

Snapcraft

  • この記事いいね! (0)