iOS関連のことを調べてみた2020年03月09日

iOS関連のことを調べてみた2020年03月09日
目次

【Swift】UIPickerViewのデフォルト値を変更する

## 要約

UIPickerViewのデフォルト値を変更したい場合、以下の2箇所を変更する必要がある。

– PickerViewを開いた後、選択されている値を変更する

“` swift
self.pickerView.selectRow(index, inComponent: 0, animated: false)
“`

– PickerViewで選択された値を表示しているTextFieldなどの値を変更する。

“` swift
pickerViewTextField.text = optionList[index]
“`

## 備考
– `selectRow`だけ設定すけばいけるやろと思ってハマった…ので備忘録です。

元記事を表示

UILabelやUITextFieldなどで箇条書きをきれいに表示する

# 概要

iOSのUILabelやUITextで箇条書きテキストを表示したい場合の実装例です。

単純に実装すると以下のBeforeのようにインデントや適切な行間がなく見辛くなってしまいますが、これをAfterのようにきれいに表示できます。

|Before|After|
|:-:|:-:|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113553/b56149de-0077-6ef1-a446-2371b211d6c1.png)|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113553/1be25c2f-6702-a04c-3139-1ac93ed4a871.png)|

# 実装方法

XcodeのPlaygroundで実行可能なコードサンプルです。

“`swift
import UIKit
import PlaygroundSupport
let text = “※以下に

元記事を表示

XcodeのBuild PhasesでSwiftスクリプトを実行する

ビルド前にファイルの自動生成が必要な時はコンパイル前に行っておく必要があります。
人の温かみを感じるために毎度エンジニアが自動生成するスクリプトを実行しても良いのですが、XcodeのBuild Phasesの中に組み込めばビルド時に自動的に行ってくれます。
Build PhasesではBashスクリプトを実行できます。なので基本Bashスクリプトで自動生成するプログラムを書くのですが、BashからSwiftコマンドを実行すればSwiftで書かれたプログラムを実行できます。

Swiftはコマンドラインの実行も対応しているので、PythonやRubyのスクリプト言語がわからないiOSエンジニアでもメンテナンスができるというメリットがあります。

# 環境
Xcode11.3.1

# スクリプトファイルの作成
空のSwiftファイルを生成します。そして1行目に以下のおまじないを挿入してください。

“`Script.swift
#!/usr/bin/swift
“`

`#!/usr/bin/swift` はかならず1行目に書きます。コメントの下ではうまく動きません。
これはSwi

元記事を表示

‘Showing Recent Issues SWIFT_VERSION ‘3.0’ is unsupported, supported versions are: 4.0, 4.2, 5.0.’について

久しぶり以前作成したSwiftのソースコードを開いたら、下記のエラーが発生しましたので、
対処方法を明記いたします。
※情報の判断はご自身の責任でお願い致します。

`Showing Recent Issues SWIFT_VERSION ‘3.0’ is unsupported, supported versions are: 4.0, 4.2, 5.0.`

環境:
Xcode11.3

原因:
原因といたしましては、Swiftのバージョンの違いによるものです。

対応方法:
使用しているSwiftのコードを最新にする必要があります。

project File → Build Phases → Swift Language Version
内のversionを任意のものにする必要があります。
![capture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96378/f352f5e5-dc89-fb03-801f-574865106d25.png)

**※注意点としましては、Target

元記事を表示

Xamarinを勉強し始めたので覚えたことを記録するメモ

#はじめに
Xamarinを使ってマルチプラットフォーム開発をやってみたくなったので、勉強したことを記録として残す(徐々に追記)

## Xamarinとは
iOS | Android | Windows など複数のプラットフォームで動作するアプリをC#を使って構築することができるライブラリ

– Xamarin.iOS
– Xamarin.Android

を導入すると、iOSとAndroidのマルチプラットフォーム開発ができる。
例えばVisual Studioに導入すれば、ついでにUWPアプリも作れる。

## Basic Class Library
各プラットフォーム間で共通的に使えるライブラリ。
基本的には、このライブラリを使ってアプリを構築し
個別の対応が必要なものについて、個々のプラットフォームの
ライブラリを使うことで共通化を目指すようだ。

## iOS版のアプリについて
やはりiOS版のアプリについてはMacとXcodeが必要であった。
Mac上のiOSシミュレータは`Xamarin.iOS Build Host`によりペアリングすることで
Windows上のVis

元記事を表示

[iOS13] SceneDelegateでDynamicLinksからのURLをハンドリングする

# 環境
– Xcode 11.3
– Swift 5.1.3
– Firebase 6.16.0
– FirebaseDynamicLinks 4.0.7

# 経緯
「DynamicLinksからアプリを起動した際に、iOS13系でURLをハンドリングできていない」
という問題に最近対応しました。

結局、マルチウィンドウを活用していないことから、SceneDelegateを破棄することで対応しましたが、調べたもの達が可哀想なので供養するために記事にしました。

ちなみにSceneDelegateの破棄対応は3つで完結します。
– `SceneDelegate.swift` を削除
– `info.plist` から `Application Scene Manifest` のkeyを削除
– プロジェクト作成時に`AppDelegate` に自動で組み込まれる `func application(_:configurationForConnecting:options:)` と `func application(_:didDiscardSceneSessions:)` を削除

元記事を表示

Xcode 11.4でFlutterの実機デバッグでエラーになった際の対応方法

# はじめに

Xcode 11.4でFlutterの実機デバッグを実行した際に以下のエラーが発生したため、対応方法についてまとめました。

“`terminal
error: Building for iOS, but the linked and embedded framework ‘App.framework’ was built for iOS Simulator. (in target ‘Runner’ from project ‘Runner’)
“`

## 実行環境

|環境|バージョン|
|:-:|:-:|
|macOS Catalina|10.15.4 Beta(19E250c)|
|Andriod Studio|3.6.1|
|Xcode|11.4 beta (11N111s)|

## 対処方法

Flutterの公式サイトに以下の記載[^1]がありました。

> To develop Flutter apps for iOS, you need a Mac with Xcode installed. Xcode 11.4 changed the way

元記事を表示

ニコニコ動画の動画のタグをApple Musicで検索するショートカット

本記事では、ニコニコ動画にある動画に使用されている原曲を、タグから取り出して、Apple MusicまたはYouTubeで検索するiOSショートカットを紹介します。

~~大してショートカットできてない~~

iOSショートカットのリンク → [ニコニコ動画の動画に含まれる音楽をApple Musicで再生](https://www.icloud.com/shortcuts/add9bd2ddfed4f6f831c8b4913817e91)

# 特長
– niconico コンテンツ検索APIを利用
– ニコニコ動画のタグ機能を利用
– Apple Music APIを利用せず、iTunes Search APIを利用
– Apple Developer Programのメンバーシップが不要
– 共有シートから利用
– ウェブブラウザやアプリケーションで利用可能

# 使い方
1. ウェブブラウザまたはアプリケーションの共有シートから「ニコニコ動画の動画に含まれる音楽をApple Musicで再生」を選択
2. 動画のタグ一覧から検索したい音楽の曲名を選択
3

元記事を表示

iOSでBluetoothの許可設定

単なるメモです。
なにか作ったら、そのうちアップします。多分

##やってたこと
M5StackとiPhoneで通信するiOSアプリとM5Stack側のソフト

[数少ないM5StackとiOSの記事](https://qiita.com/From_F/items/66099d488a324ad38d40)を参考にしながら、iOSアプリを作っていたわけですが、どうしてもBluetoothで通信できない。。。。

##何をやって解決したか?
結論から言うと、Bluetoothを使うときの許可設定をやっていなかった。だけ
よく見る、Bluetooth使うけどOK? はい いいえ 見たいやつ。

###Appの実装
「plist」を右クリック→「Open Ad」 → 「source code」
スクリーンショット 2020-03-07 14.59.58.pngwrap with new widget が消えた (Flutter / IDE)

Android Studioで電球マークを押しても、Wrap with new widgetが出てこなくなり、Adjust code style settingsしか出てこなくなった時の解決方法

どこにあるかわからず、結構うざかったので、解決した時のURLを貼っておきます。

解決方法
(Mac)Preference → Editor → intentions → Quick assist powered by the Dart Analysis Server..を有効化

https://github.com/flutter/flutter-intellij/issues/2448

![スクリーンショット 2020-03-07 11.36.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378998/21be4830-a5b7-cea5-67fe-9088273450cc.png)

元記事を表示

画像分類モデルをつくってモバイルで動かしてみた

#はじめに
自作の画像データセットから分類モデルをつくり、iOSやAndroidのカメラを用いてリアルタイムで動かす方法を共有します。

##環境
– google colaboratory(ランタイム:GPU)(TensorFlow 1.15)(Google Chrome)
– Android Studio
– android 8.0(NEXUS6P)
– Xcode
– iOS 13(iPhone8)

#1. 自作データセットの作成とモデルの作成
この記事では[retrain.py](https://github.com/tensorflow/hub/blob/master/examples/image_retraining/retrain.py)を用いて画像分類モデルを作成します[^1]。
[^1]: retrain.pyは[make_image_clas

元記事を表示

FirebaseをCarthageで管理する XcodeGen編

Firebaseの管理をCocoaPodsからCarthageに移し替える作業があったのでまとめておきます

# 環境
Xcode: 11.2.1
Carthage: 0.34.0
XcodeGen: 2.13.1

# 手順
[Firebaseの公式ドキュメント](https://github.com/firebase/firebase-ios-sdk/blob/master/Carthage.md)にCarthage管理のやり方が記載されているのでこちらに沿って移行していきます

今回はFirebaseAuthのみ追加するパターンです

CartFileに`FirebaseAuth`のバイナリを書き込みます
※ アナリティクスのバイナリは必須のようですので`FirebaseAnalyticsBinary`も追加します

“`swift:CartFile
binary “https://dl.google.com/dl/firebase/ios/carthage/FirebaseAuthBinary.json”
binary “https://dl.google.com/dl/

元記事を表示

`FASTLANE_SESSION` 環境変数の生成で `Spaceship::UnauthorizedAccessError` エラー

## はじめに

`fastlane spaceauth -u {Apple ID}` を実行して `FASTLANE_SESSION` 環境変数を生成しようとしたら、6桁の確認コードの入力後に `Spaceship::UnauthorizedAccessError` エラーが発生しました。

(検索用に全文載せていますが、エラーは「Please enter the 6 digit code:」からです)

“`shell-session
$ bundle exec fastlane spaceauth -u {Apple ID}
[✔] ?
Logging into to App Store Connect ({Apple ID})…
Available session is not valid any more. Continuing with normal login.
Two-factor Authentication (6 digits code) is enabled for account ‘{Apple ID}’
More information about T

元記事を表示

TestFlight経由でインストールしたアプリのローカルデータは製品版インストール時に引き継がれますか?

引き継がれます!(2020年2月時点)
アプリをアップデートするようなものと考えていただければ。

バンドルIDが同じなのだからそりゃそうだと思いつつも、やはり不安になってしまうものですが、意外とネットに情報が転がってなかったので、共有しておきます。

元記事を表示

iOSでFlankを使ってFirebase Test LabでUITest

テストの分割などが可能なツール、FlankをiOSのUITestで導入してみます。

テストランナー

公式githubのREADME.mdももちろん見てください。
https://github.com/Flank/flank

# 環境

– macOS Mojave 10.14.6(18G103)
– java version “1.8.0_241”
– Flank v8.1.0
– gcloud Google Cloud SDK 276.0.0, bq 2.0.52, core 2020.01.10, gsutil 4.47

# 環境の準備

私はおもむろに`Contributing`の項目の設定をはじめてしまいました。
使うだけの人は`iOS example`の項目からはじめましょう。

## java

ここでは`jdk-8u241-macosx-x64.dmg`を使いインストールしました。
https://www.oracle.com/java/technologies/javase-jdk8-downloads.html

“`shell
$ java -ve

元記事を表示

リモートMTGなどでスマホの画面を共有する方法(iOS: Zoom、Android: AirMore)

# iOS
[Zoom](https://zoom.us/jp-jp/meetings.html) を利用します。

#### 0. [Zoom](https://zoom.us/jp-jp/meetings.html) を利用できるようにする

[Zoom](https://zoom.us/jp-jp/meetings.html) を利用するためにはサインアップが必要です。
[プランがいくつか](https://zoom.us/pricing)ありますが無料プランでも充分だと思います。

サインアップしたら[コチラのページ](https://zoom.us/download#client_4meeting)から「ミーティング用Zoomクライアント」をダウンロードしインストールします。

インストールが終わったらアプリケーションを起動してミーティングを開始します。(ここらへんの手順は省きます。)

以下ミーティング開始後からスマホを画面共有するまでの手順です。

#### 1. ミーディング画面の「画面を共有」をクリック
iosスクリーンシ</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Android</div>
<div class='tag-cloud-link'>iOS</div>
<div class='tag-cloud-link'>画面共有</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/koichi-ozaki/items/167249657f12275ff3b7'>元記事を表示</a></div>
<h3 id=iOS13においてFirebaseのPUSH通知が上手く動かない?

もしかすると、公式ドキュメントがおかしい(?)かもしれません。

“` swift
# https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self

let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_, _ in })
} else {
let settings: UIUser

元記事を表示

iOS13.3.1の環境で実機テストするとLibrary not loaded が表示される件について

こんにちは。
先日、外部フレームワークを使ったアプリで実機テストしようとしたら、真っ黒な画面になってしまい、少々ハマってしまったので記事を書きます。
同じことが起きてる人がいたら参考にして欲しいです。

# 環境
Xcode11.3.1
iOS(実機)13.3.1

# 解決すべき問題
Firebaseなどの外部ライブラリをCocoaPodsで導入したアプリを実機にインストールすると、「Library not loaded」となって、画面が真っ黒くなるという問題。なお、シュミレーターでは普通に動く。

# 原因
iOS13.3.1から、Appleは無料のアカウントで外部フレームワークを使用することをブロックしたらしいです、、、
僕は試してないんですが、有料版にアップグレードすると動くらしいです。

# 解決するためにやったこと
とりあえずエラーをコピペして検索してみた。そしたら、上の原因に書いたことが影響しているってことは分かったのですが、じゃあ1万円払って有料のデベロッパーアカウントを作成するのもなんか悔しい。

それで色々調べた結果、無料アカウントでも外部フレームワーク使える方法が

元記事を表示

【iOS】FirebaseのFriendly-Chatチュートリアルの pod install でエラーが出るとき

FirebaseのCodelabでのチュートリアル Friendly Chat で pod install でエラーが出るのは、Podfileが古いからのようだった。
https://codelabs.developers.google.com/codelabs/firebase-ios-swift/?hl=ja#2

“`
Pod::StandardError – [Bug] Failed to find known source with the URL “trunk”

[!] Oh no, an error occurred.
“`

一度、Podfile, Podfile.lockを削除して、そのディレクトリで`pod init`し、そこに元の情報を正しくコピペしてやると成功した。

スクリーンショット 2020-03-05 17.03.14.png歴代iPhoneの販売開始年/初期搭載iOS ver./最終iOS ver

iOSアプリの最小iOSバージョンを検討するために一覧化しています。

| iPhone | 販売開始年 | 初期搭載 iOS ver. | 最終 iOS ver. |
|:–|:-:|:-:|:-:|
| [iPhone 11 Pro/11 Pro Max](https://ja.wikipedia.org/wiki/IPhone_11_Pro/11_Pro_Max) | 2019 | 13 | _未発表_ |
| [iPhone 11](https://ja.wikipedia.org/wiki/IPhone_11) | 2019 | 13 | _未発表_ |
| [iPhone XR](https://ja.wikipedia.org/wiki/IPhone_XR) | 2018 | 12 | _未発表_ |
| [iPhone XS/XS Max](https://ja.wikipedia.org/wiki/IPhone_XS) | 2018 | 12 | _未発表_ |
| [iPhone X](https://ja.wikipedia.org/wiki/IPhone_X)

元記事を表示

OTHERカテゴリの最新記事