2019年11月1日金曜日

Xcodeに関する小ネタをいくつか


Xcodeに関する小ネタがいくつか貯まったので、忘れないように書いておきます。


♪♪♪


「その一」
Xcode11.1にアップデートできない。

→ 古いXcodeをアンインストールしてから、改めてダウンロード+インストールする。

App Storeでアップデートボタンを押すとダウンロードを始めますが、ダウンロードが終わると同時にダウンロード前の状態に戻る、またアップデートボタンを押す、というループに陥りました。

原因はわかりませんが、今回が初めてではなく以前も1、2度起こりましたから、あるあるなのでしょう。


♪♪♪


「その二」
Info.plistの場所を移動したときに、再設定し直すところがTARGETS>Generalからなくなっている。

→ TARGETS>Build Stteings>Packaging>Info.plist Fileで設定する。

ここ。

確か、TARGETS>Generalにボタンが現れて、Info.plistファイルを選択するウィンドウが開くようになっていたと思うのですが、、、なくなっちゃってますね。

確かこの辺りにあったはずなんだけど。


♪♪♪


「その三」
プラグインの影響か、Documentation Comment(Alt+Cmd+/)が無効になる。

→ 証明書で再署名すると復活する。

これですね。
$ sudo codesign -f -s XcodeSigner /Applications/Xcode.app
Password:
/Applications/Xcode.app: replacing existing signature
$
詳しくは、「Vimのようなもの」をどうぞ。

プラグインはXVim2しか入れてないです。この影響なのか何なのか、よくDocumentation Commentが効かなくなってました。インストール直後は大丈夫なのですが、どこかタイミングかで気付くと使用不可になってました。

Xcode11.1にアップデートした現在、いまのところ大丈夫ですが、また無効になったらこの方法で復活させようと思います。


♪♪♪


「その四」
Assistant Editorが見つからない。どこに行ったんだ。

→ Storyboardペインの右上のリスト(?)アイコンをクリックすると、ドロップダウンリストが表示されて、その中に'Assistant'があります。

ここをポチッと。

Assistantがあります。

今後はStoryboard自体を使わなくなって、SwiftUIなのでしょうか。Appleについて行くのも大変です。


♪♪♪


「その五」
iPhoneシミュレータをダークモードにする。

→ ① シミュレータの、Settings>Developer>Dark Appearance(設定>デベロッパ>Dark Appearance)で設定する。


実機だと「画面表示と明るさ」の中にありますが、シミュレータではDeveloperの下にあるので要注意です。

この方法でもいいのですが、いちいちシミュレータのSettingsを開いて設定するのは面倒ですし、あまりさえたやり方だとは言いづらいです。

→ ② もうひとつの方法は、デバッグエリアのデバッグバーにEnvironment Overrideのアイコンがありますから、ここのInterface StyleをONにすれば動的に切り替えることができて便利です。


ただ、この方法だと、各Viewが静的に設定されているときじゃないと変わってくれません。つまり例えば下記のように、ソース上でtraitCollection.userInterfaceStyleを使って設定しているような場合には、そこを改めて通っているわけではないのでEnvironment OverrideでStyleを変えても反応しません。

そりゃそうだ。

こういったケースでは、やはり上のシミュレータの設定でスタイルを固定する必要があります。

結局のところ一長一短、ケースバイケースですね。




♪♪♪


「その六」
アプリをライト(or ダーク)モードで固定したい。

→ info.plistで、User Interface Styleを指定する。

LightもしくはDarkですね。

ソースだとこうなります。

本来ならUser Interface StyleをLight/Darkでちゃんと両方対応するのが筋ですが、ちょっと今は無理ってときは、とりあえずLightに固定しておいてAppleに怒られるまで(笑)時間を稼ぐというのも手です。

まだiOS13以前を切ることはできそうにないですから、ソースがif #available(iOS 13.0, *) {/**/}だらけになるのはちょっとなぁ〜、です。

つまりはiOS13のシェア次第ということで。


♪♪♪


「Xcodeの」というくくりとしては微妙なものも混じってますが、それはそれとして(笑)。