技術と本について書くblog

技術と本について書くblog。技術メモなど雑記を書いているblog。

iOS

CoreMLのモデルを小さくする方法

iOS

アプリの場合、モデルのサイズを気にする必要があり、CoreMLのモデルを小さくすることがほぼほぼ必須。 Fp16への量子化 32bitの数値を16bitで代替えする32から16なので容量も半分になる。 精度もそこまで落ちないのでこちらはおすすめ。 import coremltools …

Xcodeのxcshemesファイルとは?

iOS

xcshemeファイルとは? Xcodeのschemeの設定などを記載したファイルになります。 これをGitHub上にpushすることにより、みんなが同じ環境でbuildできるようになります。 ディレクトリ構成 Hoge.xcodeproj/ xcshareddata/ xcschemes/ hoge.xcscheme

Pod installにできるPodfile.lockとは?

iOS

Podfile.lockとは pod installをする時に使用する定義ファイル。 Pofdile.lockがない場合に pod installされると生成される。 Pod updateした際にはPodfile.lockも更新される。 Pod installした際にも更新されているんだけど? CocoaPodsがアップデートされ…

iOS14でアプリのデフォルトブラウザ及びデフォルトメールクライアントの事前準備日本語訳

iOS

こちらはWWDC2020で発表されたiPhone標準ブラウザ、標準メーラーを設定するための開発者向けApple公式ドキュメントを独自に日本語訳した文章になります。 重要な箇所に関しては公式ドキュメントをご覧ください アプリをデフォルトのブラウザまたはメールクラ…

Xcode betaでCartahgeがxcrun lipoでうまくいかない時の対処方法

iOS

Xcode 12 beta3で突然エラーが発生するように エラー内容 cartahge update した際に以下のようなエラ〜メッセージが(こちらはissueから) fatal error: /Applications/Xcode-12-beta-3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin…

Xcode betaでCartahgeがxcrun lipoでうまくいかない時の対処方法

iOS

Xcode 12 beta3で突然エラーが発生するように エラー内容 cartahge update した際に以下のようなエラ〜メッセージが(こちらはissueから) fatal error: /Applications/Xcode-12-beta-3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin…

App Stocre ConnectAPIで追加されたパフォーマンスについて #WWDC2020

まず叩き方の基本についてはこちら 新しく追加された4つのREST API 1 Application metrics and insights for recent app versions GET https://api.appstoreconnect.apple.com/v1/apps/{アプリのid}/perfPowerMetrics アプリケーションIDを使用して、アプリ…

Nearby Interaction frameworkとは? #WWDC20

iOS

Nearby Interaction frameworkとは? WWDC2020で発表されたNearby Interaction frameworkは、空間認識機能を備えたframeworkでU1を搭載したiPhone(iPhone11)で使えるframeworkです。 これはiOS13のAirDropでも使われていた機能を公開した物です。 また、こ…

【SwiftUI】Buttonを押してmp3を再生する

iOS

AVFoundationをインポート import AVFoundation var sound: AVAudioPlayer? func playSound() { if let path = Bundle.main.path(forResource: "2_cymbal", ofType: "mp3") { do { sound = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path)) print…

iPad OSにてmultitaskingが2020年4月までに対応必須な件について

iOS

最終更新:2020年2月6日 WWDC2019で対応が必須と発表されていましたiPadのマルチタスキング機能の追加ですが。 2020年の1月13日のApple Developer News and Updatesにて対応が必須ではなく、サポートすることを強くお勧めとの文言になっています。 なので対…

【簡単】iOSのリリースで楽するためにfastlaneを導入2019版

iOS

XCodeを普段使ってない場合は以下を実行 xcode-select --install RubyGemsで入れる場合 sudo gem install fastlane -NV brewで入れる場合 brewがない場合は以下を実行してbrewをインストール /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.…

UIViewControllerでViewControllerを閉じる方法

iOS

dismissの代わりに self.navigationController?.popViewController(animated: true) を使う let alert = UIAlertController( title: "ViewControllerを閉じる",message: "hoge", preferredStyle: UIAlertController.Style.alert) alert.addTextField( config…

iOSの広告で'bottomLayoutGuide' was deprecated in iOS 11.0エラーが出る時の対象法

iOS

Admobの広告を設置した時にでる時の警告 'bottomLayoutGuide' was deprecated in iOS 11.0: Use view.safeAreaLayoutGuide.bottomAnchor instead of bottomLayoutGuide.topAnchor が出た時の対象法 func addBannerViewToView(_ bannerView: GADBannerView) {…

CoreMotionを使っての回転判定

import CoreMotion let manager = CMMotionManager() override func viewDidLoad() { //取得の間隔 manager.accelerometerUpdateInterval = 0.01 manager.startAccelerometerUpdates(to: OperationQueue.current!, withHandler: { (data, error) in self.get…

UITabBarの上の線を無くす方法

iOS

layerを透明にする cliptsToBoundsも必要 class CustomTabBarController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() tabBar.layer.borderWidth = 0.5 tabBar.layer.borderColor = UIColor.clear.cgColor tabBar.clipsToBound…

複数のXCodeを入れている時に切り替えるコマンドxcode-select+cocoapodsも

iOS

切り替え $ sudo xcode-select --switch /Applications/Xcode.app 確認 $ xcode-select --print-path cocoapods バージョン確認 pod --version バージョン削除 sudo gem uninstall cocoapods --version=1.5.3 インストール sudo gem install cocoapods --ver…

iOS開発の時にXCodeでよく使うLLDBコマンド

iOS

p po 変数を表示するときに使用。一番使う。 po <変数> 変数表示 po print("hoge") po $label.text = <式> 値の書き換え frame variable 現在のスコープの変数を表示 take lookup <型名> help h 全コマンドの一覧を表示 help <コマンド> apropos <検索したい…

Swiftの値型と参照型について

iOS

参照型 変数自体を保存しているのではなく、その値が入ったアドレスが格納されている。 classは参照型で、クロージャーも参照型である。 class classHoge { var p: String = "initial" } let a3 = classHoge() let a4 = a3 a3.p = "aa" print(a3.p) // aa pr…

swiftのAppDelegateに書いてある@UIApplicationMainとは

iOS

swiftのAppDelegateに書いてある@UIApplicationMainとは?? @UIApplicationMainはmain.swiftが無くてもプロジェクトのエントリーポイントとなるように実行する。 これはUIkitをimportしないと使えない。 つまり、@UIApplicationMainが無くてmain.swift 、Obj-…

appleのストア画像及び動画のリジェクトまとめ

iOS

ストア画像や動画でのリジェクトがappleのitunes connectから設定する動画でリジェクトリスクがあるものに関して分かっている範囲でのまとめ 動画に関して、かなり厳しい印象 ガイドラインでいう「Guideline 2.3.x - Performance - Accurate Metadata」の箇…

app store connect apiでUSERを削除する

iOS

App Store Connect APIでユーザーの参照 GET https://api.appstoreconnect.apple.com/v1/users https://developer.apple.com/documentation/appstoreconnectapi/list_users クエリパラメーターと叩き方例 一覧を取る(一度に取れるのは50まで) 最初にトークン…

UIImagePickerControllerで動画のみを表示する方法

実装方法 MobileCoreServicesをimportする import MobileCoreServices class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { mediaTypesをkUTTypeMovieにする // 動画のみ if UIImagePickerControll…

macからrelamファイルを削除する方法

iOSシミュレーターの際はシミュレーターのresetをしてましたが、mac OSの時にrelamファイルを消す方法が分からなかったのでメモ Swift print(Realm.Configuration.defaultConfiguration.fileURL!) これでrealmの保存場所が分かるので削除すればok (mac app…