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

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

[Flutter] iOS 13.4にアプデ後実機デバッグができない場合の対処法

iOS13.3.1では実機デバッグができず辛い思いをしていましたが、
ついにiOS13.4がリリースされたのでいざ挑戦!!

と思いきや以下エラーでビルドが通らない。

“`
Building for iOS, but the linked and embedded framework ‘App.framework’ was built for iOS Simulator.
“`

対処法は以下
1. ios/Flutter/App.framework ディレクトリ以下を削除
2. 再ビルド

するとビルドが通るようになりました。

元記事を表示

[RxSwift] RxSwiftとは

#RxSwiftとは
コードが新しいデータに反応、順次的に分離された方式で処理される、非同期プログラム開発が簡素化できる、データの変化に対応しやすい。
`observable` `asynchronous` `functional` `via schedulers`

##RxSwiftの基礎
Rxの3つの構成要素についてみてみる
Observables、Operators、Schedulers

###1.Observables
– Observable クラスはRxの基盤
– `T`タイプのデータを渡す、イベントを非同期に生成
– 他のクラスでemit(放出?)する値を購読できるようにする
– ObservableTypeのProtocol(Observable)はシンプルで、以下の3つのイベントのみemitし、observersはこの3つのみ受信できる
– next:最新/次のデータを渡すイベント
– completed:成功的にイベントを終了させるイベント。追加イベント生成しない
– error:Observableがエラー発生。追加

元記事を表示

Youtubeのサムネイルを検索できるアプリをリリースしました!

##はじめに簡単な自己紹介✍️
主にiOS開発をメインに勉強しております、私立文系の凡人大学生です、、、?
今年の目標は応用情報技術者試験に受かることです〜!

##リリースしたアプリ?

![YoutubeGif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302458/7ba2705a-e4c1-453b-a6c9-1162b725cf3b.gif)

Youtubeのサムネイルを検索できるアプリになっています。

App Store
https://apps.apple.com/jp/app/%E5%8B%95%E7%94%BB%E5%88%86%E6%9E%90/id1502014149

GitHub
https://github.com/geekshu625/YoutubeAPI
(改善点あればプルリクとか貰えますと泣いて喜びます)

##なぜ作ったか??
###Youtubeのサムネイルを検索できるプラットフォームがない

最近、僕の友人にもYoutuberになる人が現れ、様々なツ

元記事を表示

【超初心者向け】クロージャの書き方【swift】

##クロージャとは
swiftのLanguage Guideによると
>クロージャは、コードの中で渡したり使用したりすることができる自己完結型の機能ブロックです。

>中略

>クロージャは、それらが定義されているコンテキストから任意の定数や変数への参照を取得して保存することができます。これは、それらの定数や変数の上で閉じることとして知られています。

最近話題のDeepLに翻訳してもらいました。

##関数をクロージャにしてみよう!

以下の関数をクロージャで書いてみます。

・関数

“`swift
func closurePractice(num1: Int, num2: Int) -> Int {
return num1 + num2
}
“`

・クロージャ

“`swift
{ (num1: Int, num2: Int) -> Int in
return num1 + num2
}
“`

クロージャを使うと、このように処理を簡潔に記載することができます。

##クロージャをもっと簡潔に書いてみる
型推論を使うことで、データ型の記載を省略することが

元記事を表示

【AppStore申請】スクリーンショット作成

今回AppStore申請時に、スクリーンショットの生成ツールとして、[APPLAUNCHPAD](https://theapplaunchpad.com/)というツールを使用したので紹介。

## [APPLAUNCHPAD](https://theapplaunchpad.com/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/5cdf9328-f6dc-c1bb-78fd-595a802b7dba.png)

## 作成した様子

iPhone7で撮影したスクリーンショットを基に、自動で各サイズのスクリーンショットを生成してくれ、流行りの感じの広告風の画像が作成できた。

無料だとテンプレートは限られるが、十分に使用できると感じた。

簡単に作成したのはこんな感じです。↓↓↓

![screencapture-theapplaunchpad-dashboard-ios-2020-03-24-07_27_48.png](https://qiita-image-stor

元記事を表示

Flutter iOS permission_handler 不要なパーミッションリクエストを削除する

[permission_handler](https://pub.dev/packages/permission_handler) は、Flutter用のアプリ権限プラグイン。 このプラグインは、権限をリクエストおよびチェックするためのクロスプラットフォーム(iOS、Android)APIを提供します。

このプラグインを導入すると、内部的にすべての権限のリクエスト処理があるためか、
アプリの送信を行うと、たくさんの権限のリクエストに関連した設定が不足として、has one or more issuesメールが送られきてしまいます。

加え、
**ビルドステータスが”バイナリが無効”に変更されました**
とされ、 App Store Connectへのアプリの送信が完了することができませんでした。

Missing Push Notification Entitlement あたりのみの場合であれば、無視できるのが通常ですが、これほどあるのはまずいようです。

使用しない権限の削除する方法について、[プラグインページ](https://pub.dev/packages/permissi

元記事を表示

FlutterでWidgetの位置とサイズを取得する

#FlutterでWidgetの位置やサイズを取得したい
検索しても地図上の位置を取得するのばっかヒットしてつらい

###GlobalKeyを使ってRenderBoxを取得する
[参考サイト:https://medium.com/@diegoveloper/flutter-widget-size-and-position-b0a9ffed9407](https://medium.com/@diegoveloper/flutter-widget-size-and-position-b0a9ffed9407)

“`dart:TestState.dart
//class TestWidgetは省略

GlobaleKey globaleKey = GlobalKey(); //←これが重要

class _TestState extends State{
@override
Widget build(BuildContext context) {
return Column(
children: [
E

元記事を表示

@Stateの値によって処理を制御する方法いくつか

# はじめに

`@State` で定義した値に変化が生じた際、それに応じて処理を挟み込むいくつかの方法です。

# 準備

デモ用に、文字列の末尾が3の倍数だったらアホになるExtensionを生やします。

“`swift
extension String {
var needsAho: Bool {
self.last
.flatMap { Int(“\($0)”) }
.flatMap { $0 % 3 == 0 } ?? false
}
}
“`

# 1. Computed Propertyを使う

– 一番シンプルな方法で、値に変化があると即時に反映されます

“`swift
struct ContentView: View {
@State private var inputText: String = “”
private var displayText: String {
inputText.needsAho ? “?” : “”
}

元記事を表示

AVSampleBufferDisplayLayerを透過する

特殊なケースですが、透過情報を持ったSampleBufferを`AVSampleBufferDisplayLayer`にenqueueしても、背景が透過されないことがあります。

これは`AVSampleBufferDisplayLayer`が透過できない訳ではなく、enqueueしたCMSampleBufferに透過情報があるかどうかのフラグが有効になっていないため起こる問題です。

次のようにSampleBufferに含まれるimageBufferに対して`kCVImageBufferAlphaChannelIsOpaque`フラグを落とせば透過が有効になります。

“`swift
imageBuffer.attachments.merge([kCVImageBufferAlphaChannelIsOpaque as String : false], mode: .shouldPropagate)
“`

元記事を表示

FlutterでSplashスクリーンを設定する

# SplashScreenとは?
アプリを起動させた時にアイコンが中央に表示される画面のことです。
これがあるだけで、大分アプリっぽくなりますよね?
![ダウンロード.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247084/fa4695d4-3440-e042-c182-d8f544b0da10.gif)
実装にはiOSとAndroidで異なる手順を踏まなくてはいけなくなるので、
それぞれについて説明していきます。

# iOS
iOSは比較的簡単な手順で済みます。
1. project/ios/Runner/Assets.xcassets/LaunchImage.imageset/配下に画像を保存
2. project/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.jsonを編集
以上の2つのみです。
### 画像を保存
この時、画像は1x, 2x, 3xの3つの倍率を用意しなければいけません。
カスタムで4xの倍率を用意し

元記事を表示

【iOS】AppStoreアプリ申請 Reject(リジェクト)例

アプリ申請をしてみたら以下のようなリジェクトがあったので、共有ついでに、対処方法ご存知の方いましたら、おまちしています。

ちなみに今回が初めての申請で、、とはいえとてもしょうもないアプリをテスト的に配布してみようかなと思ったので、コンテンツ不足とかは予測していましたが、、、

## リジェクト内容

“`
Hello,

We are unable to continue this app’s review because your Apple Developer Program account is currently under investigation for not following the App Store Review Guidelines’ Developer Code of Conduct.

Common practices that may lead to an investigation include, but are not limited to:

– Inaccurately describing an app or service
– Misl

元記事を表示

Kivy-iOS メモ

#Kivyとは?
python3 でiOSアプリやandroidアプリなどのUIを記述可能なライブラリ

#Kivy導入時に参考にした情報をまとめておく。
###導入
– https://qiita.com/sobassy/items/b06e76cf23046a78ba05
– https://github.com/kivy/kivy-ios
– https://qiita.com/tea63/items/c318ac7a1c09a78acab0

###pathの繋げ方(エラー出た人だけ)
-https://qiita.com/yoshinbo/items/8eb71d8015291ac6a3bc

元記事を表示

デフォルトTableViewサンプル集 【操作編】(swift)

# はじめに
[デフォルトTableViewサンプル集(swift)](https://qiita.com/am10/items/9bbbe794e88a96e5420e)これのセル選択や編集などの操作編です。

[サンプル集](https://github.com/adventam10/TableSample)

| 複数選択 | 複数選択 2 | 一部選択不可 | セル編集 |
| — | — | — | — |
| ![multi_selection](https://user-images.githubusercontent.com/34936885/77222594-0c131680-6b98-11ea-9b0d-06b3d6a0b718.png) | ![multi_selection_2](https://user-images.githubusercontent.com/34936885/77543310-dbf6ab00-6eea-11ea-96c1-df66da3069d5.png) | ![unselectable_parts](https://u

元記事を表示

swiftでキーボードの扱いが面倒なので「IQKeyboardManager」を使ったら神だった

swiftでテキストを入力したりするときにキーボードの操作もしなければいけないのがすごく面倒くさい。

何てったって

・キーボードを表示
・doneをクリックしたらキーボードを隠す

なのですが、これがよく忘れたりきちんと動かなかったり(俺が悪い)、ビルドしてから気づく。なんてことがあったので探してみたら速攻見つかりました。

## 使用感

簡単に使ってみましたがすごくいい。

## 参考
https://qiita.com/k-yamada-github/items/d4c791424ead414e3142

元記事を表示

SwiftUIのPreview実装をそのまま使って、Screenshot撮影を自動化する

# はじめに

SwiftUIのPreview機能を活用して、実装したPreview用のコードをそのままScreenshot撮影自動化に利用できる方法の紹介です。
わざわざテスト用のコードを実装することなく、既存の記述をほぼそのままCIとして組み込めるので、かなり簡単に対応できると思います。
これを使って、画像diffから意図しないUI変更を検知したり、簡単なUIカタログのようなものを作ることもできます。

# 完成形

先に完成形を記載しておきます

### Previewの実装

“`swift
struct ContentView_Previews: PreviewProvider {
// Previewableに適合したenumを定義して、previewプロパティで状態に応じたViewを返すだけです
enum Context: String, Previewable {
case red
case green
case blue

var preview: some View {

元記事を表示

AuthKeyを利用してコマンド(curl)でPushテストする

## メモ書き

簡単にPushテストできる方法をメモしておきます。

下記のスクリプト叩くだけ

“`
/bin/bash push_test.sh
“`

deviceTokenはこんな感じで事前に取っておく。

“`swift:AppDelegate.swift

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
var token: String = “”
for i in 0..

元記事を表示

iOSのiPhone端末別サポート状況(〜2020/3 & 〜iOS13)

頻繁にわからなくなるので、まとめました。
間違えありましたら、指摘or修正リクエストお願いします。

# 表

| 端末名 | iOS ver
(工場出荷状態) | iOS ver
(最終サポート) |
| —- | :—-: | :—: |
| iPhone | 1.0 | 3.0 |
| iPhone 3G | 2.0 | 4.0 |
| iPhone 3GS | 3.0 | 6.0 |
| iPhone 4 | 4.0 | 7.0 |
| iPhone 4S | 5.0 | 9.0 |
| iPhone 5 | 6.0 | 10.0 |
| iPhone 5c | 7.0 | 10.0 |
| iPhone 5s | 7.0 | 12.0 |
| iPhone 6 / 6 Plus | 8.0 | 12.0 |
| iPhone 6s / 6s Plus | 9.0 | – |
| iPhone SE | 9.0 | – |
| iPhone 7 / 7 Plus | 10.0 | – |
| iPhone 8 / 8 Plus | 11.0 | –

元記事を表示

Xcode11以降でfastlane matchで証明書を更新してはまったこと

Xcode11でfastlane matchで証明書を更新してから以下のようなエラーがでてビルドできなくなりました。

`Provisioning profile xxxx doesn’t include signing certificate yyyy`

## 原因
生成された証明書を確認してみるとCertificate Typeが以前は`iOS Development`だったものが`Development`に変わっていました。
Screen Shot 2020-03-24 at 10.53.00.png

違いが何なのか調べてみると、これまでは`iOS Developer`や`iOS Distribution`だったものが、Xcode11以降で`Apple Development`, `Apple Distrib

元記事を表示

iOS13のautomaticモーダルからfullScreenに横遷移する

![](https://i.imgur.com/C0oMcUd.gif)

こーゆう遷移をする方法を紹介します。

## 前置き

macOS 10.15.x
Xcode 11.2.x
iOS 13.x

画面遷移について、iOS13から通常のモーダル表示(下から表示)が、
ちょっと立体的な `.automatic` 表示になりました。

.automatic | .fullScreen
— | —
|

iOS12以前は通常が.fullScreenでしたね。
.fullScreenで表示したい場合は、
ちゃんと指定するようにしなければならなくなりました。

“`swift
let viewController = xxx
let navigationController = UINavigationController(rootViewControll

元記事を表示

flutterアプリを実機でビルドする時にハマったこと

# なんかビルドエラーがやたらめったらでる
環境を移動させてから、ライトニングtoタイプCケーブルが届くまで実機テストができなかったのですが、届いたので、試してみたのですが、どうもうまくいかないのですね。

“`
$ flutter run -d DEVICE_ID
.
.
.
Could not build the precompiled application for the device.

Error launching application on sticky-fingers.
“`

## 下記の方法でも解決できず

“`
$ flutter clean
“`

“`
$ pod install
“`

## 解決策
一旦cocoapodsを削除してから、再インストールすると、ビルドができました。

“`
$ pod deintegrate

$ pod install
“`

元記事を表示

OTHERカテゴリの最新記事