iOS関連のことを調べてみた2021年02月08日

iOS関連のことを調べてみた2021年02月08日
目次

【Flutter】エラー対応 assets_audio_player

#エラー内容

下記Gitでイシューに上がっていますが、根本的な解決策はまだ挙がってなさそうです。
https://github.com/florent37/Flutter-AssetsAudioPlayer/issues/399

“`
e: /Users/yo4hi6o/flutter/.pub-cache/hosted/pub.dartlang.org/assets_audio_player-2.0.13+1/android/src/main/kotlin/com/github/florent37/assets_audio_player/Player.kt: (542, 5): ‘handleMessage’ overrides nothing
e: /Users/yo4hi6o/flutter/.pub-cache/hosted/pub.dartlang.org/assets_audio_player-2.0.13+1/android/src/main/kotlin/com/github/florent37/assets_audio_player/Player.kt: (54

元記事を表示

このAppは、整合性を確認できなかったためインストールできません。

App Distributionで配布していたipaが以下のエラーを出力しインストールできなくなってしまった。

“`
このAppは、整合性を確認できなかったためインストールできません。
“`

正確には、インストールはできているのかもしれないが、アイコンをタップすると、このエラーが表示されアプリが起動できないという現象。

# 原因
distribution用証明書の期限が切れていたのが原因でした

元記事を表示

iCloud DriveをOn/Offした時の挙動に関して

##前提##
iCloud Driveを使うようにアプリを設計している。

##iCloud DriveをOffにする##
iOSの設定->アカウント->iCloud->iCloud Driveで一気に、または一覧からアプリ個別に
Offにすると、[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier: <コンテナのID>];がnilを返す。Onならば適切なURLが返ってくる。
例: “file:///private/var/mobile/Library/Mobile%20Documents/iCloud~com~yourdomain~yourapp/” 0x0000000283860310)

アプリのファイルを保存する目的でiCloud Driveを使う場合、nilが返ってきたらfallbackとしてデバイス上に保存するようにしている(Documentsなど)。ややこしいのは、アプリの起動中でもこの設定は変えられてしまう可能性があることかな。適切な挙動としては、アクセスの必要があるたびにnilチェックを行っ

元記事を表示

iOSの最終ベータ版が”GM”から”RC”に変わった件

Appleは、
正式リリース直前のベータ版のことを、iOS 14.1までは**“Golden Master”=GM**と呼んでいました。
ところが、iOS 14.2から**“Release Candidate”=RC**っていうのが出て、その後に正式版が出るようになりました。

参考リンク1:
[OSの「Release Candidate(RC)」と「 Golden Master(GM)」の違いは?](https://ipadmod.net/2020/10/31/os%e3%81%ae%e3%80%8crelease-candidate%ef%bc%88rc%ef%bc%89%e3%80%8d%e3%81%a8%e3%80%8c-golden-master%ef%bc%88gm%ef%bc%89%e3%80%8d%e3%81%ae%e9%81%95%e3%81%84%e3%81%af%ef%bc%9f/)
参考リンク2:
[Apple phasing out usage of “GM,” replacing it with “Release Candidate” (RC) instea

元記事を表示

【Flutter/ iOS】CocoaPods could not find compatible versions for pod の対策

## 概要
依存関係が変わった時(pubspec.yaml変更時)にビルドすると `CocoaPods could not find compatible versions for pod`が出てビルドに失敗するときの対策です。

## 解決方法
Podfile.lockを削除して、依存ライブラリをインストールし直すと解決しました!

“`
cd ./ios && rm -rf ./Podfile.lock && pod install –repo-update
“`

元記事を表示

iOSアプリのバリデーションについて考えてみた(Swift)

![Xcode-12](https://img.shields.io/badge/Xcode-12-brightgreen) ![Swift-5.3](https://img.shields.io/badge/Swift-5.3-brightgreen) ![iOS-14](https://img.shields.io/badge/iOS-14-brightgreen)

## はじめに
iOS アプリを作る際たま〜〜〜〜〜にクライアント側でバリデーションしてよ!って言われて実装することがあります。ただ下記のようにするのは嫌なんでなにかしらクラスを分けたくて考えてみました。どなたかいい案があればご教授いただけると幸いです:pray:

“`swift:ViewController.swift
@IBAction private func register(_ sender: Any) {
let value = textField.text!
var message = “”
if value.isEmpty {
message = “空だよ

元記事を表示

【初心者向け】iOSアプリ開発 カウントアプリ

#カウントアプリを作ろう
今回は、カウントアプリを作成します!!
楽しみながら実際にアプリを作ってみましょう!

 ↓↓ 完成図 ↓↓

#開発環境
**Swift 5**
**Xcode 12.4**

#開発準備
Xcode

元記事を表示

Flutter Doctor の cocoapods でハマった

ここだけ`flutter doctor`で出てくる指示通りではうまくいかなかったので、解決した方法をメモしておく。

# 環境
“`
macOS Catalina v10.15.4
Flutter 1.26.0-17.3.pre
Dart 2.12.0
“`

# homebrewをバージョンアップする

“`
brew update
“`
コマンドを実行すると

“`
homebrew-core is a shallow clone.
homebrew-cask is a shallow clone.
“`
という警告が出たので、指示に従って処理を実施した。

“`
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch –unshallow
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch –unshallow
“`
その後再びアップデートを実行した。

# Rubyをバージョンアップする

元記事を表示

【iOS】iPhone / iPadのセーフエリア(Safe Area)一覧

自身の整理用にまとめました。

以下で取得した画面サイズとセーフエリア(Safe Area)を機種ごとに一覧にしました。

~~~objectivec

// width / height
NSLog(@”%f %f”, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);

// Safe Area
NSLog(@”%f %f %f %f”, self.navigationController.view.safeAreaInsets.top, self.navigationController.view.safeAreaInsets.bottom, self.navigationController.view.safeAreaInsets.left, self.navigationController.view.safeAreaInsets.right);

~~~

iPhoneは、Portrait(縦向き)とLandscape(横向き)とでセーフエリアが異なり

元記事を表示

【Swift】UITextFieldDelegate でキーボードの挙動を実装するサンプル

# 概要
`UITextFieldDelegate` を使ってキーボードを閉じたときの挙動を実装するサンプルです。

# 前提
言語 : Swift 5
開発環境 : Xcode 12

# サンプルコード
“`swift:ViewController.swift
class ViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var searchTextField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
// searchTextField のデリゲートを ViewController が受け取る
searchTextField.delegate = self
}

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
searc

元記事を表示

XCTestで何をテストするべきか?

XCTestでテストすることは
1.成功を期待した場合は求める情報きちんとが返ってくるか?
2.エラーを期待した場合はしっかりとエラーが起こるか?

元記事を表示

[Swift]UITextViewに文字を入力中に、ラベル内の文字数表示を自動更新する

##やりたいこと
UITextView内で文字を入力時に、リアルタイムでその文字数をラベル表示に反映する。(Twitterの投稿画面みたいな感じで。)

##実装の流れ

基本的な実装の考え方は以下になります

* TextViewの内容が変わったときに
* 文字数を取得し、その文字数でラベルの文字列を更新する

下記の流れで実装します。

1. ViewControllerをUITextViewDelegateプロトコルに準拠させる。
1. textViewDidChange(_ textView: UITextView) メソッドを追加する。
1. textViewDidChange内で、memoTextViewの文字数を取得して、countLabelの文字列を更新する処理を記述する。

##実装方法

前提:下記の名前でIBOutletが作成されていること。
 文字入力するTextView → memoTextView
 文字数を表示するラベル → countLabel

せっかくなのでおまけで、
* 140文字以内の場合、文字数をグレー表示
* 140文字を超えている場合

元記事を表示

カスタムキャストのキャラでバ美肉リアルタイム配信したい(iPhone+macOSで)

# カスタムキャストのキャラでバ美肉リアルタイム配信したい(iPhone+macOSで)

皆さん、バ美肉してますか?とは言え、アバターを作るの大変ですよね。
最近だと、カスタムキャストとかVカツとかいろいろアバターを作成して配信なんてアプリがあります。
ただ、残念なのは、配信サービスが限定されることと、キャラだけで他のものを映せないってことです。
学会とかでアバターを右下に置きながらプレゼン配信とかしたいじゃないですか。

そこで、皆さんお持ちのiPhone+macOSでバ美肉リアルタイム配信をする方法を確立できたっぽいので共有してみようと思います。
なお、試験環境は、
* Mac mini(2020, M1)/macOS 11.4 Big Sur
* iPhone 12 Pro MAX /iOS 14.4
です。

## 必要なもの
必要なものはこんな感じです。

* Mac
* iPhone
* Lightningケーブル
* OBS Studio
* CamTwist
* お好みのV配信ソフト(cf.カスタムキャスト) ←iPhone上で動作

### Mac
MacはOBS

元記事を表示

iOS 端末で Let’s ソケットプログラミング!

ネットワークの基礎となる TCP/IP を理解するために、私はソケットプログラミングによる試行錯誤(Trial and Error)とネットワークトレースのパケット解析を避けては通れないと思っています。

本稿では、ソケットプログラミングをシミュレートする iOS アプリ **SocTest** を紹介します。

## SocTest とは

[Developer site](https://manabapp.github.io/SocTest/index_ja.html) より抜粋:

>SocTest は、カーネルに対してシステムコールを発行し、インターネットや組織内のイントラネット上の様々なサーバーとソケット通信を行うモバイルアプリです。
>SocTest のネットワーク操作は POSIX C API で実装されています。高度に抽象化された API を挟まず、必要以上にエラー判定せず、可能なかぎりカーネルに処理を委ねるように設計されています。

アプリは、[App Store](https://itunes.apple.com/jp/app/id1551906028?mt=8)

元記事を表示

iOS デバイスの通信内容を Windows PC で横取りして中身を見たりする方法

# やりたいこと
iOS デバイス (iPhone とか iPad とか)のアプリやブラウザーの通信内容を、F12 ツールみたいにキャプチャーしてデバッグしたい時って、ありますよね?

## よろしいならば Fiddler だ
Web Debugging Proxy の大御所、Fiddler ならそれ出来ます!
~~たぶん。たまにアプリによっては上手くいかないこともあるけど…。~~
(超機能沢山なのに、割と知られてなくて悔しい。。。)

# 手順
## マシンの準備
まずはキャプチャー対象の iOS デバイスがつながってるのと同じローカルネットワークに Windows PC を一台追加。

## Fiddler とプラグインのインストール
Fiddler 本体 は[こちら](https://www.telerik.com/download/fiddler-everywhere)から。
(Windows 版以外に、最近 Mac OS 用と Linux 用が増えてるんですけど、使ったことないのでスミマセン!)

あと、[このページ](https://www.telerik.com/fidd

元記事を表示

1024x1024pxのPNG画像から各サイズのアイコン画像を作成し、一発でxcodeに登録する

デザイナーからアイコン画像の頻繁な修正→反映依頼があり、繰り返し作業が多くなってきたので作成しました。
最近のSketchやXDなどのツールは各サイズの画像を出力するところまでやってくれるようですが、ターミナルのみで画像をリサイズし一発で全てのアイコン画像をAssets.xcassetsに登録します。

##実行方法
下記スクリプトを任意のファイル名(拡張子は.shが無難だと思います)で保存し、同じディレクトリに1024x1024pxのPNG画像をファイル名をicon1024.pngとして配置します。

![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14605/5793224a-f7aa-ada7-9d92-a8465cca792e.png “image1.png”)

“`sh
sh makeAppIcon.sh
“`

上記コマンドを実行するとAppIcon.appiconsetが生成されます。

 
![image2.png](https://qiita-image-s

元記事を表示

【Swift】PHPickerでカメラロールから写真を選択して表示する

# まえがき
Xcode12.4のSwiftを使ったiOSアプリ開発にて、以前のXcodeと異なることが多かったので記載

iOS14からimagePickerControllerの代わりとして、PHPickerViewControllerが使えるようになったので使ってみた

ボタンなどUIパーツの設定は[こちら](https://qiita.com/kanae_/items/b6c13f59924031403150)

# カメラロール表示前に権限確認する
– Info.plistに`Privacy – Photo Library Additions Usage Description`を追加する

※最新を使う場合は`Privacy – Photo Library Usage Description`を追加する
![ 2021-02-04 19.31.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1065074/4ec0f1cf-3afb-1d3a-ed8d-67bc0f5cda33.png)

元記事を表示

[Swift] 現在開かれているキーボードを取得する

ユーザが今どのキーボードを使っているか判断したい場合、次のように行います。

“`Swift
let currentKeyboardName = NSArray(array: UITextInputMode.activeInputModes)
.filtered(using: NSPredicate(format: “isDisplayed = YES”))
.first
.flatMap{($0 as? UITextInputMode)?.value(forKey: “displayName”) as? String}
print(currentKeyboardName) //例:Optional(“日本語ローマ字”)
“`
以上を`UIApplication.keyboardDidShowNotification`などのタイミングで行うと開かれているキーボードを取得することができます。
キーボードア

元記事を表示

【Swift】ImagePickerでカメラロールから写真を選択して表示する

# まえがき
Xcode12.4のSwiftを使ったiOSアプリ開発にて、以前のXcodeと異なることが多かったので記載

# カメラロールを表示するためのボタンを設定する
– 右上の+ボタンをクリックし、オブジェクトの一覧を表示する
– Navigation BarとBar Button Itemを選択し、Storyboardに追加する

追加後のStoryboard
![ 2021-02-03 17.31.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1065074/b65a31f8-92f2-3881-4ff6-d391de05efbc.png)

Storyboard上でナビゲーションバーのタイトルとボタンの名前を設定する

– N

元記事を表示

やってみたら簡単!ディープラーニング・オセロを作って自分を負かすまで強くした話(その2・iOS編)

前回の記事[「やってみたら簡単!ディープラーニング・オセロを作って自分を負かすまで強くした話(その1)」](https://qiita.com/TokyoYoshida/items/07bd3cdca6a7e50c3114)の続編です。

前回は、ディープラーニング・オセロのモデルを作って推論させるところまでを説明しました。

今回は、今回はこのモデルをiOSで動作させ、ミニマックス法やモンテカルロ木探索に組み込む方法について説明します。

前回、UIの説明をすると書きましたが、UIそのものはもともと参加していたコンテストである[リバーシチャレンジ](https://github.com/minmin0530/reversi-charenge)から提供されていたものを利用していたので、説明としては省略します。

前回はPython中心の記事でしたが、今回はSwift + Core ML中心の記事になります。

コードはこちらにあります。
[TokyoYoshida/reversi-charenge](https://github.com/TokyoYoshida/reversi-cha

元記事を表示

OTHERカテゴリの最新記事