<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>「すべて下書き」の個人開発アメブロ</title>
<link>https://ameblo.jp/subeteshitagaki/</link>
<atom:link href="https://rssblog.ameba.jp/subeteshitagaki/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>スマホアプリの個人開発のブログです。</description>
<language>ja</language>
<item>
<title>Google PlayとApp Storeの違い｜両方にアプリを公開して分かったこと</title>
<description>
<![CDATA[ <p></p><h1><br></h1><br><p>AndroidとiOSの両方でアプリを公開してみると、同じ「アプリストア」でもかなり違うことに気づきます。</p><br><p>どちらも、</p><br><p>アプリを作る<br><br>↓<br><br>ストアに登録する<br><br>↓<br><br>審査を受ける<br><br>↓<br><br>公開する</p><br><p>という流れなのですが、実際にやってみると、それぞれ違った大変さがあります。</p><br><p>特に大きく違うと感じたのが、<strong>公開前のテスト</strong>です。</p><br><h2>Google Playは公開前のテストがある</h2><br><p>Google Playで個人開発者としてアプリを公開するとき、対象となる新しい個人開発者アカウントでは、公開前にクローズドテストを行う必要があります。</p><br><p>現在の要件では、</p><br><p><strong>12人以上のテスターに参加してもらい、14日間継続してテストする</strong></p><br><p>という条件があります。</p><br><p>これが個人開発では結構大変です。</p><br><h2>「アプリを作ったから公開！」とはならない</h2><br><p>最初は、</p><br><p>「アプリが完成した」</p><br><p>↓</p><br><p>「Google Playにアップロード」</p><br><p>↓</p><br><p>「審査」</p><br><p>↓</p><br><p>「公開」</p><br><p>くらいに考えていました。</p><br><p>ところが、実際には公開前にテストがあります。</p><br><p>テスターを集める。</p><br><p>テスターに参加してもらう。</p><br><p>14日間テストしてもらう。</p><br><p>その条件を満たしてから、公開申請へ進む。</p><br><p>つまり、</p><br><p><strong>アプリが完成しても、すぐに一般公開できるとは限りません。</strong></p><br><h2>テスターを集めるのが意外と大変</h2><br><p>プログラムを書くのは自分一人でできます。</p><br><p>でも、</p><br><p><strong>テスターを12人集める</strong></p><br><p>となると話が変わります。</p><br><p>知り合いにお願いしたり、テスト参加者を募集したり。</p><br><p>個人開発では、ここが意外なハードルになります。</p><br><p>「アプリを作る技術」と「テスターを集める力」は別物です。</p><br><p>アプリを公開するだけなのに、ちょっとした営業活動まで必要になります。</p><br><h2>そして14日間</h2><br><p>さらに、</p><br><p>「12人集めた！終わった！」</p><br><p>とはなりません。</p><br><p>14日間の継続したテストが必要です。</p><br><p>その間に、</p><br><p>「ちゃんとテストしてもらえているかな？」</p><br><p>「条件を満たしているかな？」</p><br><p>と確認することになります。</p><br><p>個人開発者にとっては、かなり独特な公開プロセスだと思いました。</p><br><h2>App Storeはまた違う</h2><br><p>一方、App StoreではGoogle Playとは違った流れになります。</p><br><p>iOSアプリを作って、App Store Connectに登録。</p><br><p>スクリーンショットなどを用意して、</p><br><p>審査へ提出。</p><br><p>そしてAppleの審査を待ちます。</p><br><p>こちらは、Google Playのような「12人以上のテスターで14日間」という公開前の条件とは違います。</p><br><p>ただし、App Storeも審査があります。</p><br><p>実際にリジェクトされたこともありました。</p><br><h2>Appleは審査でハマった</h2><br><p>App Storeでは、</p><br><p>「アプリは完成した」</p><br><p>「設定も終わった」</p><br><p>「これで公開できる」</p><br><p>と思って申請。</p><br><p>ところが、</p><br><p><strong>リジェクト。</strong></p><br><p>Appleから指摘内容が届きます。</p><br><p>原因を確認して修正。</p><br><p>そして再申請。</p><br><p>この繰り返しです。</p><br><p>Google Playでは公開前のクローズドテストに苦労し、App Storeでは審査に苦労する。</p><br><p>それぞれ違うところでハマります。</p><br><h2>Google PlayとApp Storeの違い</h2><br><p>個人的な体験をざっくりまとめると、こんな感じです。</p><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><table><thead><tr><th></th><th>Google Play</th><th>App Store</th></tr></thead><tbody><tr><td>管理画面</td><td>Google Play Console</td><td>App Store Connect</td></tr><tr><td>開発環境</td><td>Android Studioなど</td><td>Xcodeなど</td></tr><tr><td>公開前テスト</td><td>対象アカウントではクローズドテストが必要</td><td>Google Playのような14日間のテスター要件はない</td></tr><tr><td>テスト要件</td><td>12人以上・14日間の継続参加が必要</td><td>TestFlightなどでテスト可能</td></tr><tr><td>審査</td><td>あり</td><td>あり</td></tr><tr><td>個人的に大変だったところ</td><td>テスター集め・14日間のテスト</td><td>審査・設定・スクリーンショット</td></tr></tbody></table><br><p>※Google Playのテスト要件は、対象となる個人開発者アカウントに適用されるものです。</p><br><h2>Flutterなら全部同じ、ではなかった</h2><br><p>Flutterを使うと、アプリ本体のコードを共通化できます。</p><br><p>これはかなり便利です。</p><br><p>ただ、</p><br><p><strong>「FlutterだからGoogle PlayとApp Storeへの公開も同じ」</strong></p><br><p>というわけではありません。</p><br><p>アプリを作るところは共通化できても、</p><br><p>ストアへの登録。</p><br><p>テスト。</p><br><p>審査。</p><br><p>スクリーンショット。</p><br><p>公開手続き。</p><br><p>このあたりは、それぞれのプラットフォームに合わせる必要があります。</p><br><h2>両方やってみると違いが分かる</h2><br><p>実際にGoogle PlayとApp Storeの両方にアプリを公開してみると、</p><br><p>「同じアプリストアなのに、こんなに違うんだ」</p><br><p>と感じます。</p><br><p>Google Playでは、</p><br><p><strong>「テスターを集めて14日間」</strong></p><br><p>という壁。</p><br><p>App Storeでは、</p><br><p><strong>「審査を通過させる」</strong></p><br><p>という壁。</p><br><p>どちらも、</p><br><p>「アプリを完成させたら終わり」</p><br><p>ではありません。</p><br><h2>まとめ</h2><br><p>Google PlayとApp Store。</p><br><p>どちらもアプリを公開するためのサービスですが、公開までの道のりはかなり違います。</p><br><p>Google Playでは、対象となる個人開発者アカウントの場合、</p><br><p><strong>12人以上のテスターに参加してもらい、14日間継続してクローズドテストを行う</strong></p><br><p>必要があります。</p><br><p>一方、App Storeでは、App Store Connectから申請してAppleの審査を受けます。</p><br><p>Google Playではテスター集め。</p><br><p>App Storeでは審査。</p><br><p>それぞれ違うところで苦労しました。</p><br><p>アプリを作る。</p><br><p>↓</p><br><p>テストする。</p><br><p>↓</p><br><p>ストアに登録する。</p><br><p>↓</p><br><p>審査を受ける。</p><br><p>↓</p><br><p>公開する。</p><br><p>アプリ開発は、コードを書いて完成ではありません。</p><br><p><strong>「どうやってストアに公開するか」まで含めてアプリ開発。</strong></p><br><p>実際に両方経験してみて、そんなことを実感しました。</p><br><p></p>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975137829.html</link>
<pubDate>Sat, 08 Aug 2026 16:08:02 +0900</pubDate>
</item>
<item>
<title>SVGのアプリダウンロードバッジを作ってみた｜WordPressにApp Storeへの導線を作</title>
<description>
<![CDATA[ <p></p><h1>App Storeにアプリを公開したので、今度は<strong>どうやってアプリのページに来てもらうか</strong>を考えるようになりました。</h1><p>App StoreのURLをブログに貼るだけでもリンクは作れます。</p><p>でも、せっかくなら、</p><p><strong>「ここをクリックすればアプリをダウンロードできます」</strong></p><p>と一目で分かるものを置きたい。</p><p>そこで今回は、<strong>SVGでアプリのダウンロードバッジを作ってみました。</strong></p><h2>普通のテキストリンクでもいいけど……</h2><p>例えば、</p><p>「App Storeはこちら」</p><p>とテキストリンクを置く方法があります。</p><p>もちろん、これでも問題ありません。</p><p>ただ、アプリを紹介するページなら、もう少し目立つほうがいい。</p><p>そこで、</p><p><strong>アプリのダウンロードボタンとして使えるバッジ</strong></p><p>を作ることにしました。</p><h2>SVGで作ってみる</h2><p>今回使ったのはSVGです。</p><p>SVGなら画像を拡大・縮小しても、基本的に画質が荒くなりません。</p><p>ブログに掲載するバッジとしても使いやすいです。</p><p>また、HTMLに直接貼り付けたり、画像として表示したりできるので、WordPressとの相性も良さそうです。</p><h2>アプリごとにバッジを作る</h2><p>今回のブログでは複数のアプリを紹介しています。</p><p>そのため、アプリごとにApp Storeのリンク先が違います。</p><p>そこで、</p><p><strong>アプリIDを指定して、それぞれのダウンロードバッジを作る</strong></p><p>ようにしました。</p><p>例えば、</p><p>「このアプリのバッジを作りたい」</p><p>となったら、そのアプリのApp Store IDを使ってリンク先を設定します。</p><p>これならアプリが増えても対応できます。</p><h2>サイズも変更できる</h2><p>最初に作ったバッジをブログに貼ってみると、</p><p>「ちょっと小さいな」</p><p>ということもありました。</p><p>そこで、表示サイズも調整。</p><p>例えば200px程度の幅にすると、ブログの記事内でもかなり見やすくなります。</p><p>画像サイズを調整するだけなので、用途に応じて大きさを変更できます。</p><h2>ブログの中に設置してみる</h2><p>実際にブログ記事に設置してみると、</p><p>文章だけのリンクよりも、</p><p><strong>「ここからアプリを見られる」</strong></p><p>ということが分かりやすくなりました。</p><p>アプリを紹介する記事なら、読者が記事を読んだあとにApp Storeへ移動できる導線があるのは重要です。</p><p>せっかくブログに来てもらっても、App Storeへのリンクが分かりにくければ、そのまま離脱してしまうかもしれません。</p><h2>アプリを作ったら「見てもらう」ことも必要</h2><p>個人開発を始めたころは、</p><p>「アプリを完成させること」</p><p>ばかり考えていました。</p><p>でも、App Storeに公開したあとに気づきます。</p><p><strong>公開しただけでは、アプリはダウンロードされない。</strong></p><p>アプリを知ってもらう。</p><p>↓</p><p>アプリのページを見てもらう。</p><p>↓</p><p>App Storeへ移動してもらう。</p><p>↓</p><p>ダウンロードしてもらう。</p><p>この流れを作る必要があります。</p><p>そのためにも、ブログからApp Storeへの導線を少しずつ改善しています。</p><h2>SVGなら使い回せる</h2><p>今回作ったバッジは、ブログ記事ごとに使い回せます。</p><p>アプリ紹介記事。</p><p>固定ページ。</p><p>アプリ一覧ページ。</p><p>など、いろいろな場所に設置できます。</p><p>アプリが増えるたびに同じようなバッジを作ることになりますが、基本となるSVGを用意しておけば、リンク先やアプリ名などを変更して対応できます。</p><h2>作ってみると意外と楽しい</h2><p>最初は、</p><p>「App Storeへのリンクをボタンにするだけ」</p><p>くらいに考えていました。</p><p>でも実際にSVGを作って、</p><p>サイズを調整して、</p><p>WordPressに設置して、</p><p>実際のApp Storeページに移動できることを確認する。</p><p>こうやって一つずつ作っていくと、ブログそのものが少しずつアプリ紹介サイトらしくなってきます。</p><p>アプリを作るだけではなく、</p><p><strong>アプリを知ってもらうための仕組みも自分で作る。</strong></p><p>これも個人開発の面白いところです。</p><h2>まとめ</h2><p>今回は、SVGを使ってアプリのダウンロードバッジを作ってみました。</p><p>App Storeへのリンクをただテキストで貼るのではなく、</p><p><strong>「アプリをダウンロードできます」</strong></p><p>と分かりやすいバッジにすることで、ブログからApp Storeへの導線を作ることができます。</p><p>アプリを公開する。</p><p>↓</p><p>ブログで紹介する。</p><p>↓</p><p>ダウンロードバッジを設置する。</p><p>↓</p><p>App Storeへ誘導する。</p><p>少しずつですが、アプリを知ってもらうための仕組みを作っています。</p><p>アプリ開発は、コードを書いて終わりではありません。</p><p><strong>どうやって見てもらうか、どうやって使ってもらうか。</strong></p><p>ここからも試行錯誤が続きそうです。</p><p></p>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975137418.html</link>
<pubDate>Sat, 08 Aug 2026 16:03:30 +0900</pubDate>
</item>
<item>
<title>WordPressのCode Snippetsで403エラー｜WAFをOFFにしても保存できなか</title>
<description>
<![CDATA[ <div>WordPressをカスタマイズしていて、Code SnippetsにPHPコードを追加していました。</div><div><br></div><div>コードを書いて、</div><div><br></div><div>「これで保存！」</div><div><br></div><div>と保存ボタンを押したところ……</div><div><br></div><div>403エラー。</div><div><br></div><div>保存できません。</div><div><br></div><div>まず疑ったのはWAF</div><div><br></div><div>WordPressでコードを保存するときに403エラー。</div><div><br></div><div>そこで最初に疑ったのが、レンタルサーバーのWAFでした。</div><div><br></div><div>PHPコードの内容によっては、サーバー側のセキュリティ機能が「危険なリクエスト」と判断してブロックすることがあります。</div><div><br></div><div>なので、</div><div><br></div><div>「WAFが原因かな？」</div><div><br></div><div>と思いました。</div><div><br></div><div>WAFをOFFにしてみる</div><div><br></div><div>そこでレンタルサーバーのWAFをOFFにして、もう一度Code Snippetsから保存してみました。</div><div><br></div><div>これで解決するはず。</div><div><br></div><div>そう思って保存ボタンを押します。</div><div><br></div><div>結果は……</div><div><br></div><div>403エラー。</div><div><br></div><div>「え？」</div><div><br></div><div>WAFをOFFにしたのに、まだ403。</div><div><br></div><div>ここで一気に原因が分からなくなりました。</div><div><br></div><div>WAFじゃないなら、どこで拒否されている？</div><div><br></div><div>WAFをOFFにしても403が出る。</div><div><br></div><div>ということは、少なくとも、</div><div><br></div><div>「WAFだけが原因ではない」</div><div><br></div><div>ということです。</div><div><br></div><div>WordPress側？</div><div><br></div><div>Code Snippets側？</div><div><br></div><div>サーバー側の別のセキュリティ機能？</div><div><br></div><div>それとも、そもそも別の問題？</div><div><br></div><div>候補が一気に増えました。</div><div><br></div><div>コードを疑ってみる</div><div><br></div><div>次に考えたのが、</div><div><br></div><div>「やっぱりコードそのものが原因なのでは？」</div><div><br></div><div>ということ。</div><div><br></div><div>そこで、いきなり全部のコードを確認するのではなく、できるだけ単純なコードで保存を試してみました。</div><div><br></div><div>保存できる。</div><div><br></div><div>少しコードを追加する。</div><div><br></div><div>保存できる。</div><div><br></div><div>さらに追加する。</div><div><br></div><div>そして保存。</div><div><br></div><div>また403。</div><div><br></div><div>少しずつ切り分けていきます。</div><div><br></div><div>エラーが出る場所を探す</div><div><br></div><div>こういうときに大事なのは、</div><div><br></div><div>「何が原因なのかを決めつけない」</div><div><br></div><div>ことだと思いました。</div><div><br></div><div>最初はWAFだと思っていました。</div><div><br></div><div>でも、WAFをOFFにしても403。</div><div><br></div><div>だったら、次の可能性を調べる。</div><div><br></div><div>コードなのか。</div><div><br></div><div>プラグインなのか。</div><div><br></div><div>サーバーなのか。</div><div><br></div><div>設定なのか。</div><div><br></div><div>一つずつ確認していきます。</div><div><br></div><div>403だからといってWAFとは限らない</div><div><br></div><div>今回のことで改めて感じたのが、</div><div><br></div><div>403エラーを見ると、ついWAFを疑ってしまう</div><div><br></div><div>ということ。</div><div><br></div><div>もちろんWAFが原因の場合もあります。</div><div><br></div><div>でも、</div><div><br></div><div>WAFをOFFにしても403になるケースもある。</div><div><br></div><div>ここが今回のポイントでした。</div><div><br></div><div>「WAFを切れば直る」と思っていたので、直らなかったときはかなり困りました。</div><div><br></div><div>ようやく保存できた</div><div><br></div><div>いろいろ確認しながらコードや設定を見直していき、最終的にはCode Snippetsにコードを保存できました。</div><div><br></div><div>そして、作りたかったWordPressの自動表示機能も無事に動作。</div><div><br></div><div>403が出ている間は、</div><div><br></div><div>「いつになったら保存できるんだ……」</div><div><br></div><div>という感じでしたが、保存できた瞬間はかなりスッキリしました。</div><div><br></div><div>個人開発は「原因不明」が一番つらい</div><div><br></div><div>プログラムのエラーなら、</div><div><br></div><div>「この行でエラーが出ています」</div><div><br></div><div>と分かることがあります。</div><div><br></div><div>でも今回のように、</div><div><br></div><div>保存ボタンを押したら403</div><div><br></div><div>という場合、原因がどこにあるのか分かりません。</div><div><br></div><div>コードを書いている自分からすると、</div><div><br></div><div>「コードを保存しただけなのに……」</div><div><br></div><div>という気持ちです。</div><div><br></div><div>こういう原因不明のエラーを一つずつ切り分けるのも、個人開発の一部なのかもしれません。</div><div><br></div><div>まとめ</div><div><br></div><div>今回はWordPressのCode Snippetsでコードを保存しようとしたところ、403エラーが発生しました。</div><div><br></div><div>最初はWAFを疑いました。</div><div><br></div><div>そこでWAFをOFFにしてみました。</div><div><br></div><div>ところが……</div><div><br></div><div>それでも403。</div><div><br></div><div>ここから原因の切り分けが始まりました。</div><div><br></div><div>今回学んだのは、</div><div><br></div><div>「403エラー＝WAF」と決めつけないこと。</div><div><br></div><div>WAFをOFFにしてもエラーが出るなら、別の場所に原因がある可能性があります。</div><div><br></div><div>WordPress、プラグイン、サーバー、セキュリティ設定。</div><div><br></div><div>いろいろな場所を一つずつ確認する。</div><div><br></div><div>エラー解決には、結局これが一番大事なのかもしれません。</div><div><br></div><div>コードを書く。</div><div><br></div><div>↓</div><div><br></div><div>403。</div><div><br></div><div>↓</div><div><br></div><div>WAFをOFF。</div><div><br></div><div>↓</div><div><br></div><div>それでも403。</div><div><br></div><div>↓</div><div><br></div><div>「じゃあ、どこだ？」</div><div><br></div><div>↓</div><div><br></div><div>ひたすら調べる。</div><div><br></div><div>個人開発、今日もコードを書く前に一つ勉強になりました。</div>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975137219.html</link>
<pubDate>Sat, 08 Aug 2026 16:01:00 +0900</pubDate>
</item>
<item>
<title>WordPressのCode Snippetsで403エラーになった話｜コードを書いたのに保存で</title>
<description>
<![CDATA[ <p></p><h1>WordPressをカスタマイズしていて、Code Snippetsを使ってコードを追加していました。</h1><br><p>今回やりたかったのは、ブログに関連記事などを自動表示する仕組みを追加すること。</p><br><p>コードを書いて、</p><br><p>「よし、これで保存！」</p><br><p>と思って保存ボタンを押しました。</p><br><p>すると……</p><br><p><strong>403エラー。</strong></p><br><h2>「コードが間違っているの？」</h2><br><p>最初に疑ったのは、当然コードです。</p><br><p>「PHPの書き方がおかしい？」</p><br><p>「何か危険なコードとして判定されている？」</p><br><p>「どこかにミスがある？」</p><br><p>と思って、コードを確認します。</p><br><p>修正して、もう一度保存。</p><br><p>しかし、</p><br><p><strong>403エラー。</strong></p><br><p>また保存できません。</p><br><h2>WAFを疑ってみる</h2><br><p>WordPressで403エラー。</p><br><p>しかも、コードを保存するときだけ発生する。</p><br><p>そこで、</p><br><p>「もしかしてWAF？」</p><br><p>と考えました。</p><br><p>レンタルサーバー側のWAFが、Code Snippetsに入力したコードを不正なリクエストとして判断している可能性があります。</p><br><p>そこでWAFを確認。</p><br><p>そして、</p><br><p><strong>WAFをOFFにしてみました。</strong></p><br><p>これでいけるはず。</p><br><p>もう一度保存。</p><br><p>……403。</p><br><h2>「WAFじゃないの？」</h2><br><p>ここで少し焦りました。</p><br><p>WAFをOFFにしても403。</p><br><p>ということは、別の場所でブロックされている？</p><br><p>WordPress側なのか。</p><br><p>サーバー側なのか。</p><br><p>プラグインなのか。</p><br><p>それともCode Snippetsなのか。</p><br><p>原因が分からないと、かなりモヤモヤします。</p><br><h2>とりあえず小さなコードで試す</h2><br><p>いきなり大きなコードを保存するのではなく、もっと単純なコードで試してみました。</p><br><p>すると、</p><br><p><strong>保存できた。</strong></p><br><p>「あれ？」</p><br><p>と思います。</p><br><p>今度は少しずつコードを追加していきます。</p><br><p>そして、あるところまでコードを追加すると……</p><br><p><strong>403。</strong></p><br><p>どうやら、コードの内容によってサーバー側のセキュリティに引っかかっているようでした。</p><br><h2>コードが正しくても保存できない</h2><br><p>ここが今回一番ややこしかったところです。</p><br><p>PHPとしては正しいコードでも、</p><br><p><strong>「サーバーのセキュリティが危険なリクエストだと判断する」</strong></p><br><p>ことがあります。</p><br><p>つまり、</p><br><p>コードが間違っている</p><br><p>↓</p><br><p>保存できない</p><br><p>とは限りません。</p><br><p>コード自体は正しくても、</p><br><p><strong>保存処理の途中で403としてブロックされる</strong></p><br><p>ことがあります。</p><br><h2>403エラーは「アクセス拒否」</h2><br><p>403というのは、ざっくり言えば、</p><br><p><strong>「その操作は許可されていません」</strong></p><br><p>というエラーです。</p><br><p>今回の場合、</p><br><p>「Code Snippetsが壊れている」</p><br><p>という単純な話ではありませんでした。</p><br><p>WordPress、プラグイン、レンタルサーバー、WAFなど、いくつかの仕組みが関係しています。</p><br><p>こういうところが、WordPressのカスタマイズで難しいところです。</p><br><h2>そして、最終的には保存できた</h2><br><p>コードを確認しながら、</p><br><p>どの部分で403になるのかを切り分けていきました。</p><br><p>少しずつ変更して、</p><br><p>保存。</p><br><p>エラーが出ない。</p><br><p>さらに追加。</p><br><p>保存。</p><br><p>また確認。</p><br><p>そんな感じで原因を切り分けていき、最終的には無事にCode Snippetsへ保存できました。</p><br><p>そして、作りたかった関連記事の自動表示も動かすことができました。</p><br><h2>個人開発ではエラー調査も仕事</h2><br><p>今回改めて思ったのは、</p><br><p><strong>プログラムを書く時間より、エラーの原因を探している時間のほうが長いことがある</strong></p><br><p>ということ。</p><br><p>コードを書く。</p><br><p>↓</p><br><p>エラー。</p><br><p>↓</p><br><p>調べる。</p><br><p>↓</p><br><p>設定を確認する。</p><br><p>↓</p><br><p>また試す。</p><br><p>↓</p><br><p>別のエラー。</p><br><p>↓</p><br><p>また調べる。</p><br><p>個人開発をしていると、これが普通にあります。</p><br><p>でも、原因が分かってエラーが消えた瞬間はかなり気持ちいいです。</p><br><h2>まとめ</h2><br><p>今回は、WordPressのCode Snippetsでコードを保存しようとしたところ、403エラーになりました。</p><br><p>最初は、</p><br><p>「コードが間違っているのかな？」</p><br><p>と思いました。</p><br><p>WAFも確認しました。</p><br><p>それでも403が出て、原因の切り分けに苦戦しました。</p><br><p>WordPressのカスタマイズでは、</p><br><ul><br><li>WordPress</li><br><li>プラグイン</li><br><li>PHP</li><br><li>レンタルサーバー</li><br><li>WAF</li><br><li>セキュリティ設定</li><br></ul><br><p>など、いろいろな場所が関係します。</p><br><p>だから、</p><br><p><strong>「403が出た＝コードが間違っている」</strong></p><br><p>とは限りません。</p><br><p>エラーが出たときは、一つずつ切り分ける。</p><br><p>今回もそれを改めて実感しました。</p><br><p>そして、無事に保存できたときは、</p><br><p><strong>「やっと通った……！」</strong></p><br><p>という感じでした。</p><br><p>個人開発、今日もコードを書く前にエラーと戦っています。</p><br><p></p>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975136982.html</link>
<pubDate>Sat, 08 Aug 2026 15:58:15 +0900</pubDate>
</item>
<item>
<title>WordPressに関連記事を自動表示してみた｜app001〜app029のカテゴリを活用</title>
<description>
<![CDATA[ <p></p><h1>WordPressでアプリ関連の記事を書いていると、記事がどんどん増えてきました。</h1><br><p>今回、自分のブログではアプリごとに、</p><br><p><strong>app001、app002……app029</strong></p><br><p>というカテゴリを作っています。</p><br><p>アプリが増えるたびにカテゴリも増えていき、気がつけば29個。</p><br><p>そこで問題になったのが、</p><br><p><strong>「関連記事を毎回手作業で設定するの、面倒じゃない？」</strong></p><br><p>ということでした。</p><br><h2>アプリごとにカテゴリを作っている</h2><br><p>自分のブログでは、アプリごとにカテゴリを分けています。</p><br><p>例えば、</p><br><ul><br><li>app001</li><br><li>app002</li><br><li>app003</li><br><li>…</li><br><li>app029</li><br></ul><br><p>という形です。</p><br><p>アプリごとに記事をまとめられるので、</p><br><p>「このアプリについて書いた記事」</p><br><p>を探しやすくなります。</p><br><p>ただ、記事数が増えてくると、別の問題が出てきます。</p><br><h2>関連記事を手作業で追加するのが大変</h2><br><p>例えばapp001についての記事を書いたとします。</p><br><p>その記事に、</p><br><p>「app001の関連記事はこちら」</p><br><p>と過去の記事へのリンクを追加する。</p><br><p>ここまでは簡単です。</p><br><p>でも、app001の記事が10本、20本と増えてきたらどうでしょう。</p><br><p>新しい記事を書くたびに、</p><br><p>「過去にどんな記事を書いたっけ？」</p><br><p>と探す必要があります。</p><br><p>さらに、過去の記事にも新しい記事へのリンクを追加したくなります。</p><br><p>記事が増えるほど、この作業が大変になります。</p><br><h2>そこでカテゴリを利用することにした</h2><br><p>せっかくWordPressにカテゴリがあるので、</p><br><p><strong>カテゴリを関連記事の判定に使えばいい</strong></p><br><p>と考えました。</p><br><p>app001の記事なら、app001カテゴリの記事を自動表示。</p><br><p>app002の記事なら、app002カテゴリの記事を自動表示。</p><br><p>このようにすれば、記事を書くときに関連記事を手作業で設定する必要がありません。</p><br><h2>29個のカテゴリを手作業で管理したくない</h2><br><p>今回のポイントはここです。</p><br><p>カテゴリが、</p><br><p>app001</p><br><p>だけなら、手作業でも何とかなります。</p><br><p>でも、</p><br><p>app001〜app029</p><br><p>まであります。</p><br><p>今後さらにアプリを作れば、app030、app031……と増える可能性もあります。</p><br><p>そう考えると、</p><br><p><strong>「カテゴリが増えるたびに設定を変更する仕組みにはしたくない」</strong></p><br><p>と思いました。</p><br><p>WordPress側で現在設定されているカテゴリを利用して、自動的に関連記事を表示する仕組みにしました。</p><br><h2>固定ページも自動表示</h2><br><p>さらに、関連記事だけではなく、</p><br><p><strong>カテゴリと同じスラッグを持つ固定ページ</strong></p><br><p>も表示するようにしました。</p><br><p>例えば、</p><br><p>カテゴリが <code>app001</code></p><br><p>なら、</p><br><p><code>app001</code> に対応する固定ページも表示。</p><br><p>その下に、app001カテゴリの記事を表示する。</p><br><p>という形です。</p><br><p>これなら、アプリごとのまとめページとしても使えます。</p><br><h2>記事を書くときはカテゴリを設定するだけ</h2><br><p>仕組みを作ったあとは、</p><br><p>記事を書く</p><br><p>↓</p><br><p>対応するカテゴリを設定する</p><br><p>↓</p><br><p>公開する</p><br><p>これだけ。</p><br><p>あとはWordPress側で、</p><br><p><strong>そのアプリに関連する固定ページや記事を自動的に表示</strong></p><br><p>してくれます。</p><br><p>関連記事を毎回探してリンクを貼る必要がありません。</p><br><h2>「記事を書くこと」に集中できる</h2><br><p>ブログを続けていると、</p><br><p>記事を書くこと以外の作業がどんどん増えていきます。</p><br><p>関連記事を設定する。</p><br><p>内部リンクを追加する。</p><br><p>カテゴリを整理する。</p><br><p>固定ページとのリンクを考える。</p><br><p>こういう作業も大切なのですが、全部手作業でやっていると記事を書く時間が減ってしまいます。</p><br><p>だから、できるところは自動化する。</p><br><p>今回の関連記事表示も、その一つです。</p><br><h2>個人開発者なので、結局自動化してしまう</h2><br><p>アプリ開発でも、</p><br><p>「この作業、毎回やるの面倒だな」</p><br><p>と思ったら自動化したくなります。</p><br><p>WordPressでも同じでした。</p><br><p>「app001〜app029の関連記事を毎回手作業で管理するのは面倒」</p><br><p>と思ったので、自動化しました。</p><br><p>ブログを書いているのか、ブログを開発しているのか、だんだん分からなくなってきます。</p><br><h2>まとめ</h2><br><p>今回は、WordPressのカテゴリを利用して関連記事を自動表示する仕組みを作ってみました。</p><br><p>現在のカテゴリは、</p><br><p><strong>app001〜app029</strong></p><br><p>まであります。</p><br><p>アプリごとのカテゴリを利用して、</p><br><ul><br><li>対応する固定ページ</li><br><li>同じカテゴリの関連記事</li><br></ul><br><p>を自動的に表示します。</p><br><p>記事を書くたびに関連記事を探す必要がなくなったので、かなり楽になりました。</p><br><p>記事数やアプリ数が増えてくるほど、こういう自動化は効いてきます。</p><br><p>アプリを作る。</p><br><p>ブログを書く。</p><br><p>ブログの管理が面倒になる。</p><br><p>仕組みを作って自動化する。</p><br><p>そして、またアプリを作る。</p><br><p>個人開発って、こういうところまで含めて面白いのかもしれません。</p><br><p></p>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975136752.html</link>
<pubDate>Sat, 08 Aug 2026 15:55:43 +0900</pubDate>
</item>
<item>
<title>App Storeの審査でリジェクトされた話｜「これで公開できる」と思った後に待っていたもの</title>
<description>
<![CDATA[ <p></p><h1>アプリが完成しました。</h1><br><p>動作確認もしました。</p><br><p>スクリーンショットも用意しました。</p><br><p>App Store Connectの設定も終わりました。</p><br><p>そして、ついにApp Storeの審査へ。</p><br><p>ここまで来ると、</p><br><p><strong>「あとは審査が終われば公開だ」</strong></p><br><p>と思います。</p><br><p>ところが、そう簡単にはいきませんでした。</p><br><h2>Appleからメールが届く</h2><br><p>審査に提出して、しばらく待ちます。</p><br><p>そしてAppleからメールが届きました。</p><br><p>「審査が終わった！」</p><br><p>と思って内容を確認すると、</p><br><p><strong>リジェクト。</strong></p><br><p>一瞬、</p><br><p>「えっ？」</p><br><p>となります。</p><br><p>アプリ自体は普通に動いています。</p><br><p>自分で何度も確認しました。</p><br><p>それでも、審査では別のところを見られます。</p><br><h2>自分では問題ないと思っていた</h2><br><p>個人開発で一番難しいのが、ここかもしれません。</p><br><p>自分では、</p><br><p>「ちゃんと動いている」</p><br><p>「これで問題ない」</p><br><p>と思っている。</p><br><p>でも、審査する側から見ると、</p><br><p>「ここを確認してください」</p><br><p>という部分が出てきます。</p><br><p>自分のアプリを客観的に見るのは、意外と難しいです。</p><br><h2>指摘された内容を確認する</h2><br><p>リジェクトされると、Appleから理由が書かれています。</p><br><p>最初は、</p><br><p>「何がダメだったんだ？」</p><br><p>という気持ちになります。</p><br><p>でも、内容を一つずつ確認していきます。</p><br><p>すると、</p><br><p>「なるほど、ここか」</p><br><p>と分かってきます。</p><br><p>リジェクトされたこと自体よりも、</p><br><p><strong>「なぜリジェクトされたのかを理解すること」</strong></p><br><p>のほうが大事だと感じました。</p><br><h2>修正して再申請</h2><br><p>原因が分かったら修正します。</p><br><p>コードを変更することもあります。</p><br><p>設定を変更することもあります。</p><br><p>App Store Connect側の情報を修正することもあります。</p><br><p>そして、もう一度審査へ。</p><br><p>ここでまた待ちます。</p><br><p>一度審査に出したあとにリジェクトされると、</p><br><p>「また審査か……」</p><br><p>という気持ちになります。</p><br><p>個人開発では、この待ち時間もなかなか大きいです。</p><br><h2>そして無事に審査を通過</h2><br><p>再申請したアプリが無事に審査を通過しました。</p><br><p>App Store Connectを確認して、</p><br><p><strong>「公開できる状態になった」</strong></p><br><p>ことを確認したときは、かなりホッとしました。</p><br><p>一度リジェクトされたからこそ、</p><br><p>「今度こそ大丈夫だった」</p><br><p>という嬉しさもありました。</p><br><h2>リジェクトされて分かったこと</h2><br><p>今回の経験で思ったのは、</p><br><p><strong>「審査に出すことも開発の一部」</strong></p><br><p>ということです。</p><br><p>アプリを作って、</p><br><p>「完成！」</p><br><p>と思っても、App Storeに公開するにはまだやることがあります。</p><br><p>審査で指摘される。</p><br><p>修正する。</p><br><p>再申請する。</p><br><p>場合によっては、また修正する。</p><br><p>これもアプリ開発の工程の一つなんだと思いました。</p><br><h2>リジェクトはちょっと怖い</h2><br><p>初めてリジェクトされると、結構焦ります。</p><br><p>「公開できないのでは？」</p><br><p>「何か重大な問題があるのでは？」</p><br><p>と考えてしまいます。</p><br><p>でも、まずはAppleから届いた内容を落ち着いて読む。</p><br><p>そして、何が問題なのかを確認する。</p><br><p>必要なら修正して、再申請する。</p><br><p>この繰り返しです。</p><br><p>一度経験すると、</p><br><p><strong>「リジェクトされても、やることはある程度決まっている」</strong></p><br><p>と思えるようになります。</p><br><h2>個人開発では全部自分</h2><br><p>会社でアプリを作っていれば、レビュー担当者や申請担当者など、いろいろな人がいます。</p><br><p>でも個人開発では、基本的に全部自分です。</p><br><p>開発する。</p><br><p>テストする。</p><br><p>申請する。</p><br><p>リジェクト内容を確認する。</p><br><p>修正する。</p><br><p>再申請する。</p><br><p>そして、また待つ。</p><br><p>なかなか大変です。</p><br><p>でも、その分、</p><br><p><strong>自分で作ったアプリがApp Storeに公開されたときの達成感も大きい</strong></p><br><p>と思います。</p><br><h2>まとめ</h2><br><p>App Storeの審査でリジェクトされたときは、正直ちょっと焦りました。</p><br><p>「完成した」と思っていたアプリが、公開できない。</p><br><p>でも、リジェクト理由を確認して、必要な修正をして、再申請。</p><br><p>そして無事に審査を通過しました。</p><br><p>今回のことで、</p><br><p><strong>アプリが完成した＝公開できる</strong></p><br><p>ではないことを改めて実感しました。</p><br><p>App Storeに公開するまでには、</p><br><p>開発。</p><br><p>テスト。</p><br><p>App Store Connectの設定。</p><br><p>スクリーンショット。</p><br><p>審査。</p><br><p>修正。</p><br><p>再申請。</p><br><p>いろいろな工程があります。</p><br><p>そして、その一つ一つでハマります。</p><br><p>でも、それも個人開発の面白さなのかもしれません。</p><br><p>次はリジェクトされないようにしたい。</p><br><p>……と思いつつ、また何かで引っかかる気がしています。</p><br><p></p>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975131113.html</link>
<pubDate>Sat, 08 Aug 2026 14:54:21 +0900</pubDate>
</item>
<item>
<title>FlutterでiOSアプリを作ってみた｜個人開発でiPhoneアプリに挑戦</title>
<description>
<![CDATA[ <div>これまでAndroid向けのアプリを作ることが多かったのですが、今回はFlutterを使ってiOSアプリを作ってみました。</div><div><br></div><div>Flutterを使えば、1つのコードベースからiOSとAndroidのアプリを開発できます。</div><div><br></div><div>以前からFlutterは使っていましたが、今回は実際にiOSアプリとして作って、最終的にはApp Storeへの公開まで挑戦しました。</div><div><br></div><div>やってみると、</div><div><br></div><div>「アプリを作ること」と「iOSアプリとして公開すること」は、やっぱり別物だな</div><div><br></div><div>と感じました。</div><div><br></div><div>FlutterでiOSアプリを作る</div><div><br></div><div>今回の開発環境はFlutterです。</div><div><br></div><div>FlutterではDartというプログラミング言語を使ってアプリを開発します。</div><div><br></div><div>画面を作ったり、ボタンを配置したり、データを扱ったり。</div><div><br></div><div>基本的なアプリの機能は、Flutterでどんどん作っていけます。</div><div><br></div><div>普段使っているFlutterの開発方法で、iOS向けのアプリも作れるのは便利です。</div><div><br></div><div>Androidとは少し違う</div><div><br></div><div>Flutterだから、</div><div><br></div><div>「AndroidとiOSは完全に同じ」</div><div><br></div><div>というわけではありません。</div><div><br></div><div>特にiOS向けに開発すると、Apple側の仕組みを意識する場面が増えます。</div><div><br></div><div>証明書。</div><div><br></div><div>Provisioning Profile。</div><div><br></div><div>Bundle ID。</div><div><br></div><div>Xcode。</div><div><br></div><div>App Store Connect。</div><div><br></div><div>などなど。</div><div><br></div><div>Flutterのコードを書いているだけでは、iOSアプリとして公開するところまで完結しません。</div><div><br></div><div>Xcodeも必要になる</div><div><br></div><div>Flutterで開発していても、iOSアプリをビルドしたり、Appleの設定を確認したりするときにはXcodeを使うことになります。</div><div><br></div><div>最初は、</div><div><br></div><div>「Flutterで作っているんだから、Flutterだけで全部できるのでは？」</div><div><br></div><div>と思っていました。</div><div><br></div><div>でも実際には、iOSアプリを公開するにはApple側の仕組みとの付き合いが必要です。</div><div><br></div><div>FlutterとXcode。</div><div><br></div><div>この2つを行ったり来たりしながら開発することになります。</div><div><br></div><div>シミュレーターで動かしてみる</div><div><br></div><div>iOSシミュレーターでアプリを起動してみると、</div><div><br></div><div>「本当にiPhoneアプリが動いている」</div><div><br></div><div>という感じがして、ちょっとテンションが上がります。</div><div><br></div><div>コードを書いて、</div><div><br></div><div>Flutterでビルドして、</div><div><br></div><div>シミュレーターで確認する。</div><div><br></div><div>この流れはなかなか楽しいです。</div><div><br></div><div>ただ、実際の端末で確認すると、また違った問題が出てくることもあります。</div><div><br></div><div>App Storeに公開するまでが長い</div><div><br></div><div>アプリが完成したら、App Storeに公開します。</div><div><br></div><div>ここからがまた大変でした。</div><div><br></div><div>App Store Connectへの登録。</div><div><br></div><div>スクリーンショットの準備。</div><div><br></div><div>アプリ情報の入力。</div><div><br></div><div>プライバシー関連の設定。</div><div><br></div><div>年齢レーティング。</div><div><br></div><div>輸出コンプライアンス。</div><div><br></div><div>そして審査。</div><div><br></div><div>アプリのプログラムが完成したからといって、すぐに公開できるわけではありません。</div><div><br></div><div>スクリーンショットにも苦戦</div><div><br></div><div>App Storeに登録するスクリーンショットも、思っていた以上に面倒でした。</div><div><br></div><div>必要なサイズを確認して、</div><div><br></div><div>スクリーンショットを用意して、</div><div><br></div><div>ファイルを整理して、</div><div><br></div><div>App Store Connectにアップロードします。</div><div><br></div><div>さらに、アプリを更新すればスクリーンショットも更新したくなることがあります。</div><div><br></div><div>こういう作業は、一度やるだけならまだいいのですが、何度もやるとなかなか大変です。</div><div><br></div><div>そこでFastlaneを使って、スクリーンショットを所定のフォルダに入れて、まとめてアップロードする方法も試しました。</div><div><br></div><div>App Store Connect APIも使ってみた</div><div><br></div><div>さらに、App Store Connect APIも使ってみました。</div><div><br></div><div>App Store Connectの情報をプログラムから取得できるので、</div><div><br></div><div>「これ、自分用の管理アプリを作ったら便利なのでは？」</div><div><br></div><div>と思うようになります。</div><div><br></div><div>個人開発をしていると、</div><div><br></div><div>問題を見つける → その問題を解決するアプリを作る</div><div><br></div><div>という流れが自然に発生します。</div><div><br></div><div>今回もまさにそれでした。</div><div><br></div><div>FlutterでiOSアプリを作ってみて</div><div><br></div><div>FlutterでiOSアプリを作ってみて感じたのは、</div><div><br></div><div>「アプリを作る部分は意外と楽しい。でも公開までが長い」</div><div><br></div><div>ということです。</div><div><br></div><div>Flutterで画面を作って、機能を実装して、アプリが動いた瞬間はかなり嬉しい。</div><div><br></div><div>でも、その後にApp Store Connectの設定やスクリーンショット、審査などが待っています。</div><div><br></div><div>そして、ようやく公開。</div><div><br></div><div>ここまで来ると、</div><div><br></div><div>「やっとApp Storeに並んだ！」</div><div><br></div><div>という達成感があります。</div><div><br></div><div>まとめ</div><div><br></div><div>今回はFlutterを使ってiOSアプリを作ってみました。</div><div><br></div><div>Flutterを使えば、iOS向けのアプリも開発できます。</div><div><br></div><div>ただし、</div><div><br></div><div>Flutterでアプリを作ること</div><div><br></div><div>と</div><div><br></div><div>App Storeに公開すること</div><div><br></div><div>は別の作業です。</div><div><br></div><div>開発環境の準備。</div><div><br></div><div>Xcode。</div><div><br></div><div>iOSの設定。</div><div><br></div><div>App Store Connect。</div><div><br></div><div>スクリーンショット。</div><div><br></div><div>審査。</div><div><br></div><div>いろいろなところでハマりました。</div><div><br></div><div>それでも、自分で作ったアプリがApp Storeに並んだときは嬉しいものです。</div><div><br></div><div>今後もFlutterを使って、思いついたアプリを少しずつ形にしていきたいと思います。</div><div><br></div><div>そして、また新しいところでハマると思います。</div><div><br></div><div>そのときは、それも個人開発のネタとしてブログに残していこうと思います。</div>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975130943.html</link>
<pubDate>Sat, 08 Aug 2026 14:52:03 +0900</pubDate>
</item>
<item>
<title>FastlaneでApp Storeのスクリーンショットをまとめてアップロードしてみた</title>
<description>
<![CDATA[ <div>App Storeにアプリを公開するとき、意外と面倒だったのがスクリーンショットの登録でした。</div><div><br></div><div>アプリの画面を撮影すること自体は、それほど難しくありません。</div><div><br></div><div>問題は、その後です。</div><div><br></div><div>App Store Connectを開いて、スクリーンショットを1枚ずつ登録していく。</div><div><br></div><div>アプリが複数あったり、端末サイズが複数あったりすると、これがなかなか面倒です。</div><div><br></div><div>そこで今回は、Fastlaneを使ってスクリーンショットをまとめてアップロードしてみました。</div><div><br></div><div>スクリーンショットは別の方法で用意</div><div><br></div><div>今回、Fastlaneでスクリーンショットを撮影したわけではありません。</div><div><br></div><div>まず、必要なスクリーンショットを自分で用意します。</div><div><br></div><div>その後、App Store Connectにアップロードするための所定のフォルダに画像を入れておきます。</div><div><br></div><div>イメージとしては、</div><div><br></div><div>「スクリーンショットを撮影する」</div><div><br></div><div>↓</div><div><br></div><div>「必要なサイズに整える」</div><div><br></div><div>↓</div><div><br></div><div>「決められたフォルダに入れる」</div><div><br></div><div>↓</div><div><br></div><div>「Fastlaneでまとめてアップロードする」</div><div><br></div><div>という流れです。</div><div><br></div><div>1枚ずつアップロードするのが面倒</div><div><br></div><div>最初はApp Store Connectから普通にアップロードしていました。</div><div><br></div><div>もちろん、それでもできます。</div><div><br></div><div>ただ、アプリを更新してスクリーンショットを差し替えるたびに、</div><div><br></div><div>「App Store Connectを開く」</div><div><br></div><div>「該当するアプリを探す」</div><div><br></div><div>「バージョンを開く」</div><div><br></div><div>「スクリーンショットを登録する」</div><div><br></div><div>という作業が発生します。</div><div><br></div><div>これを何度もやっていると、</div><div><br></div><div>「これ、もっと簡単にできないかな？」</div><div><br></div><div>と思ってきます。</div><div><br></div><div>そこでFastlaneを使ってみることにしました。</div><div><br></div><div>Fastlaneにスクリーンショットを置く</div><div><br></div><div>まず、アップロードするスクリーンショットを所定のフォルダに整理します。</div><div><br></div><div>端末サイズなどを意識してファイルを配置しておきます。</div><div><br></div><div>ここで重要なのが、</div><div><br></div><div>「Fastlaneが分かるようにファイルを整理しておく」</div><div><br></div><div>ことです。</div><div><br></div><div>最初はフォルダ構成やファイル名について、</div><div><br></div><div>「これで合っているのかな？」</div><div><br></div><div>と少し迷いました。</div><div><br></div><div>でも、一度ルールを理解してしまえば、あとは同じ形式で画像を入れていくだけです。</div><div><br></div><div>そしてFastlaneでアップロード</div><div><br></div><div>スクリーンショットをフォルダに入れたら、Fastlaneを使ってアップロードします。</div><div><br></div><div>今までApp Store Connectを開いて手作業で登録していたものを、コマンドからまとめて処理できます。</div><div><br></div><div>これが結構便利です。</div><div><br></div><div>特に、</div><div><br></div><div>「画像を何枚もまとめてアップロードできる」</div><div><br></div><div>というのが楽でした。</div><div><br></div><div>アプリを更新するときにも便利</div><div><br></div><div>アプリを更新すると、スクリーンショットも変更したくなることがあります。</div><div><br></div><div>例えば、</div><div><br></div><div>「新しい機能を追加したのでスクショも変更したい」</div><div><br></div><div>という場合です。</div><div><br></div><div>そのときも、</div><div><br></div><div>新しいスクリーンショットを用意する</div><div>↓</div><div>所定のフォルダに入れる</div><div>↓</div><div>Fastlaneでアップロード</div><div><br></div><div>という流れにできます。</div><div><br></div><div>App Store Connectを操作する時間を減らせるのは、個人開発では結構ありがたいです。</div><div><br></div><div>ただし、最初の設定はちょっと分かりにくい</div><div><br></div><div>もちろん、ここでも一発ではいきませんでした。</div><div><br></div><div>Fastlaneの導入。</div><div><br></div><div>フォルダ構成。</div><div><br></div><div>スクリーンショットのファイル名。</div><div><br></div><div>端末サイズ。</div><div><br></div><div>App Store Connect APIとの連携。</div><div><br></div><div>いろいろ確認することがあります。</div><div><br></div><div>特に、</div><div><br></div><div>「どこに画像を置けばいいの？」</div><div><br></div><div>というところは、最初に少し迷いました。</div><div><br></div><div>でも、一度自分の環境で動く形を作ってしまえば、次からはかなり楽になります。</div><div><br></div><div>個人開発は「手作業を減らす」のも大事</div><div><br></div><div>個人開発では、プログラムを書くこと以外にもやることがたくさんあります。</div><div><br></div><div>アプリを作る。</div><div><br></div><div>テストする。</div><div><br></div><div>スクリーンショットを用意する。</div><div><br></div><div>App Store Connectに登録する。</div><div><br></div><div>説明文を書く。</div><div><br></div><div>審査に出す。</div><div><br></div><div>公開後に更新する。</div><div><br></div><div>全部一人でやります。</div><div><br></div><div>だからこそ、</div><div><br></div><div>「毎回やる作業はできるだけ自動化したい」</div><div><br></div><div>と思うようになります。</div><div><br></div><div>今回のスクリーンショットのアップロードも、その一つでした。</div><div><br></div><div>Fastlaneを使ってみて</div><div><br></div><div>Fastlaneでスクリーンショットを撮影するところまではやっていません。</div><div><br></div><div>今回やったのは、</div><div><br></div><div>「自分で用意したスクリーンショットを所定のフォルダに整理して、FastlaneでまとめてApp Store Connectへアップロードする」</div><div><br></div><div>という方法です。</div><div><br></div><div>これだけでも、手作業で1枚ずつアップロードするよりかなり楽になりました。</div><div><br></div><div>最初に環境を作るまでは少し面倒。</div><div><br></div><div>でも、一度仕組みを作ってしまえば、次回からは同じ方法でアップロードできます。</div><div><br></div><div>個人開発では、こういう小さな効率化が意外と効いてきます。</div><div><br></div><div>まとめ</div><div><br></div><div>App Store用のスクリーンショットは、撮影するだけでは終わりません。</div><div><br></div><div>サイズを確認したり、整理したり、App Store Connectへアップロードしたり。</div><div><br></div><div>地味ですが、意外と時間を使う作業です。</div><div><br></div><div>そこで今回はFastlaneを使って、</div><div><br></div><div>スクリーンショットを所定のフォルダに入れる → まとめてアップロードする</div><div><br></div><div>という方法にしてみました。</div><div><br></div><div>アプリそのものを作るだけではなく、</div><div><br></div><div>「公開するまでの面倒な作業をどう減らすか」</div><div><br></div><div>も個人開発では重要だと感じています。</div><div><br></div><div>こうやって少しずつ作業を自動化していくと、アプリ開発そのものに使える時間も増やせそうです。</div>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975130750.html</link>
<pubDate>Sat, 08 Aug 2026 14:49:53 +0900</pubDate>
</item>
<item>
<title>App Store Connect APIを使ってみた｜個人開発の管理をもっと効率化したい</title>
<description>
<![CDATA[ <div>App Storeにアプリを公開してから、少し気になることがありました。</div><div><br></div><div>それは、</div><div><br></div><div>「App Store Connect、毎回ブラウザで確認するの面倒じゃない？」</div><div><br></div><div>ということ。</div><div><br></div><div>アプリをいくつか公開していると、それぞれのアプリの情報を確認したり、App Store Connectを開いて数字を見たりする作業が増えていきます。</div><div><br></div><div>そこで、以前から気になっていたApp Store Connect APIを使ってみることにしました。</div><div><br></div><div>App Store Connect APIって何？</div><div><br></div><div>簡単にいうと、App Store Connectの情報をプログラムから取得したり、一部の情報を操作したりできる仕組みです。</div><div><br></div><div>ブラウザでApp Store Connectを開いて、</div><div><br></div><div>「このアプリの情報を確認する」</div><div><br></div><div>という作業を、プログラムからできるようになります。</div><div><br></div><div>個人開発でアプリを複数管理していると、こういう仕組みはかなり魅力的です。</div><div><br></div><div>APIを使って何をしたかったのか</div><div><br></div><div>今回やりたかったのは、</div><div><br></div><div>「自分のアプリの情報を一覧で確認できるようにする」</div><div><br></div><div>ということ。</div><div><br></div><div>アプリが増えてくると、</div><div><br></div><div>「このアプリの情報はどこだっけ？」</div><div><br></div><div>とApp Store Connectを行ったり来たりすることがあります。</div><div><br></div><div>そこで、</div><div><br></div><div>- アプリ名</div><div>- App ID</div><div>- バージョン</div><div>- ストア情報</div><div>- 各種設定</div><div><br></div><div>などを取得して、自分のアプリで一覧表示できたら便利そうだと思いました。</div><div><br></div><div>最終的には、App Store Connectを開かなくても、必要な情報をまとめて確認できるアプリを作ることも考えています。</div><div><br></div><div>まずAPIキーが必要だった</div><div><br></div><div>APIを使うためには、App Store Connect側でAPIキーを用意する必要があります。</div><div><br></div><div>ここで最初の壁。</div><div><br></div><div>「APIを呼べばいいだけでしょ」</div><div><br></div><div>と思っていたのですが、実際には、</div><div><br></div><div>APIキーの作成や権限設定</div><div><br></div><div>などがあります。</div><div><br></div><div>こういう設定は、普段のアプリ開発とは少し違います。</div><div><br></div><div>アプリを作っているだけなら意識しないようなところで、また時間を使います。</div><div><br></div><div>JWTも必要</div><div><br></div><div>App Store Connect APIでは、認証にJWTを使います。</div><div><br></div><div>ここでも、</div><div><br></div><div>「JWTって何だっけ？」</div><div><br></div><div>となりました。</div><div><br></div><div>APIキーを作っただけでは終わりません。</div><div><br></div><div>必要な情報を使って認証用のトークンを作り、それをAPIリクエストに付けてアクセスします。</div><div><br></div><div>アプリを作るためのAPIとはいえ、認証周りはそれなりにしっかりしています。</div><div><br></div><div>APIを呼べたときはちょっと嬉しい</div><div><br></div><div>設定を進めて、ようやくAPIからデータを取得できました。</div><div><br></div><div>ブラウザでApp Store Connectを開いて確認していた情報が、</div><div><br></div><div>プログラムから取得できる。</div><div><br></div><div>これは結構楽しいです。</div><div><br></div><div>個人開発をしていると、</div><div><br></div><div>「自分が欲しい機能を自分で作る」</div><div><br></div><div>ということができます。</div><div><br></div><div>今回もまさにそれでした。</div><div><br></div><div>ただし、何でもAPIでできるわけではない</div><div><br></div><div>ここは実際に使ってみて分かったことです。</div><div><br></div><div>App Store Connect APIなら、App Store Connectの操作を全部自動化できると思っていたのですが、そうではありません。</div><div><br></div><div>APIで扱える情報と、App Store Connect上でしか設定できないものがあります。</div><div><br></div><div>そのため、</div><div><br></div><div>「App Store Connectを完全にAPIだけで操作する」</div><div><br></div><div>というより、</div><div><br></div><div>APIで取得・管理できるところを自動化する</div><div><br></div><div>という考え方のほうが現実的です。</div><div><br></div><div>そこで自分用アプリを作りたくなった</div><div><br></div><div>APIを触っているうちに、</div><div><br></div><div>「これ、自分用のアプリにしたら便利じゃない？」</div><div><br></div><div>と思うようになりました。</div><div><br></div><div>複数のアプリを公開していると、確認したい情報も増えてきます。</div><div><br></div><div>だったら、</div><div><br></div><div>自分のアプリを一覧で管理できるApp Store Connect管理アプリ</div><div><br></div><div>を作ってしまえばいい。</div><div><br></div><div>個人開発をしていると、こうやって新しいアプリのアイデアがどんどん増えていきます。</div><div><br></div><div>困るのは、</div><div><br></div><div>「作りたいものが増える一方で、時間は増えない」</div><div><br></div><div>ことです。</div><div><br></div><div>APIを使ってみて思ったこと</div><div><br></div><div>App Store Connect APIを使ってみて思ったのは、</div><div><br></div><div>「もっと早く使えばよかった」</div><div><br></div><div>ということでした。</div><div><br></div><div>ブラウザで確認するだけならAPIは必要ありません。</div><div><br></div><div>でも、自分専用のツールを作ったり、複数アプリの情報をまとめたり、自動化したりするなら、APIはかなり面白い存在です。</div><div><br></div><div>そして何より、</div><div><br></div><div>「App Store Connectのためのアプリを自分で作る」</div><div><br></div><div>というのが、個人開発としてちょっと面白い。</div><div><br></div><div>アプリを作っている人が、アプリを管理するためのアプリまで作る。</div><div><br></div><div>完全に個人開発沼です。</div><div><br></div><div>まとめ</div><div><br></div><div>今回はApp Store Connect APIを使ってみました。</div><div><br></div><div>最初は、</div><div><br></div><div>「APIで情報を取得するだけ」</div><div><br></div><div>くらいに考えていました。</div><div><br></div><div>ところが実際には、</div><div><br></div><div>APIキーの作成、権限設定、JWT認証など、いろいろなところで勉強することがありました。</div><div><br></div><div>それでも、一度APIからデータを取得できるようになると、</div><div><br></div><div>「これ、いろいろ自動化できそう」</div><div><br></div><div>という気持ちになります。</div><div><br></div><div>アプリを作る。</div><div><br></div><div>App Storeに公開する。</div><div><br></div><div>App Store Connect APIで管理する。</div><div><br></div><div>そして、また新しいアプリを作る。</div><div><br></div><div>個人開発は、なかなか終わりません。</div><div><br></div><div>でも、こうやって少しずつ自分の開発環境を便利にしていくのも、個人開発の面白さなのかもしれません。</div>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975130397.html</link>
<pubDate>Sat, 08 Aug 2026 14:45:50 +0900</pubDate>
</item>
<item>
<title>App Storeにアプリを公開するまでにハマったこと｜個人開発で想像以上に大変だった</title>
<description>
<![CDATA[ <div>アプリを作れば、あとはApp Storeに公開するだけ。</div><div><br></div><div>最初は、そんなふうに考えていました。</div><div><br></div><div>実際にアプリを完成させて、</div><div><br></div><div>「よし、これで公開できる！」</div><div><br></div><div>と思ったところからが、本当のスタートでした。</div><div><br></div><div>App Storeに公開するまでには、アプリを作ること以外にも、いろいろなところでハマりました。</div><div><br></div><div>今回は、個人開発でApp Storeにアプリを公開するまでに実際に苦戦したことをまとめます。</div><div><br></div><div>1．まず「アプリが完成した」と思っていた</div><div><br></div><div>アプリの機能を作って、動作確認も終わった。</div><div><br></div><div>これで完成だと思っていました。</div><div><br></div><div>でも、App Storeに公開するには、それだけでは足りません。</div><div><br></div><div>アプリ名、サブタイトル、説明文、キーワード、スクリーンショット、プライバシー関連の設定など、やることがたくさんあります。</div><div><br></div><div>「プログラムを書くこと」と「アプリを公開すること」は、別の作業なんだと実感しました。</div><div><br></div><div>2．スクリーンショットのサイズでハマる</div><div><br></div><div>個人的にかなり面倒だったのが、App Store用のスクリーンショットです。</div><div><br></div><div>スマホの画面を用意すれば、そのまま使えると思っていました。</div><div><br></div><div>ところが、App Storeには端末ごとに必要なサイズがあります。</div><div><br></div><div>シミュレーターでスクリーンショットを撮って、</div><div><br></div><div>「これでいけるだろう」</div><div><br></div><div>と思ってアップロード。</div><div><br></div><div>するとサイズが合わない。</div><div><br></div><div>また撮り直す。</div><div><br></div><div>そして別のサイズでもエラー。</div><div><br></div><div>この繰り返し。</div><div><br></div><div>アプリの機能とは関係ないところで時間が溶けていきました。</div><div><br></div><div>3．App Store Connectの設定項目が多い</div><div><br></div><div>App Storeに公開するには、App Store Connectを使います。</div><div><br></div><div>ただ、初めて使うと、</div><div><br></div><div>「この項目は何？」</div><div><br></div><div>という設定がかなりあります。</div><div><br></div><div>価格設定、年齢レーティング、App Privacy、輸出コンプライアンスなど、アプリを作っているだけでは意識していなかった項目が次々に出てきます。</div><div><br></div><div>アプリ開発者というより、</div><div><br></div><div>「App Store申請担当者」</div><div><br></div><div>になったような気分でした。</div><div><br></div><div>4．審査で指摘される</div><div><br></div><div>そして、いよいよ審査。</div><div><br></div><div>ここまで来ると、</div><div><br></div><div>「やっと終わった！」</div><div><br></div><div>と思います。</div><div><br></div><div>ところが、そう簡単には終わりません。</div><div><br></div><div>Appleからメールが来る。</div><div><br></div><div>そして、</div><div><br></div><div>「修正してください」</div><div><br></div><div>という内容。</div><div><br></div><div>自分では問題ないと思っていたところを指摘されます。</div><div><br></div><div>ここで一度、かなり心が折れます。</div><div><br></div><div>でも、指摘された内容を確認して修正。</div><div><br></div><div>もう一度申請。</div><div><br></div><div>個人開発では、こういう小さなやり直しが結構大きなダメージになります。</div><div><br></div><div>5．「公開する」だけでも意外と長い</div><div><br></div><div>アプリを作る。</div><div><br></div><div>↓</div><div><br></div><div>テストする。</div><div><br></div><div>↓</div><div><br></div><div>スクリーンショットを作る。</div><div><br></div><div>↓</div><div><br></div><div>App Store Connectを設定する。</div><div><br></div><div>↓</div><div><br></div><div>申請する。</div><div><br></div><div>↓</div><div><br></div><div>審査を待つ。</div><div><br></div><div>↓</div><div><br></div><div>指摘があれば修正する。</div><div><br></div><div>↓</div><div><br></div><div>再申請する。</div><div><br></div><div>こうやって書くと、かなり工程があります。</div><div><br></div><div>アプリそのものを作る時間だけを考えていたので、</div><div><br></div><div>「公開するまでにこんなにやることがあるのか」</div><div><br></div><div>というのが正直な感想でした。</div><div><br></div><div>6．それでも公開できたときは嬉しい</div><div><br></div><div>いろいろハマりましたが、最終的にApp Storeに自分のアプリが表示されたときは、やっぱり嬉しかったです。</div><div><br></div><div>自分で作ったアプリが、</div><div><br></div><div>本当にApp Storeに並んでいる。</div><div><br></div><div>これは個人開発をやっていて、かなりテンションが上がる瞬間でした。</div><div><br></div><div>ただし、ここで終わりではありません。</div><div><br></div><div>公開しただけでは、誰もアプリをインストールしてくれません。</div><div><br></div><div>むしろ、ここからが難しい。</div><div><br></div><div>7．公開後は「どうやって見つけてもらうか」</div><div><br></div><div>App Storeに公開できたので、</div><div><br></div><div>「これで少しはダウンロードされるだろう」</div><div><br></div><div>と思っていました。</div><div><br></div><div>ところが、現実はそんなに甘くありません。</div><div><br></div><div>アプリを公開しても、存在を知られなければダウンロードされません。</div><div><br></div><div>そこで今度は、</div><div><br></div><div>- ブログを書く</div><div>- SEOをやる</div><div>- Xで発信する</div><div>- アプリの紹介ページを作る</div><div>- App Storeのスクリーンショットを改善する</div><div><br></div><div>など、次の課題が出てきました。</div><div><br></div><div>アプリを作る。</div><div><br></div><div>↓</div><div><br></div><div>App Storeに公開する。</div><div><br></div><div>↓</div><div><br></div><div>見つけてもらう。</div><div><br></div><div>↓</div><div><br></div><div>インストールしてもらう。</div><div><br></div><div>↓</div><div><br></div><div>使ってもらう。</div><div><br></div><div>思っていた以上に長い道のりです。</div><div><br></div><div>まとめ</div><div><br></div><div>App Storeにアプリを公開するまでで、特に大変だったのは、</div><div><br></div><div>「アプリを作ること」だけではなかった</div><div><br></div><div>ということでした。</div><div><br></div><div>スクリーンショットのサイズ。</div><div><br></div><div>App Store Connectの設定。</div><div><br></div><div>プライバシー関連の項目。</div><div><br></div><div>審査。</div><div><br></div><div>修正。</div><div><br></div><div>再申請。</div><div><br></div><div>そして、公開後の集客。</div><div><br></div><div>個人開発を始める前は、</div><div><br></div><div>「アプリを完成させれば終わり」</div><div><br></div><div>だと思っていました。</div><div><br></div><div>実際には、</div><div><br></div><div>アプリを完成させてからが本番。</div><div><br></div><div>今は、公開したアプリをどうやって知ってもらうかに挑戦しています。</div><div><br></div><div>まだまだ試行錯誤中ですが、こういう失敗やハマったことも含めて、個人開発の記録として残していこうと思います。</div>
]]>
</description>
<link>https://ameblo.jp/subeteshitagaki/entry-12975130211.html</link>
<pubDate>Sat, 08 Aug 2026 14:43:42 +0900</pubDate>
</item>
</channel>
</rss>
