iOS関連のことを調べてみた

iOS関連のことを調べてみた
目次

Warning: cocoapods not installed. skipping pod install.の対処法

## 概要
すでにcocoapodをインストールしてあるのにも関わらず上記のエラーが表示された解決方法のメモです。

## 環境
– macOS (M1)Sonoma 14
– Android Studio Giraffe |2022.3.1
– Flutter 3.22.3
– Dart 3.4.4
– cocoapod をhomebrew経由でインストール済み

## 解決した手順
– M1で必要な手順らしい(要らないかも)
“`
sudo arch -x86_64 gem install ffi
arch -x86_64 pod repo update
arch -x86_64 pod install
“`
command + Tab + q などでAndroid Studioを完全に終了させる
以下のコマンドを実行する
“`
open /Applications/Android\ Studio.app
“`

## 参考
https://qiita.com/tetsukick/items/24ffa82f84682e0066d0
https://hack-it-iron

元記事を表示

〜SwiftUIとFirestore DatabaseとFirebase Storage〜

# はじめに
「-TENBIN-」という多数決アプリを作成しました!

このアプリでは画像を使いたいと思っていてやり方を探していたら、**Firestore Database**と**Firebase Storage**を組み合わせると出来そうだったのでその仕組みで実装してみました!

きっと誰かの役に立つと信じて、実際のソースコードを一部ですが公開します。
イメージを掴むための参考程度にご覧ください!

最後にアプリ紹介とかアプリアイコンについて書いてあるので、良かったら最後までご覧ください!

https://apps.apple.com/jp/app/tenbin/id6670417709

# ソースコード
– SearchPosterViewModel.swift
– `fetchPosters()`でFirestore Databaseのデータを全件取得できます。
– `searchPosters()`はsearchTextをキーワードとしてFirestore Databaseから検索ができます。

– FireStoreUploadModel.swift

元記事を表示

pod update で target overrides the `EXCLUDED_ARCHS[sdk=iphonesimulator*]`

# 背景
CocoaPods を使用しているプロジェクトで pod update を行った際に以下のエラーが発生しました。

“`
[!] The `MyApp [Debug]` target overrides the `EXCLUDED_ARCHS[sdk=iphonesimulator*]` build setting defined in `Pods/Target Support Files/Pods-MyApp/Pods-MyApp.debug.xcconfig’. This can lead to problems with the CocoaPods installation
– Use the `$(inherited)` flag, or
– Remove the build settings from the target.
“`

# 対応
`EXCLUDED_ARCHS` に設定されている値の前に `$(inherited)` を追加することで解決しました。

![スクリーンショット 2024-08-29 23.31.33.png](htt

元記事を表示

XcodeCloudのビルドに失敗する(sentry-cocoa)

## Xcode Cloudの実行環境
日付:2024/09/03
Xcode バージョン: Xcode 15.4(15F31d)
MACOS バージョン: macOS Sonoma 14.2(23C64)

## エラー内容
“`

Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`

Downloading dependencies

Installing AmazonIVSBroadcast (1.20.0)

Installing LicensePlist (3.25.1)

Installing Periphery (2.21.0)

Installing Sentry (8.33.0)

[!] Error installing Sentry

[!] /usr/bin/git clone https://github.com/getsentry/sentry-cocoa.git /Volumes/workspace/tmp/d20240902-6264-iu5rmu –template=

元記事を表示

SIGSEGV

iOSアプリの開発をしていると、クラッシュしたときにを見かけます。これはどういう意味なのでしょうか?

# SIGSEGVとは

**SIGSEGV**(”Segmentation Violation”の略)は、アプリが不正なメモリアクセスを行ったときにオペレーティングシステムから送られるシグナルです。具体的には、アプリがアクセスしてはいけないメモリ領域にアクセスしようとした場合に発生します。例えば、NULLポインタの参照や、メモリが確保されていない領域に書き込みを行おうとしたときです。このようなエラーが発生したときにクラッシュさせないと、システム全体の安定性が脅かされ、さらに深刻な問題(例えばデータの破壊やセキュリティの脆弱性)が引き起こされる可能性があります。そこでシステムはアプリを即座に停止させて、システムの健全性を維持しようとします。

iOSアプリの開発中に見かける似たようなエラーのキーワードとして、EXE_BAD_ACCESSやKERN_INVALID_ADDRESS、SIGNAL 11やSegmentation Fault: 11があります。EXE_BAD_ACCESSは

元記事を表示

SwiftUIでの柔軟な吹き出し作成とアニメーション化: Popoverから手作りまで

この記事についての詳細説明となります。

【SwiftUI】吹き出しを作りたい

# 1. SwiftUIでのPopoverを使った吹き出しの作成
この記事では、SwiftUIを使って吹き出しを作成する手法が解説されています。最初に紹介されているのは、popover(isPresented:arrowEdge:content:) を利用したシンプルな方法です。Popoverは、iOS開発者にとって便利なツールであり、簡単に使用できる点が魅力です。この方法を使うことで、ユーザーインターフェース内に簡単な吹き出しを表示させることができます。

具体的なコードとしては、HStack内に配置されたText要素に対して、popoverメソッドを適用しています。このpopoverメソッドには、表示を制御するためのブール型の状態変数と、吹き出しをどの方向に表示するかを指定するarrowEdge、そして表示するコンテンツを指定するクロージャが渡されます。これにより、ユーザーがボタンを押すと、指定された方向に吹き出しが表示される仕組み

元記事を表示

【SwiftUI】Toggleのあるセルを行全体タップで値を切り替える方法

## こうする
“` swift
@State var isOn = false
~~~

Toggle(isOn: $isOn, label: {
Text(“Toggle Test”)
})
.contentShape(Rectangle())
.onTapGesture {
self.isOn.toggle()
}

“`

`.contentShape(Rectangle())` と `.onTapGesture` を一緒に書くことで、
行全体タップしたときに、Toggleの値を切り替えることができる。
行の中の空白部分をタップしてもイベントを拾うようになる。

### 環境
* Xcode 15.4

### 参考
https://stackoverflow.com/questions/57191013/swiftui-cant-tap-in-spacer-of-hstack

元記事を表示

【個人開発】ティアリストを作成するアプリを作ってみた話

## はじめに

最近、YouTubeで動画を見ていると、ゲームやカードなどを『ティア』というランク形式で分類する動画をよく見かけます。この形式は情報を簡潔に伝えられるため、とても便利だと感じました。そこで、自分でも簡単にティアリストを作成できるアプリを作ってみることにしました。

### 開発したアプリ

本題に入る前に、まずは開発したアプリをご紹介します。このアプリは現在、App Storeで公開中です。気に入っていただけたら、レビューしていただけると幸いです。

[App Storeのリンク](https://apps.apple.com/jp/app/%E3%83%86%E3%82%A3%E3%82%A2%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC/id6667102590)

[](http

元記事を表示

ExpandableListView ≒ UITableView

Android の [ExpandableListView](https://developer.android.com/reference/android/widget/ExpandableListView) って見た目をほぼ iOS の [UITableView](https://developer.apple.com/documentation/uikit/uitableview) にできるよねって話です。

左:Android (ExpandableListView)、 右:iOS (UITableView)
![cropped.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3853334/35b99f80-78c1-95a3-2993-7ec8a1e0430e.png)

iOS の UITableView は、特に難しいことをしなくてもセクション + 行 というのが作れますが、Android の場合は、ExpandableListView 用のアダプターを作成する必要があります。
ちょっぴり

元記事を表示

【Flutter】Android / iOSアプリの2回目以降のリリース(アップデート)手順

## はじめに

今回は、Android/iOSアプリの初回リリースではなく、2回目以降のリリース(アップデート)手順について記載します。というのも、リリース(アップデート)を行う度に、いつもやり方を忘れてしまうので、知見として残して、いつでも参照できるようにしたいと思いました。ぜひ、いいね👍・ストックして参照いただければと思います。

## 開発環境

– Flutter
– iOS/Androidアプリ開発

## 共通の手順

アプリのリリース(アップデート)を行うには、pubspec.yamlを編集して、`アプリのバージョン`、`ビルド番号`を変更(カウントアップ)します。

“`diff
– version: 1.0.2+3
+ version: 1.0.3+4
“`
– アプリのバージョン:1.0.x
– ビルド番号:+以降の数字

pubspec.yamlを変更後、ファイル保存をし、以下を実行します。

“`
flutter clean
flutter pub get
“`
これ以降は、Android/iOSそれぞれで必要な手順になります。

## Andro

元記事を表示

iOS来月先月を取得する方法

来月先月を取得する方法です

# 完成イメージ
![sumplee.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274615/39426230-ccec-4d7c-4637-1e2849dfee30.gif)

DateComponentsを使って現在の年月を表示する

https://qiita.com/yuta317/items/e6bbf95eb3d303e030dd

こちらの記事の続きになります。

# 実装方法
“`NextLastDateViewModel.swift
class NextLastDateViewModel: ObservableObject {
@Published var text: String = “”
var component: DateComponents

init() {
component = Calendar.current.dateComponents(in: TimeZone.current,

元記事を表示

ワンクリックで動画をかんたんGIF変換のショートカット

変換後、GIFファイル保存前にクイックルックで確認できます。

https://x.com/maochanz/status/1829755550542021099

30 fps狙い の width 480 にしていますが、当然ショートカットなので好きに変更できます。

GIFサイズはやや大きいか。

作成したショートカットはメニューバーにも入れることができます。

![sc 2024-08-31 at 16.13.17.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/588914/f61f554e-60f4-b39d-4543-b794d6f05a11.gif)

“`
ショートカットクリック

読み込み元動画ファイルの選択

↓ GIFへ変換

クイックルックによるプレビュー

書き出し先フォルダの選択

GIFファイル書き出し保存
“`
「ワンクリ

元記事を表示

SwiftUIでプレビュー時にprivateな変数にアクセスする方法

SwiftUIでビューを作成する際、@Stateを使ってビューの状態を管理することが多いです。しかし、@State変数は通常privateとして扱われるため、プレビュー時に直接アクセスして変更することができません。この記事では、privateな@State変数にアクセスして、プレビュー時に表示内容や表示状態を変更する方法を紹介します。

**問題の背景**

通常、@State変数はprivateであり、外部から直接変更することができません。そのため、プレビュー時に特定の状態を再現したい場合でも、その状態にアクセスできず、手動で状態を変更しなければなりません。

例えば、以下のようなコードがあるとします。

“`
struct MainView: View {
@State private var isTextVisible: Bool = false
@State private var displayText: String = “Default Text”

var body: some View {
VStack {

元記事を表示

クイズをコレクションしながら楽しく学べる!Notion連携の新アプリ『Quizionary』で知識を深めよう! ~覚えたいことが多すぎて復習する時間がないあなたに~

|![quizView.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260695/5431b470-7068-2c57-c528-bbbe73cecafe.gif)|![addQuizView.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260695/60221792-c9e2-54e8-2dd5-8e90b6e5f481.gif)|![collectionView.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260695/eaf59ba8-252b-c1fb-0079-fea7d82a227d.gif)|
|–|–|–|

大人になるに連れていろんな分野の知識が必要だけれど、覚えている暇がない…

Notionにメモをとっているけど、メモするだけで定期的に復習する機会がない…

そんな問題を解決するために、「Quizio

元記事を表示

日本時間でデータを簡単に確認!1NCEユーザー向けのIoT Lighthouseアプリを使ってみた

IoTデバイスのデータ使用量を把握するのって、結構面倒じゃないですか?

特に1NCEのポータルを使ってデータを確認しようとすると、情報が大雑把だったり、いちいちログインしなければならなかったり、ちょっとしたことがストレスになりがちです。それに、ポータルで表示される時間が現地時間じゃないと、どの日のデータなのかも分かりにくくなってしまいますよね。

iOSアプリ限定ではあるんですが、最近1NCEのAPIに対応した**IoT Lighthouse**というものを見つけたので、今回使ってみたいと思います。

このアプリを使えば、もっと手軽に、しかも現地時間でデータ使用量を日毎に確認できるんです。

https://apps.apple.com/jp/app/iot-lighthouse-for-1nce/id6502685366

## 簡単にデータをチェックしたい人にピッタリのアプリ

IoTデバイスのデータ使用量を毎日チェックしたい。でも、いちいちポータルにログインして、複雑なインターフェースを操作するのは面倒。そんなニーズにぴったりなのが、**IoT Lighthouseアプリ**で

元記事を表示

【iOS】CallKitでプロジェクト名とは別のアプリ名を表示させる方法

## はじめに
この記事では、iOS14以降でCallKitのUIに表示させるアプリ名を設定する方法を説明します。

過去の記事では`CXProviderConfiguration.init(localizedName:)`で以下の画像の赤枠の位置に表示されるアプリ名を設定していましたが、この方法はiOS14以降ではDeprecatedになっています。
この記事ではiOS14以降でこの部分の表示を変更する方法を説明します。

![IMG_1251.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3768381/4160b281-7a7f-1e30-4162-8ffaa4a56075.png)

今回初投稿になります。至らない点、誤っている点がありましたら、コメントでご指摘いただけると幸いです🙇

## 遭遇した問題
前述したように、localizedNameがiOS14でDeprecatedになりました。

“`Swift
let providerConfiguration = CXProviderC

元記事を表示

[iOS]1年に1回のadhocの証明書更新を毎回忘れるので手順をまとめました

# はじめに
こんにちは、開発部のCLです。
今回はadhocの証明書更新手順についてまとめました。

adhocの有効期限は1年に1回必要なんですが、
ややこしいし、期間が空きすぎて毎回忘れてしまいます…。
備忘録として手順を残しておきます。

まず、ざっくりと手順は以下の通り。
| ステップ | 作業場所 |
|:–|:–|
| 1. CSRを作成 | あなたのMac(※以前作成したCSRが残っていれば作成不要) |
| 2. CSRからCERを作成 | Apple Developer |
| 3. CERからProvisioning Profileを作成 | Apple Developer |
| 4. Provisioning Profileをアプリに設定 | Xcode |
| 5. Ad Hoc作成 | Xcode|

順に追っていきます!

# 1.csrの作成(以前作成したcsrが残っていれば作成不要) @ Mac

:::note info
超ざっくり解説
CSRとは各々のmacに発行される証明書の作成に必要なファイル。他のmacでは使え

元記事を表示

【Swift】Swift6移行について

## はじめに
私自身Swift5でSwiftデビューしているのでSwiftのメジャーバージョンのアップデートが正直どのようなものか想像がついていません。なのでまずは4から5にアップデートがあった際は何が起きたのか遡ってみようと思います。

今回は詳細な移行方法や変更点等は調査できていないのでまた別でまとめるとします。

## Swift4 → 5では
2019年当時の記事を漁ってみました。過去の中では破壊的変更も少なく大人しめなアップデートだったようです。移行に関する情報も結構簡素ですね。

https://www.swift.org/migration-guide-swift5/

https://gihyo.jp/dev/serial/01/swift-introduction/0049

## Swift6への移行
結論、Swift5はしばらく使えそうなので現状維持も可能です。ですが生産性、安全性、保守性の観点や開発者・デバイスの体験向上の為にもSwift6へ移行していくのが良いと思います。

> Swift 6は、デベロッパの生産性とコードの明確さの向上を目的とした新しい機能

元記事を表示

iPhone にあるゲームパッドを無線接続した際のメモ: アローンの「Switch用 スーパーミニコントローラー(ライトブルー ALG-NSWCSMLB)」

## はじめに
以下の製品を入手したのですが、こちらを iPhone に無線接続して、ゲームパッド/キーボードとして動作させてみた時の話を記事に書きました。

●Switch用 スーパーミニコントローラー ライトブルー ALG-NSWCSMLB | 株式会社アローン
 https://140-041.co.jp/product/alg-nswcsmlb

https://x.com/youtoy/status/1823245135993532521

ちなみに買った 1番の理由は「なんとなく面白そうだったから」で、その際に思い浮かべた用途としては、ゲーム用というよりはモノ作り系の展示などで使うという方向でした。

### 記事を書いた理由
このコントローラーは、以下のように様々なデバイスと有線/無線での接続ができる製品と書かれています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/70b8953e-a4ce-d1b5-edee-c11618db98c7.png)

この後

元記事を表示

モバイルアプリのログを収集して「何が起きたかわからない」から脱却しよう

モバイルアプリの詳細ログをNew Relicに統合する方法をご紹介します。New Relicがデフォルトで取得する情報に加えてログを活用してトラブルシュートを効率化しましょう。

# 重要性を増すユーザー体験の把握(RUM)

日々の私生活や会社生活においてデジタルサービスが必要不可欠になっている昨今、デジタルサービスの提供側としてはサービスが止まったり、操作が重いなどのユーザーの体験を損なうような問題は迅速に原因を突き止め、解決する必要があります。

その際に重要になるのが、ユーザーがどのような操作をしてどのような体験をしているかを正確に把握することです。これにより問題事象の再現や原因の究明ができ、解決を早めることができます。

ユーザーの体験の把握、それをサポートするのがRUM(リアルユーザーモニタリング)です。オブザーバビリティプラットフォームをSaaS提供しているNew RelicではRUM機能として、PCやモバイルのブラウザやモバイルアプリのWebViewとして動作するアプリケーションからユーザーの体験を収集するNew Relic Browser、およびiOSやAndroid

元記事を表示

OTHERカテゴリの最新記事