Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

XCode

シュミレータでopenURL

dynamicLinkなどもこれで確かめられる。 xcrun simctl openurl booted https//hogehoge.page.link/***

スキーム設定

スキーム追加 Product->Edit Schemeでduplicate Config追加 project file, Project, InfoタグのConfigurationで追加 スキームのエディットでrunを追加したConfigに設定 プリプロセッサ定義 prroject fileのBuild settingのPreprocessor Macroにそれぞれのコ…

スキーム

スキームの設定で、ビルドにdebug, adhoc, releaseの何を使うか、アーカイブにdebug, adhoc, releaseの何を使うかを決められる。 スキームは複数作れるのでその設定も増やせる。

adhoc周り

Rebuild from Bit Codeやるとipaの中身が変わってくる。 今回はやっていないのが正解だった。 あと プロファイルは証明書(certification)とアプリとdeviceを紐付けるが、今回キーチェーン内にその証明書の秘密鍵がなかった。しかも証明書が同盟のものが複数…

iBeaconが探知されない。

iBeaconが探知されない理由がわかった。"常に"を許可してもらわないとだめなようだ。マニュアル的にはiPhoneの設定画面から変えてもらうしかなくなる。逆にそこで常に許可をしてもらえば動く。 このあたりiOS13以降ではまた違うかも。

ビルド設定表示

プロジェクトファイルのある階層で xcodebuild -showBuildSettings 環境変数 https://pewpewthespells.com/blog/buildsettings.html

ワークスペースに既存プロジェクトを追加する

ワークスペースのadd Filesで既存のプロジェクトファイルを選択し追加する。この時既存のプロジェクトは閉じていないとならない。

リンクが通らない ld: don't know how to convert branch instruction

スキーム設定でdiagnosticsのaddress sanitizerが設定されていた。それを外したらビルドが通るようになった。

現在インストールできません

adhocで現在インストールできませんとでる。 プロビジョニング等を調べたが正常、クリーンもだめだった。 デバイスのログを辿ったところ、symblinkでエラーになっており、 ipaファイルの中身を調べたところコードシグネチャーのファイル内に PCのXCodeのderi…

XCode9

色々使えそうで感動している。 dev.classmethod.jpqiita.com Swift4 dev.classmethod.jp

たまに使うショートカット

⌘ { でタブ移動 ⌘デリート でその文頭からカーソルまで削除 ⌘→ 行末へ移動 ⌥エスケープ 補完リスト表示 ⌘T 新しいタブ作成 キー ⌘ コマンド⌥ オプション⇧ シフト⌃ コントロールエスケープは○に左上に棒が入っているマークOS X Yosemite: メニューに表示され…

framework作成

フレームワーク作成 1. CocoaTouch frameworkを作る。Objective-C, 名前はSampleと仮定。 2. クラスを作成。(MyServiceとする。) 3. 公開するヘッダーをProjectのTargetsのBuild PhasesのHeaderにHeadersのPublicに加える。 4. Sample.h(アンブレラヘッダー)…

自動テスト

エレメントがあるかを待つ。作りかけ。これが使えるかは謎。 func waitForElementAppear(element: XCUIElement, time:TimeInterval = 5, file: String = #file, line:UInt = #line) -> Bool { //let exp = XCTKVOExpectation(keyPath: "exsits", object: ele…

テスト環境の追加とprovisioning

テスト環境を後から追加しようとしてprovisioningでエラーになっていた。 Build SettingのProvisioning(Deprecated)をautomaticにし、generalタブでprovisioningをautomaticにチェックを入れると動いた。参考 qiita.com

コメント追加

Alt + Cmd + / で自動挿入。知らなかった..。qiita.com

デバッグ クラッシュログ

以下のサイトが参考になった。 stackoverflow.com

デバッグ シンボライズ

Xode内にあるsymbolicatecrashを使う。以下を参照した。 www.crunchtimer.jp まず探す。Xcode8のフォルダ内で find . -name symbolicatecrash /Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash 面倒なので適当にl…

swiftc failed with exit code 1

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1 で妙な現象にあった。 func reload(completion:@escaping (T?, Error?) -> Void) { objc_sync_enter(self.loadCompletion…

デバッグ lldb

ブレークポイントセット breakpoint set -n semaphore_wait_trap LLDB 使い方まとめ - Qiita dispatch_barrier_sync blocks main thread when re-requesting an image. · Issue #803 · rs/SDWebImage · GitHub script Pythonでscript入力 exit()で終了[LLDB]…

コンパイル時間計測

other Swift Flagsに-Xfrontend -debug-time-function-bodiesをつける。Speeding Up Slow Swift Build Times

iPhoneの実機でネットワーク環境を試す

図は「On-Demand Resources Guide: Optimization with Testing」を参照 設定 Settings/Developer/Network Link Conditioner/Statusenableをオンにし、 Profileを設定する。 Profile Profileは基本のpresetがあり、自分でも設定できる。 主な値は以下 100%LOS…

UIテスト

何々ができるまで待つ XCUIApplication *app = [[XCUIApplication alloc] init]; NSPredicate *existsPredicate = [NSPredicate predicateWithBlock:^BOOL(XCUIElement *app, NSDictionary<NSString *,id> * _Nullable bindings) { if (app.buttons[@"hoge"]) return YES; r</nsstring>…

コマンドライン

バージョン確認 xcodebuild -version ヘルプ xcodebuild -h インストールしているSDK xcodebuild -showsdks 以下参考 Xcodeでのビルドを自動化するxcodebuildコマンドとIPAファイルを作成してiTunes Connect(Testflight)に投げる方法 - 酢ろぐ! Xcode の Bu…

XCodeのデバッグで変数

可変リストを作ります。 (lldb) po [NSMutableArray array] <__NSArrayM 0x17084e970>( )オブジェクトをいれてみます。 p [(NSMutableArray *)0x17084e970 addObject:@"b"]変数を作ります。 p NSMutableArray* $list変数に先ほど作ったリストをいれてみます p $list = (NSMutableArra</__nsarraym>…

使うショートカット

検索 全体検索 shift + command + o フィルタバーへ飛ぶ option + command + j ヘッダ切り替え control + command + 上下 ペイン移動 command + 数字 画面分割 command + option + return 分割(縦) command + return 分割終了 置換 検索はcommand + Fだがこ…