- 0.0.1. Xcodeで「The provided entity includes an attribute with a value that has already been used on this account. The app name you entered is already being used for another app in your account. 」
- 0.0.2. クリーンアーキテクチャのディレクトリ構成
- 0.0.3. CISCO ルーター初心者による C841M セットアップ記録 -NURO光で C841M をルーターとして使う-
- 0.0.4. 【Flutter】TextFieldのキーボード管理で苦戦した話
- 0.0.5. 【SwiftUI】アクセシビリティ設定によって透明度が変化する
- 0.0.6. iOS/AndroidでONLYOFFICEドキュメントとNextcloudを連携する
- 0.0.7. 【2023年初頭版】BtoB向けのiOSアプリの配信方法についてまとめ(非公開App、非表示App)
- 0.0.8. 【SwiftUI】Textを全て大文字で表示する
- 0.0.9. 【SKAdNetwork 計測】AppsflyerのNullコンバージョン値を使ってコンバージョンを推定する
- 0.0.10. R Markdownでスライドを作成(ioslides)
- 0.0.11. 【SwiftUI】特定の条件でのみオーバーレイする
- 0.0.12. XcodeのリリースビルドでError (Xcode): “Runner” requires a provisioning profile.
- 0.0.13. Github Actionsのセルフホステッド ランナーでUnityをIOSビルドしてDeployGateに上げるまでの手順
- 0.0.14. Mac OS Ventura 13.1にアップデート後、 ExpoでiOSシミュレーターを開けないエラーが発生。
- 1. エラー状況
- 2. 解決方法
Xcodeで「The provided entity includes an attribute with a value that has already been used on this account. The app name you entered is already being used for another app in your account. 」
Flutterで作成したモバイルアプリをAppleStoreで提出しようと思ったら、「App record creation error」 と表示されました。
# 結論
https://appstoreconnect.apple.com/apps
App Store Connectで新しいアプリを作成していなかったことが原因
クリーンアーキテクチャのディレクトリ構成
“`
├── data
│ ├── datasource
│ │ └── 永続記憶デバイスへのアクセス。repositoryから依存される。
│ ├── repository
│ │ └── 永続記憶へのアクセス。データ取得の架け橋。
│ └── network
│ └── ネットワークへのアクセス。
├── domain
│ ├── model
│ │ └── ビジネスロジック。usecase、presenterから依存される。
│ ├── entity
│ │ └── ビジネスロジックが含まれないデータ。メソッドは含む。依存しない。
│ └── usecase
│ └── ユースケース。model、entityに依存する。
├── presentation
│ ├── presenter
│ │ └── ユーザインタフェースの制御。usecase、model、entityに依存。
│ └── ui
│ └
CISCO ルーター初心者による C841M セットアップ記録 -NURO光で C841M をルーターとして使う-
# はじめに
今を遡ること 20年くらい前の ISDN 時代に,CISCO 風コマンド体系をサポートした YAMAHA RTA50i をいじったことしかない私が,C841M-4X-JSEC/K9 を自宅用ルーターとして購入し,設定をしたことを記録する記事.Qiita 初投稿です.# 前提
![2023012501.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119424/47ae0c72-2fb0-f421-2d97-e567eca75044.jpeg)
- ルーター
- CISCO 841M-4X-JSEC/K9
- ネットワーク
- NURO 光 G2V (最大 2Gbps)
- ONU
- SYNCLAYER SGP200W
- クライアント
- Wi-Fi アクセスポイント 5台,L2 マネージドスイッチ 3台,スイッチングハブ 3台 (以上
【Flutter】TextFieldのキーボード管理で苦戦した話
## きっかけ
参画させていただいているプロジェクトで、
「前の画面に戻ったときにキーボードが出ている状態にしたい」
とのことで、思いの外悩んだので備忘録も兼ねて。
(TextFieldも、CupertinoTextFieldも解決済み)## あまりいい記事がかけなかったので結論
インスタンスの生成タイミングの見直しをすべき:frowning2:## 悩んだ理由
### 1. 入力後すぐ初期化されてしまう
### 2. 初期値を設定時も入力後すぐ初期化されてしまう
### 3. キーボードが閉じなくなった
### 4. キーボードが開かなくなった
## 結論:何が悪いのか
### インスタンスを生成する場所が悪かった
ただこれに尽きる。
基本的なサイトでは**全て画面を描画するところで説明している**為、インスタンスの生成タイミングについては触れられていないので苦戦してしまったということ。
じゃあどうすればいいのかというと**親クラス**でインスタンスを生成すればいい。
“` dart
class _MyHomePageState extends State
【SwiftUI】アクセシビリティ設定によって透明度が変化する
# はじめに
https://qiita.com/SNQ-2001/items/d94c39ed765889b46869https://qiita.com/SNQ-2001/items/25e8602ab341c7ec2cb5
アクセシビリティ設定によって実機で試してみるなんてことはなかなかないので気づきにくいです。
今回もたまたま発見したので紹介します。
(今回はMacOS限定です)
(しかも、メニューバーアプリの`window`スタイルで発生した)
(しかも、私がアクセシビリティをオンにしてた)ということでかなり限定的な記事ですが、記録しておきます。
# 該当コード
“`swift:App
import SwiftUI@main
struct accessibility_sampleApp: App {
var body: some Scene {
MenuBarExtra {
ContentView()
} label: {
Image(systemName: “paperp
iOS/AndroidでONLYOFFICEドキュメントとNextcloudを連携する
## ONLYOFFICEとNextcloudの連携について
ONLYOFFICEでは、ONLYOFFICE DocsとNextcloudを連携させ、クラウドストレージ内でオフィス文書を編集するための公式コネクタを提供しています。ONLYOFFICEコネクタは、Nextcloudの[アプリストア](https://apps.nextcloud.com/apps/onlyoffice)またはONLYOFFICE [GitHubページ](https://github.com/ONLYOFFICE/onlyoffice-nextcloud)よりダウンロードできます。
:::note warn
ONLYOFFICEとNextcloudの連携コネクタの詳細や仕組みについては、[APIドキュメント](https://api.onlyoffice.com/editors/nextcloud)のページをご覧ください。
:::### 主な機能
* テキスト文書、スプレッドシート、プレゼンテーションの作成、編集、閲覧
* オンラインフォームの作成と記入
* 他のユーザーとのファイル共有
* ト
【2023年初頭版】BtoB向けのiOSアプリの配信方法についてまとめ(非公開App、非表示App)
## はじめに
一昨年くらいからBtoB向けのiOSアプリを開発しており、ノウハウが溜まってきたので記事にしました。iOSアプリをリリースする場合、App Store経由で配信するのが一般的かと思いますが、BtoB向けのアプリケーションだと用途やセキュリティ的な観点から、不特定多数には公開したくないというニーズがあるかと思います。
そういったときに、非公開Appと非表示App(名前がややこしい)が選択肢としてあります。
本記事では、この2種類の方法や詳しいやり方、注意事項について説明していきます。## この記事の対象者
– iOSアプリの一般公開についてざっと知っている
– App Store ConnectのマイAppの画面を見たことがある
– BtoB向けのiOSアプリの配信方法について知りたい## TL;DR
– 自社や特定企業のみの配信方法として非公開App(カスタムApp)があるよ
– 非公開AppはMDMを使って、組織で管理しているiPhoneや引き換えコードと呼ばれるURLで配信できるよ
– 非表示AppはApp Storeで検索しても出てこないけど、UR
【SwiftUI】Textを全て大文字で表示する
# はじめに
Textを全て大文字で表記したい時、以下のようなやり方をしてませんか?
私はしてました。
“`swift
Text(“APPLE”)
Text(“Apple”.uppercased())
“`専用のModifierがあったので記事にしておきます。
# やりかた
### 全て小文字
“`swift
Text(“Apple”)
.textCase(.lowercase)
“`### 全て大文字
“`swift
Text(“Apple”)
.textCase(.uppercase)
“`
# おわり
結構SwiftUI使ってると思いますが、意外と知らない機能も多いなと感じました。
【SKAdNetwork 計測】AppsflyerのNullコンバージョン値を使ってコンバージョンを推定する
## なに?
AppsflyerのNullコンバージョン値を使って、Appleのプライバシーしきい値によりマスキングされてしまったコンバージョンを推定してみます。
– [Appsflyer SKAN推定値](https://support.appsflyer.com/hc/ja/articles/7086372479505?query=null%E5%80%A4)
なお、Apple公式では「Null値」という表現はされておらず
プライバシーしきい値を満たしている場合のみ、コンバージョン値(`conversion-value`)が提供されると記載されています。https://developer.apple.com/documentation/storekit/skadnetwork/identifying_the_parameters_in_install-validation_postbacks
## なぜ?
今までは、IDFAをベースにした推定モデルを使用していましたが、昨今データがどんどん減少していく中で精度が信頼できなくなってきた。## コンバージョンの推定
S
R Markdownでスライドを作成(ioslides)
# Rでスライドを作ろう
この記事を読むと、以下の3つができるようになり、どうでもいいことを1つ(4.)知れます。
ちなみに、2と3はスライドでなくても、HTMLファイルにKnitしたものであればできます。
注)Windowsのコンピュータを想定して書いています。他のOSでもできますが多少キーや、やり方が違うかもしれません。1. R Markdownでスライドを作成できるようになる
2. 細かいスライドの設定のやり方が分かる(上下左右にスクロールできるページなど)
3. 作成したスライドをページのリンクとして共有できる
4. @masato-terai がなぜRでスライドを作るべきだと思っているのか# Rでスライドを作成するには
Rでスライドを作成する方法はいくつかあるのですが、今回はioslideを用いて行う方法を紹介します。その他のスライドについてはこちらで紹介されていました [[1]](https://rstudio-pubs-static.s3.amazonaws.com/869589_0491c9112c6d4d48af55a8e114280be2.html#4)。
【SwiftUI】特定の条件でのみオーバーレイする
# はじめに
条件によって`Text(“Hello, world!”)`にオーバーレイの有無を決定したいとします。# サンプルアプリ
![Simulator Screen Recording – iPhone 14 Pro – 2023-01-21 at 21.35.26.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/8039a8ff-ea86-d602-c248-ec9f0ac3dc15.gif)# やりかた
“`swift:ContentView
import SwiftUIstruct ContentView: View {
@State var isShowBorder: Bool = false
var body: some View {
VStack(spacing: 50) {
Toggle(“”, isOn: $isShowBorder)
.labelsHidden()
XcodeのリリースビルドでError (Xcode): “Runner” requires a provisioning profile.
XcodeのSigning & Capabilitiesにてただしく、
Apple DistributionのProvisioning Profileを設定しているのに、見つからないとのエラーがリリースビルドのたびに発生しました。# 結論
Build & Setting
に行き、
・Code Signing Identityの
ReleaseがiOS Distribution.Provisioning ProfileのReleaseが、manual設定で作成したprovisioning Profileが設定されているか確認する。(私の場合は無しになっていました。)
Github Actionsのセルフホステッド ランナーでUnityをIOSビルドしてDeployGateに上げるまでの手順
# 概要
Github Actionsのセルフホステッド ランナーでUnityをIOSビルドしてDeployGateに上げるまでの手順です。
Appleの証明書周りのやりかたや各機能などは解説しません。手順と必要なコードのみ記載します。おおまかな手順
1. GithubActionsにセルフホストランナーを登録
2. Unityにビルド用のコードを追加
3. IPAを手動でビルド
4. プロジェクトにExportOptions.plistを追加
5. main.ymlを追加
1.プロジェクト情報を追加
2. DeployGateの情報追加
6. (おまけ)GitHubAppでslackに通知する# 1.GithubActionsにセルフホストランナーを登録
リポジトリもしくはorganizationsのSettingsのRunnnersからNew runnerを選択。必要な環境を選択してDownloadとConfigureのコマンドを実行。
この時すでにactions-runner導入済みであればDownload部分は不要です。
新しいリポジト
Mac OS Ventura 13.1にアップデート後、 ExpoでiOSシミュレーターを開けないエラーが発生。
エラー状況
Mac OS Ventura 13.1にアップデートしたところ、
ExpoでiOSシミュレーターを開けないエラーが発生。“`
› Opening on iOS…
Started Metro Bundlerxcrun exited with non-zero code: 2
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Unable to boot device because we cannot determine the runtime bundle.
No such file or directory
“`解決方法
Xcodeを立ち上げ
-> Xcode メニュー
-> Open Developer Tool
-> Simulator でシミュレータを立ち上げシミュレータメニューの Device
-> Erase all content and settingsでセッティングをクリア
【Swift】returnの為だけに改行したくない
# はじめに
何を言ってるのかというと
“`swift
guard let url else {
print(“URLが見つかりませんでした”)
return
}
“`
guard文を使用するとelseでは必ずreturnを書かないといけません。しかしreturnを書く為だけに改行をするのはちょっと。。。
って思うのは私だけですか??# やりかた
“`swift
guard let url else { print(“URLが見つかりませんでした”); return }
“`# 解説
`;`で繋げる感じですね# おわり
これが良いのかどうかはわからないですが、個人的には1行にした方が見やすいと思いました。
IonicとCapacitorを使ったモバイルアプリをCLIによる初期ファイル生成なしで構築する
ウェブの技術を使ってAndroidやiOSなどのモバイルアプリを作成できればコードの共通化ができ、OSごとに個別のアプリ開発の知識を要求されることがなくなります。このようなことを実現するためのフレームワークに[Ionic](https://ionicframework.com)と[Capacitor](https://capacitorjs.com/)があります。
本稿ではIonicとCapacitorとVueを使ったモバイルアプリをIonicの公式ドキュメントにあるCLIによる初期ファイル生成を使わずに一から作成することで、構成を深く理解することを目指します。特にIonicとCapacitorの関係性は明確な説明が無いせいでわかりづらいのですが、そこを理解し実際に最低限のアプリを作成することで確認します。
作成したコードは以下から見られます。コードを早くみたい人はどうぞ。
https://github.com/silane/capacitor-ionic-vue-sample
# Scaffold(CLIによる初期ファイル生成)すると中身が理解できない
Ionicでのモバイル
SwiftUI BindingのあるViewのプレビューを正しく表示する
# 概要
例えば、地図を表示するViewをSwiftUIで構築します。
このViewは地図と、現在地を示す位置情報をテキストで表示します。
地図はMapKitを使って、`Map`で表示します。Mapのinitの形式には`MKCoordinateRegion`や`MKMapRect`を使いますが、いずれの型式でもBindingでの指定が必要になります。
構築するViewが外から@Bindingの形でパラメータを受け取る形の場合、PreviewにもBindingに指定する@Stateなどの値が必要になります。Stateを用意せず、プレビューで`.constant`で固定のMKCoordinateRegionを入れておけばビルドとしては動きますが、プレビューとしては、地図を動かしても位置情報テキスト部分の値が変わりません。
![修正前.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687960/399db71d-a6cb-8e5a-2e3c-06f86727a58b.gif)
# 正しくBi
【個人開発】会話AIを「ずんだもん風」に話せるように作ってみる
みなさんは「ずんだもん」というキャラクターをご存知でしょうか。ずんだもんはSSS合同会社が運営する東北地方応援キャラクターとして誕生したものでした。しかし音声合成ソフトVOICEVOXに導入されたことをきっかけにYoutubeなどの動画サイトでもよく見かけるようになり、それらにおける汎用キャラとしての役割の方が目立っています。
![名称未設定のデザインのコピー-4-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/713689/9a2e859d-0a90-b730-9d66-f3b897e7cde9.jpeg)
> VOICEVOX公式サイトより 「呼び方」のページも参考になります
ずんだもんの特徴は何といっても「ボクはずんだもんなのだ」「元気なのだ」というような「〜なのだ」口調です。どんな内容でも話し方で共通の個性が出せることも普及した一つの要因だと言えるでしょう。また、これは文章においても同じです。
そこで今回はこの「〜なのだ」口調を導入した会話AIを作っていきたいと思います。
# 作
【Swift】CollectionViewを使ったスライドショーをボタンで制御する
# はじめに
iOSアプリの中でスライドショーを作る必要があって、かつフリックではなくボタンで前後にスライドするという要件。意外にそのものが見当たらなかったので、備忘録として。# 実行環境
– Xcode 13.4.1
– macOS Monterey(12.1)# 前提
– 基本は最後に書いたリンクに詳しいので、そちらを見てもらう前提で(備忘録なので)。
– スライドショーで使う画像のサイズが、表示エリアに対して大きいサイズだったので、SliderCollectionViewCell.swiftの中の「func resize(image: UIImage, width: Double) -> UIImage」でサイズ調整しています(本題とは無関係なので、不要な方は無視していいです)。# 実装内容
– レイアウトはstoryboardを使ってます。パーツの構成はこんな感じ。
– 「@IBOutlet weak var」してないボタン(storyboard上は「Button」で表示されているもの)は、このControllerへの画面遷移用なので、無視してください。
![スク
【Xcode】$PRODUCT_NAMEなどは何を表しているのか
# はじめに
Run Scriptをいじっていると`$PRODUCT_NAME`や`$TARGET_NAME`など意味不明な暗号が出てきます。
これが何なのか気になったので調べてみました。# 正体
サンプルというプロジェクトを作成して解説を行います。
![スクリーンショット 2023-01-18 21.19.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/88314962-f48a-a663-2686-8a85e48851c4.png)$PRODUCT_NAMEなどの正体はパスなのです。
先ほど作成した「sample」プロジェクトの場合は以下のようになっています。
“`
PRODUCT_NAME=sampleTARGET_NAME=sample
SRCROOT=/Users/miyamototaishin/Desktop/sample
“`# 調べ方
① プロジェクトを選択します
② ターゲットを選択します
③ 「Build Phases」を選択します
④ 「