Xcode

update create

URL

Download List

該当デバイス 対応表

Shortcut 内容
Ctrl + Command + J 定義に飛ぶ
Ctrl + Command + ← Jump前に戻る
Ctrl + Command + e 指定の変数を全選択
Ctrl + 6 Show Document Items: 定義名選択セレクターにフォーカス
Command + ' Next Issue
Command + " Previous Issue
Command + / Comment
Command + Opt + / add Documentation

Comments, Documentation comments

// Normal inline comment
/// Documentation comment

/* Normal block
comment */
/** Documentation block
comment */

Debug

po <expression>
p <expression>
expression <expression>
  • p: print - LLDB の組み込みフォーマッタを使用してオブジェクトを表す
  • po: print object
  • expression: 値の代入

他のデバック有用情報

参考

発生した例外の内容を知りたい場合はデバッグコンソールで以下のいずれかを入力する。

po $r0 (arm : iPhone/iPad 実機)
po $rax (x86_64 : OSX, iOS シミュレータ)
po $eax (i386 : OSX, iOS シミュレータ)

  • アーキテクチャを調べる
$ xcrun lipo -info (バイナリファイルのパス)

Trailing Space

Xcode -> preference -> Text Editing -> Editing including whitespace-only lines

複数

色々とあるようですが、simpleなのをチョイス。

確認

xcode-select -p 

切替

sudo xcode-select -s /Applications/Xcode_

GUI: Xcode -> Preferences -> Locations -> Command Line Tools

Notice

  • https://developer.apple.com/jp/ios/submit/

Xcode 11でビルドする Xcode 11でAppをビルドしましょう。Xcode 11には、iOS 13、iPadOS、watchOS 6、tvOS 12、
macOS Catalina向けのSDKが含まれています。

2020年4月以降、App Storeに提出するiPhoneおよびiPadのAppはすべて、iOS 13 SDK以降でビルドする必要があります。
また、iPhone XS Maxまたは12.9インチiPad Pro(第3世代)以降のオールスクリーンデザインに対応している必要があります。

アプリビルドメモ https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12210602432

Developer

デベロッパアカウントヘルプ

  • Team ID

https://stackoverflow.com/questions/18727894/how-can-i-find-my-apple-developer-team-id-and-team-agent-apple-id

TODO list

ないぽい。 Find -> Regular Expression で、表示すると同じような機能になるので、実装されないのかな?

Instant Run

ないっぽい * https://github.com/johnno1962/injectionforxcode/

plug-inなら同じようなことが出来そうだけど、、 要検討かな。

Push

Xcode 11.4 Betaから使えるっぽい

Push notifications in simulator - Not working Xcode 11.4beta

xcrun simctl list
xcrun simctl push <SIMULATOR_DEVICE_ID> <YOUR_APP_BUNDLE_ID> <APNS_FILE_NAME>

apnsファイルをDrag and DropしてもOK

動画

xcrun simctl io booted recordVideo test.mov
ffmpeg -i test.mov test.mp4
ffmpeg -i test.mov -pix_fmt yuv420p test.mp4
# 時計回りに90度回転
ffmpeg -i test.mov -pix_fmt yuv420p -vf "transpose=1" test.mp4

トラブル解決メモ

UnitTest
Could not find test host for [Project]Tests: 
TEST_HOST evaluates to [PATH]
  • PATH: $(BUILT_PRODUCTS_DIR)/[Project].app/[Project]
  • BUILT_PRODUCTS_DIR: $HOME/Library/Developer/Xcode/DerivedData/<アプリケーション固有ID>/Build/Products//
  • Build Configuration: -<問題の識別子>

今回問題の<問題の識別子> がどこで設定されているか不明で iphonesimulatorと出ており、TEST_HOSTとかの情報はiphoneos となっていて
混乱に拍車をかけた、、

今回の問題にはあまり関係なかったけど、
iOS universal framework with iphoneos and iphonesimulator architectures
フレームワーク アーキテクチャーっぽい。
SDKあたりかなぁ

@testable import [project]

どうもこれは、$BUILT_PRODUCTS_DIR に展開されたモジュールをimportするようだ。
その名称が異なっていると、No such module となるみたい。

作成される名称に関係する情報は Product Name みたいで、そこを合わせると
問題が解決した。

TARGETS -> [Project] -> [General] -> [Product Name]
を変更数と Product Module Name も変わる

UnitTestに関係しそうな箇所

  • 実行するScheme の Test -> Info
    Enabled, Tests が存在するか?
  • TARGETS -> [Project] -> Build Settings -> Build Options -> Enable Testability
    該当Scheme が YESになってる?

アプリ情報

  • アプリ名: Info.plist -> CFBundleDisplayName
    ローカライズしたい場合は、Info.plistをローカライズする。

名称

  • Xcode help -> scheme menu
    Schemesの右隣は、Destinations というらしい < Xcode Helpに記載

Simulator

 /Users/[User]/Library/Developer
 "$HOME/Library/Application Support/iPhone Simulator/User/Applications"
 "$HOME/Library/Developer/CoreSimulator/Devices"

--- 中間ファイル ---
~/Library/Developer/Xcode/DerivedData

StackExchangeで紹介されてた * DevCleaner for Xcode

運用

Scheme

xcodebuild -list | grep Develop