iOS関連のことを調べてみた2023年07月06日

iOS関連のことを調べてみた2023年07月06日
目次

File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.aエラーについて

# 問題発生
バグの原因調査のため、gitから二ヶ月前のコードをチェックアウトしてビルドしたところ表題のエラーが発生した。

# 原因
Xcode14.2->Xcode14.3で’libarclite_iphoenesimulator.a’が削除されたことが原因で、
Xcode14.2でビルドしていた時のコードが’libarclite_iphoenesimulator.a’に依存していたことによってエラーが発生した。

# 解決方法
Podfileのpost_installを以下のようにする
“`ruby
post_install do |installer|
installer.generated_projects.each do |project|
project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[‘IPHONEOS_DEPLOYMENT_TARGET’] = ‘13.0’
end

元記事を表示

【SwiftUI】Viewを回転アニメーションさせる方法

# はじめに
SwiftUIでViewを回転アニメーションさせる方法を紹介します。この記事を読むと、SwiftUIでViewを回転アニメーションさせる方法を理解できます。

# 作るもの
SF Symbolsを回します。

# やり方
“`swift
import SwiftUI

struct ContentView: View {
@State private var isAnimating = false

var body: some View {
Image(systemName: “fanblades”)
.resizable()
.scaledToFit()
.frame(width: 160, height: 160)
.foregroundStyle(.cyan

元記事を表示

【Xcode】Unable to process request – PLA Update available

# はじめに
Archiveをしようとしたらエラーが出ました
解決方法を記録しておきます

# エラー
“`
Unable to process request – PLA Update available
You currently don’t have access to this membership resource. To resolve this issue, agree to the latest Program License Agreement in your developer account.
“`

“`
No signing certificate “¡OS Distribution” found
No “¡OS Distribution” signing certificate matching team ID “XXXXXXXXX” with a private key was found.
“`

![スクリーンショット 2023-07-04 1.31.47.png](https://qiita-image-store.s3.ap-northe

元記事を表示

アプリ広告収益10倍達成!222円から2300円への道のり

## アプリ広告収益をあげたくなった
当方、仕事をやめて暇になってしまっため、個人アプリを伸ばそうかと思い重い腰をあげました。
### 4月時点の収益
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633771/2ad0a884-d075-6783-819c-7f04bcc60f4c.png)

### 6月時点の収益
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633771/2bb0576e-3bd9-8786-7fd8-25e01ff73f63.png)

今回は、この収益**収益10倍**を達成するために行ったこと、今後行っていきたいことをつらつらと書き記します。

## 今まで作ったアプリの伸び率を調査
当方はiOSアプリ開発をガッツリやっていたので、個人でもアプリを5つほど出していました。
見て欲しいのは「ユニット数」です。
![image.png](https://qiita

元記事を表示

ChatGPTとGASを用いたiOSアプリを作成してみた。(Qiita × Fast DOCTOR Health Tech Hackathonの備忘録)

「Qiita × Fast DOCTOR Health Tech Hackathon」に参加して、SwiftとGASでChatGPTを用いたiOSアプリを作成したのですが、ただ感想を書いてもつまらないので、
開発中に引っかかったポイント(SwiftとGASを用いたアプリ開発で気をつけたい点)と、作成したGASやChatGPTを用いたiOSアプリを作る上で、汎用性の高いSwiftの関数をご紹介します。

開発には、GASとXcodeを使用しました。

# 1. SwiftとGASを用いたアプリ開発で気をつけたい点
## 1.1. 文字の型に気をつける
swiftからGASにリクエストして、スプレッドシートなどを参照する際に、数字を扱う場合、swiftのリクエストは文字列型ですが、GASが取得してくる数字は数値型なので、GASがスプレッドシートなどから取得した値を文字列型に変換してからswiftのリクエストを処理する必要があります。

## 1.2. 日本語を扱う場合、エンコードとデコードが必要
swiftからGASに日本語を送って処理を行う場合、swiftで日本語をエンコードしてGASに

元記事を表示

【SwiftUI】画像を透過グラデーションにする

# はじめに
画像を段々透明にするコードを書く機会があったので記録しておきます

# 素材
3年前に撮った川の写真です
![スクリーンショット 2023-07-03 23.06.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/d72dfc3d-3116-85b8-a5fc-7405fdd76723.png)

# 実装
“`swift
import SwiftUI

struct ContentView: View {
var body: some View {
Image(“sample”)
.resizable()
.aspectRatio(contentMode: .fit)
.mask(alignment: .top) {
LinearGradient(
gradient: .init(colors: [.w

元記事を表示

【SwiftUI】Viewを円状に配置する方法

# はじめに
この記事では、Viewを円状に配置する方法を紹介します。

# 作るもの
色のついた7つの円を円状に配置します。
![スクリーンショット 2023-07-03 21.50.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366249/64eb026d-fdde-45a9-0a99-7a35c7bb3f8e.png)

# やり方

## コード全体
“`swift
import SwiftUI

struct ContentView: View {
private let colors = [Color.red, Color.orange, Color.yellow, Color.green, Color.blue, Color.purple, Color.pink]

var body: some View {
ZStack {
ForEach(0 ..< colors.count, id: \.self) { i

元記事を表示

React Nativeのキャッシュクリアってこれでいい?

React Nativeのアップデートする時にキャッシュで悩まされる事が多いのでクリアするコマンドのまとめです。

## watchman

“`bash
watchman watch-del-all
watchman shutdown-server
“`

## node_modules周り

“`bash
rm -rf node_modules yarn.lock
yarn cache clean
“`

## ネイティブ周り

“`bash
rm -rf ios/Pods ios/Podfile.lock ios/build
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf android/build
“`

## react-native start

“`bash
react-native start –reset-cache
“`

他にもクリアするものがあれば追記したいと思います。(Androidってこれだけでよかったっけ?)

元記事を表示

連絡帳アプリにある特定のアルファベットの連絡先に直接ジャンプできる機能を実装する(sectionIndexTitles)

## 作成するもの
連絡帳アプリにある特定のアルファベットの連絡先に直接ジャンプできる機能を実装していきます。
これを実現するためにUITableViewDelegateプロトコルのメソッドで適宜されている`sectionIndexTitles`を用いてテーブルビューの右側に表示されるセクションインデックスのタイトルを作成します。

### 完成アプリ
![RPReplay_Final1688211858.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356150/bec2b359-3d9f-f1a4-cff0-dc876899a694.gif)

### 実装

今回作成したTableViewControllerを記述しています。
“`swift:ContentView.swift
struct ContentView: View {
var body: some View {
VStack {
TableViewController { item

元記事を表示

【Xcode】補完を意図的に表示させる

# はじめに
Xcodeの補完を見たいのに消えちゃった、、、
補完で引数を全部見たい、、、

みたいなことよくありますよね

たまたま、補完を意図的に表示させる方法を見つけたので紹介します。

![tst49-0ikjj.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/32aa2435-487e-228f-3b37-f33b8c78b3d0.gif)

# やりかた
① 補完を表示させたい箇所にカーソルを合わせる
② 「esc」を押す

# おわり
もっと早く知りたかった、、

元記事を表示

【App Store】レビューしてもらうためのURLの作り方

# はじめに
アプリをリリースしたら、ユーザーから評価をもらいたいですよね。この記事では、アプリをレビューしてもらうためのURLを用意する方法を紹介します。
まず、アプリのレビューをしてもらう方法には、2種類あります。

– レビューのダイアログを表示する
– App Storeのレビュー画面に遷移する

一つ目の方法は、アプリ内でレビューのダイアログを表示する方法です。この方法では、ダイアログを出す回数に制限があるため、ユーザーに能動的にレビューをしてもらう場合には向いていません。
二つ目の方法は、App Storeのレビュー画面に遷移する方法です。この方法では、ユーザーに能動的にレビューをしてもらう場合に向いています。
この記事では、二つ目の方法を紹介します。

# レビュー画面に遷移するURLの作り方
レビュー画面に遷移するURLは、以下のようになります。

“`
https://itunes.apple.com/jp/app/id{アプリのID}?mt=8&action=write-review
“`

## アプリのIDの調べ方
アプリのIDは、App Store Con

元記事を表示

【Flutter】Flutterで開発されたアプリを見分ける方法【iOS】【Android】

# Flutter製のアプリが増えてきた実感
最近ご飯を食べにいった飲食店で、Flutterで開発されたアプリが使われているのを発見しました。Flutterアプリの開発も行なっている私にとっては喜ばしいことです。

この他にも最近はFlutterを活用したアプリの例はかなり増えてきている印象があります。アプリストアで適当にインストールしてみると、結構な確率でFlutterが使われているとわかります。

# 見分け方はとっても簡単
見分ける方法はとっても簡単なのですが、意外と知られていないかもしれません。

「このアプリ、Flutterで作りましたか?それともswiftですか?」
といった質問を頂いたことがあったので、見分け方の需要がもしかしたらあるのかもしれないと思い、今回まとめてみました。

## 1. アプリの縦に長い画面を二本指でスクロールする
「このアプリ、Flutter製かな?」と気になったら、そのアプリの画面を二本指でスクロールしてみてください。Flutter製の場合、なんとスクロール速度が二倍になります!

スクロール速度が早くなったらFlutter、そうでなければネイ

元記事を表示

【App Store】OpenAI APIを使う時の注意点

# はじめに
先日、App StoreでOpenAI APIを使ったアプリを提出したところ、リジェクトされました。この記事では、その原因を紹介します。

# リジェクト内容
リジェクトされたときのメッセージは以下の通りです。

## 原文
“`
Guideline 3.1.1 – Business – Payments – In-App Purchase

In-app purchase gives developers the flexibility to support a variety of business models in their apps. However, your app unlocks or enables additional functionality with mechanisms other than the App Store, which is not appropriate under App Store Review Guideline 3.1.1.

Specifically,
– your app uses OpenAI API ke

元記事を表示

【SwiftUI】Viewを透過画像として保存する(iOS16)

# はじめに
https://qiita.com/SNQ-2001/items/0c88b01bf63322fbaa04

昨日、【SwiftUI】Viewを画像として保存する(iOS16)という記事を書きました。
今回は昨日の応用版の記事です

Viewがない場所は透過させます。

# 前提
画像を保存するためにはユーザーからの許可が必要です。
リクエストを表示させるために、以下のキーをInfo.plistにセットします
“`
Privacy – Photo Library Usage Description
“`

![スクリーンショット 2023-06-30 20.44.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/40db01c7-86ef-f713-af53-44a02ad8b0fd.png)

# 実装
“`swift
import SwiftUI

struct ContentView: View {
@Environment(\.displayScal

元記事を表示

iOSのNewsアプリを日本で見る方法

# まず
皆さんは”Apple純正”のNewsというアプリをご存じですか?
地域設定をアメリカにしてないとみることができないので知っている人は少ないんじゃないかと思います。
日本でもNewsが見たい!!!!!ということで、アプリを表示する方法をまとめました。
# 準備するもの
脱獄されたデバイス(脱獄は自己責任で!!)
Filza File Manager
# Tweakを使ったNewsの表示
「NewsOfTheWorld」というTweakをダウンロードして、再起動…
あれ?表示されない…!?
筆者の環境が悪いのでしょうか…表示されませんでした。
# Filzaを使用して無理やり表示
①まず、Filzaを開いて、rootフォルダ(左上が押せなくなるまで)に行きます。
ここから、/Applications/News.app/MCRestrictions.plistを開きます。
iOS + Firebase のAppleAuth で、Testflightだと大丈夫なのに審査でダメだと言われる時の対処法

## 概要

個人開発でモバイルアプリを作成している時、
最後の審査まで辿り着いてから、
たくさんいろんなデバッグが発生するのはもうしょうがないことだと思いますが、
あと少しのところが一番大変なので、できるだけ審査をスパッと通過したいですよね。

今回はたぶん良くあるかと思いますが、
モバイルアプリ(iOS)にApple ID によるAuthを実装し、
それが動かないと審査で言われてしまった時の(一つ考えられる)対処法について備忘録的に書いておきます。

## 症状

TestFlightでは問題なくAppleIDを使用したログインはできていましたが、
審査で不可という結果が通知され、

“`
2.1.0 Performance: App Completeness
“`

と言われてしました。

## 解決策

ここや
https://firebase.google.com/docs/auth/ios/phone-auth?hl=ja&authuser=0&_gl=1*n8dky1*_ga*NzU3NDA5OTg5LjE2ODgxODg1NTk.*_ga_CW55HF8NVT

元記事を表示

Unity製Android/iOSアプリのGUIを自動テストする仕組みを作ってみた

# 簡単にまとめると
unityで複数プラットフォーム開発をしている!
その中にmobileアプリもあって、Android/iOS共通のコードで動いている!
みたいな状態で、モバイルアプリの自動テストを導入してみたよって話です
メモ書き程度に残そうと思い書きました。

# プロダクトについて
自分がかかわっているSTYLYというXRプラットフォームはUnityで作られています。
クロスプラットフォームでモバイルのほかにWebや多数のHMDに対応しています。
https://gallery.styly.cc/about/ja
これらのことを踏まえてお読みください

# 事の始まり
世の中では、モバイルアプリの自動テストができるツールが最近多く出てきましたね
* Appium
* Magic Pod
* Autify for Mobile
* などなど

これらの自動テストツールは大きくふたつのUI操作方法があります
1. UI要素を指定して操作する
1. 画像検知で操作する

両方ともいい場面もありますが、欠点を抱えています
### UI要素を指定して操作する場合の欠点
####

元記事を表示

【分かりやすく解説】iOSのライブラリのChartsのコード

###### 一個一個コードをスクショ付きで解説していきます。
###### 一番下にコードも貼っておきます。

# 『.rightAxis.enabled = true』と書くと

![](https://storage.googleapis.com/zenn-user-upload/13aebd7d915a-20230630.png)

#### グラフの右側に数字が表示されます。

# 『.rightAxis.enabled = false』と書くと

![](https://storage.googleapis.com/zenn-user-upload/4a1ca53be22c-20230630.png)

#### グラフの右側に数字が表示されません。

# 『.labelPosition = .insideChart』と書くと

![](https://storage.googleapis.com/zenn-user-upload/b87579772728-20230630.png)

#### グラフの内側に数字が表示されます。

# 『.labelPosition =

元記事を表示

iOSシミュレーターで画面収録を撮り、GIF化する方法

# はじめに
iOSシミュレーターで画面収録を撮り、GIF化する方法を紹介します。

# やり方
## 画面収録
1. オプションキーを押しながら、シミュレーター右上の3つのボタンのうち真ん中のボタンをクリックします。
2. 画面収録を終えるには、再度3つあるボタンの真ん中のボタンをクリックします。

## GIF化
1. 画面収録を終えると、シミュレーター右下に画面収録のプレビューが表示されます。
2. プレビューを右クリックすると、メニューが表示されるので、そこから「Save as Animated GIF」を選択します。これで、GIF化された画面収録が保存できました。
![スクリーンショット 2023-06-30 21.56.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366249/a5cc3ffd-2bb2-5cab-7dc9-429e5220a1a2.png)

# おわりに
iOSシミュレーターで画面収録を撮り、GIF化する方法を紹介しました。シミュレーターの機能が充実していて

元記事を表示

【SwiftUI】Viewを画像として保存する(iOS16)

# はじめに
Viewを画像として保存する時の方法を記事にします

# 前提
画像を保存するためにはユーザーからの許可が必要です。
リクエストを表示させるために、以下のキーをInfo.plistにセットします
“`
Privacy – Photo Library Usage Description
“`

![スクリーンショット 2023-06-30 20.44.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/40db01c7-86ef-f713-af53-44a02ad8b0fd.png)

# 実装
“`swift
import SwiftUI

struct ContentView: View {
@Environment(\.displayScale) private var displayScale

var body: some View {
VStack(spacing: 50) {
sampleVi

元記事を表示

OTHERカテゴリの最新記事