Swift・iOS

Swiftを中心に学んだことを記録に残すブログです。技術に関係ない記事もたまに書いています。

【SwiftUI】WKWebViewを使えるようにする

はじめに 開発環境 実装部分 おわりに 参考 はじめに UIViewRepresentableによって、SwiftUIのアプリでもWKWebViewを使えるようにしてみました。 ※2021/03/23 追記 SFSafariViewControllerをSwiftUIで使用する方法について、以下記事にしました。 【SwiftUI…

【SwiftUI】"No exact matches in call to initializer"の原因

はじめに 開発環境 本題 エラー発生時の実装内容 エラー内容に関して 原因 おわりに はじめに 最近SwiftUIに触る機会があるのですが、【SwiftUI】Listを表示する - Swift・iOSの内容を実践している時にケアレスミスで表題のエラーが発生しました。原因につい…

【SwiftUI】ログイン画面の実装まとめ

はじめに 開発環境 実装イメージ 実装 おわりに 参考 // はじめに これまで以下3つのログイン機能の実装をしてきました。今回は、それぞれの記事の内容を全て反映した全体のコードを記載します。 ・【SwiftUI】IDとパスワードでログインする画面を実装する -…

【SwiftUI】Sign In with Appleの実装

はじめに 開発環境 実装 設定手順 コード メールアドレスとフルネームの取得条件である「初回」の定義 おわりに 参考 はじめに 【SwiftUI】LINEログインの実装 - Swift・iOSの続きです。今回はSign in with Appleを実装していきます。 ※ログイン機能について…

【SwiftUI】LINEログインの実装

はじめに 開発環境 実装 設定手順 コード おわりに 参考 はじめに 【SwiftUI】IDとパスワードでログインする画面を実装する - Swift・iOSの続きです。今回はLINEログインを実装していきます。 ※ログイン機能については以下の記事でも取り上げています。 ・【…

【SwiftUI】IDとパスワードでログインする画面を実装する

はじめに 開発環境 実装 実装方針 コード おわりに 参考 はじめに IDとパスワードでログインする画面をSwiftUIで実装してみました。 ※ログイン機能については以下の記事でも取り上げています。 ・【SwiftUI】LINEログインの実装 - Swift・iOS ・【SwiftUI】S…

【SwiftUI】Listを表示する

はじめに 開発環境 手順 リストを表示 リストにタイトルを追加 セルに複数の内容を表示する おわりに 参考 はじめに UITableViewのUIを、SwiftUIではListで実装します。今回はListを表示する方法について記載します。 開発環境 ・macOS Catalina 10.15.7 ・X…

【SwiftUI】タブ(TabView)を追加する詳細な手順

はじめに 開発環境 手順 プロジェクトを作成 TabViewを追加 タブのアイコンとタイトルを変更する 全体のコード おわりに 参考 はじめに UIKitではUITabBarでタブを表示していましたが、SwiftUIではTabViewを使います。私はSwiftUIを触る頻度がそこまで高くな…

【fastlane】TestFlightにアプリをアップロードする

はじめに 環境 本題 おわりに 参考 はじめに TestFlightにIPAファイルをアップロードする方法に関して記載します。 環境 ・macOS Catalina 10.15.7 ・Xcode 12.2 ・CocoaPods 1.10.0 ・zsh 5.7.1 ・bundler 2.1.4 ・fastlane 2.170.0 ・Visual Studio Code 1…

【Firebase Crashlytics】コンソールにクラッシュ情報が表示されない原因と対処法

はじめに 環境 前提 原因 対処法 クラッシュ情報を送信する具体的な手順 おわりに 参考 はじめに FirebaseのコンソールでFirebase Crashlyticsを有効にすると、アプリをビルドして意図的にクラッシュさせるよう求められます。ただ、なぜかクラッシュさせても…

【fastlane】Firebase CrashlyticsにdSYMをアップロードする

はじめに 環境 本題 おわりに 参考 はじめに Firebase CrashlyticsにdSYMをアップロードする方法に関して記載します。 ※Firebase Crashlyticsの導入方法に関しては以下を参照してください。 Get started with Firebase Crashlytics 環境 ・macOS Catalina 10…

【fastlane】テスト端末を追加したら自動でProvisioning Profileを作成しなおす

はじめに 環境 本題 おわりに 参考 はじめに 新たにテスト端末をApple Developerに登録した場合、再度Provisioning Profileを作成し直す必要がありますが、面倒なのでfastlaneで自動化できないか調べてみました。 (matchで証明書を管理している前提の方法で…

【fastlane】CocoaPodsでライブラリ管理しているアプリ(xcworkspaceファイル)をビルドする

はじめに 環境 手順 before_allにcocoapodsを追加 ビルドステップでworkspaceを指定 手順の内容を反映したFastfileの一例 おわりに 参考 はじめに CocoaPodsでライブラリ管理しているアプリをビルドする手順を記載します。 環境 ・macOS Catalina 10.15.7 ・…

【fastlane】レーンごとに設定したSlackの投稿処理をまとめたい

はじめに 環境 本題 おわりに 参考 はじめに 今回は、Slackへの投稿処理をレーンごとに設定することをやめたい(すっきりさせたい)というモチベーションのもと、調べたり試したことを記録に残します。 環境 ・macOS Catalina 10.15.7 ・Xcode 12.2 ・bash 3…

【fastlane】エラー時にSlackへ投稿する

はじめに 環境 本題 おわりに 参考 はじめに fastlaneを試す中で、「記事にするまでもないかもしれない・・・でも、自分が試したことは小さなことでも記事に残しておきたい」ものがいくつかあるのですが、今回はそれです笑 今回は、エラー時にSlackへ投稿す…

【fastlane】"The provided entity includes a relationship with an invalid value"の対処に手間取った話

はじめに 環境 本題 前提 手間取ったエラーに関して 解決方法 おわりに 参考 はじめに 【fastlane】アプリの審査に必要な情報をApp Store Connectへアップロードする - Swift・iOSの手順を実施する中で発生したエラーの対処に手間取ったので記録に残します。…

【fastlane】アプリの審査に必要な情報をApp Store Connectへアップロードする

はじめに 環境 手順 deliverを初期化 metadataを編集 Fastfileを編集 コマンドを実行 おわりに 参考 はじめに deliver - fastlane docsを参考に、アプリの審査に必要な情報をApp Store Connectへアップロードする方法を説明します。 環境 ・macOS Catalina 1…

【fastlane】バージョンとビルド番号を自動で変更する

はじめに 環境 手順 increment_version_numberとincrement_build_numberを追加 コマンドを実行 おわりに 参考 はじめに increment_version_number - fastlane docsとincrement_build_number - fastlane docsを参考にしながら、fastlaneの実行時にバージョン…

【fastlane】環境変数の設定

はじめに 環境 手順 Fastfileに環境変数を追加 不要な設定を削除 おわりに 参考 はじめに Continuous Integration - fastlane docsに記載のある、環境変数の設定に関して説明します。 環境 ・macOS Catalina 10.15.7 ・Xcode 12.0.1 ・bash 3.2.57 ・bundler…

【fastlane】アプリをApp Store Connectへアップロードする

はじめに 環境 手順 アプリをビルド Fastfileにリリース用のlaneを追加 コマンドを実行 App Store Connectへアプリをアップロード Fastfileに"upload_to_app_store"と"slack"を追加 コマンドを実行 おわりに 参考 はじめに 【fastlane】証明書を管理する - S…

【fastlane】証明書を管理する

はじめに 環境 手順 プライベートリポジトリを作成 App IDを作成 matchを初期化 Matchfileを編集 証明書とプロビジョニングプロファイルを作成 Signingの警告が出てしまう場合 証明書とプロビジョニングプロファイルの更新 開発メンバーのPCに証明書をインス…

【fastlane】テストを実行して結果をSlackに投稿する

はじめに 環境 手順 テストを実行 Fastfileを編集 テストを実行 テスト結果をSlackに投稿 アプリを作成 "Webhook URL"を発行 "Fastfile"を編集 テストを実行 おわりに 参考 はじめに 【fastlane】導入手順の説明 ※公式ドキュメントの手順でわからない箇所が…

【fastlane】導入手順の説明 ※公式ドキュメントの手順でわからない箇所がある方向け

はじめに 環境 手順 bundlerをインストール Gemfileを生成 Gemfileを編集 fastlaneをインストール fastlaneの初期設定を進める 環境変数の確認 環境変数の設定 おわりに 参考 はじめに fastlaneの導入について書かれた記事はすでに数多くあるので、本記事で…

【Bitrise】App Store Connectにアプリをアップロードする

はじめに 手順 開発者証明書を発行 "Identifiers"を登録 プロビジョニングプロファイルを発行 "the codesigndoc tool"を使ってBitriseに証明書をアップロード Bitriseにアプリを追加 ワークフローを追加 ステップの設定を変更 ワークフローにステップを追加 …

【Bitrise】XCodeテスト エラー"xcode-test@2 (exit code: 1)" "Xcode Test command failed, error: exit status 70"の対処法

iOSアプリの開始 | Bitrise DevCenterに沿って設定し初めてビルドしたところ、表題のエラーでビルド失敗しました。。原因と対処法に関して記載します。 開発環境 エラー内容 失敗した箇所のログ ログで気になる箇所 原因 対処法 手順 参考 開発環境 ・Xcode …

【Bitrise】"No shared schemes found for project: ~.xcodeproj. Automatically generated schemes may differ from the ones in your project. Make sure to share your schemes for the expected behaviour."の解消方法

開発環境 警告内容 原因 Schemeの共有設定ができていない プロジェクトの変更をプッシュしていない まとめ 参考 開発環境 ・Xcode 12.0.1 ・Swift 5.3 警告内容 iOSアプリの開始 | Bitrise DevCenterに沿って設定を進めると、Project build configurationで…

【SwiftUI】Property Wrappers ( @State @Binding @ObservedObject @EnvironmentObject @StateObject ) の使いどころを理解する

はじめに サンプルに関して 開発環境 実装パターン1:@Stateのみを使う場合 実装パターン2:@Stateと@Bindingを使う場合 実装パターン3:@ObservedObjectを使う場合 実装パターン4:@EnvironmentObjectを使う場合 実装パターン5:@StateObjectを使う場合 おわり…

【SwiftUI】@Bindingの使い方

■Bindingとは "A property wrapper type that can read and write a value owned by a source of truth." ※引用:Apple Developer Documentation 「信頼できる情報源が所有する値の読み取りと書き込みが可能なプロパティラッパータイプ」です。 ・・・? ■サ…

【SwiftUI】@Stateはどのような時に使うのか説明してみた

■@Stateとは "A property wrapper type that can read and write a value managed by SwiftUI." ※引用:Apple Developer Documentation 「SwiftUIによって管理される値を読み書きできるプロパティラッパータイプ」とのことです。 正直、上記ページを読んでも…

【Swift】SwiftLintをCocoaPodsを使って導入する

■開発環境 ・Xcode 11.5 ・Swift 5.2.4 ・SwiftLint 0.40.3 ■手順 1.SwiftLintをインストール pod 'SwiftLint' 2.Run Scriptに以下を追加 追加後ビルドすると、Xcodeにルールに反した実装箇所に警告やエラーが表示されます。 if which "${PODS_ROOT}/SwiftLi…