個人アプリ開発で月収5万円目指す

アプリ個人開発 まるブログ

アプリ開発覚え書き

厳選!私が実際に役に立ったUnity,iOS おすすめ動画講座【随時追加】

f:id:marumaro7:20200624224539p:plain

はじめに

みなさんプログラミングの勉強どうやって進めていますか??

私のおすすめは断然これ!


Udemy です。

友人から教えてもらったのですが、一流講師の講座が時間を選ばず受けられます。

セール時には1000円台から受講できるので本を買うより安くコスパ最強です。

エンジニアにマンツーマンで教えてもらおうと思うと、
1時間2500円が相場なので、それを考えると定価で購入してもお得だと思ってます。
とはいうものの、副業するならコストはできるだけ抑えたいので購入はセール時が狙い目です。

質問し放題に加えて、30日間返金保障なので安心して購入できます。

Udemyというか動画教材の欠点としては、
あとで見返すときに「確認したいところがわからない」
ということがあるので、Qiitaやブログなどでメモを残しておくと良いかもしれません。

Udemyでは細かくセクションごとに分かれ探しやすくなっていますが、
それでも不思議、私は探す笑

私が実際に役に立ったUdemyのおすすめ講座を紹介します。

Unity教材

Unity ゲーム開発:インディーゲームクリエイターが教える C#の基礎からゲームリリースまで【スタジオしまづ】

Unity ゲーム開発:インディーゲームクリエイターが教える C#の基礎からゲームリリースまで【スタジオしまづ】

【感想】
Unity教材で迷ったらこれで間違いなし! marumaro7.hatenablog.com ↑こちらの記事でも紹介しましたが、Unityの基礎だけでなく、
超つまづきやすいAndroidiOSのリリース手順まで解説しています。
なんですかこれ、、、神ですか?

Unity3D入門の決定版!RPG開発の基本をUnityインストラクターと共に進めるハンズオンコース【スタジオしまづ】

Unity3D入門の決定版!RPG開発の基本をUnityインストラクターと共に進めるハンズオンコース【スタジオしまづ】

【感想】
Unityで3Dをやりたいならこれ!
基礎から学ぶので初心者でも安心♪

Unityゲーム開発入門:Unityインストラクターが教えるマリオ風2Dアクションゲームを作成する方法【スタジオしまづ】

Unityゲーム開発入門:Unityインストラクターが教えるマリオ風2Dアクションゲームを作成する方法【スタジオしまづ】

【感想】
自分でマリオみたいなゲームが作れる幸せ!
マリオメーカーよりも自由に!

[初心者向け] Blender 2.8でアニメーションを作成して Unity で動かすまでの30分講座

[初心者向け] Blender 2.8でアニメーションを作成して Unity で動かすまでの30分講座

【感想】
3Dモデルに命を吹き込む!
Unity×Blenderで制作の幅が広がります。
Blenderのインストールは事前に必要です。

Unity2Dパズルゲーム開発入門:Admob広告実装と高速にスマホゲームを量産する実践テクニック講座【スタジオしまづ】

Unity2Dパズルゲーム開発入門:Admob広告実装と高速にスマホゲームを量産する実践テクニック講座【スタジオしまづ】

【感想】
とにかく量を作る!
なるほど量産テクニックです。

Unityインストラクターが教えるシャドウバースのような本格2Dカードゲーム開発コース【スタジオしまづ】

Unityインストラクターが教えるシャドウバースのような本格2Dカードゲーム開発コース【スタジオしまづ】

【感想】
Unityのチュートリアルをなにかしらやったことある人向けです。
カードゲームの基礎はここに。

iOS教材

【iOS13対応】未経験者がiPhoneアプリ開発者になるための全て iOS Boot Camp

【iOS13対応】未経験者がiPhoneアプリ開発者になるための全て iOS Boot Camp

【感想】
ベストセラーだけあって初心者でもわかりやすい
Firebaseとの連携も解説されているのが個人的に嬉しいポイントです。

おわりに

Unity教材全部スタジオしまづやないか!と思いました?
だってわかりやすいんだもの、、、

【Unity】PlayFab ログイン機能の実装

はじめに

UnityでのPlayFab使用におけるログイン方法です。

前回記事での問題

marumaro7.hatenablog.com

こちらの記事でログインを実装しましたが、
ログインに使用する文字列は"GettingStartedGuide"の固定されたものとなっています。
(PlayFabのアカウント情報の下の方を見ると、PlayFabIDと紐づいている文字列が表示されます)
B96E4C057BE19AC2_»_概要_·_PlayFab.png

そのため、誰がログインしても同じPlayFabアカウントとなってしまうので、
端末ごとにログインに使う文字列を変えてやる必要があります。

端末ごとにログインIDを変更

そこで、端末ごとにログインできるようにしたのが下記のコードになります。
(kanさんのブログ(文末の参考を参照)内容を私でも直感的にわかるように書き換えました。)

using System;
using PlayFab;
using PlayFab.ClientModels;
using UnityEngine;

/// <summary>
/// PlayFabのログイン処理を行うクラス
/// </summary>
public class PlayFabLogin : MonoBehaviour
{    
    private bool _shouldCreateAccount;//アカウントを作成するか    
    private string _customID;//ログイン時に使うID

    //=================================================================================
    //ログイン処理
    //=================================================================================
    public void Start()
    {
        Login();        
    }



    //ログイン実行
    private void Login()
    {
        _customID = LoadCustomID();
        var request = new LoginWithCustomIDRequest { CustomId = _customID, CreateAccount = _shouldCreateAccount };//補足 既にアカウントが作成されており、CreateAccountがtrueになっていてもエラーにはならない
        PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
    }

    //ログイン成功
    private void OnLoginSuccess(LoginResult result)
    {
        //アカウントを作成しようとしたのに、IDが既に使われていて、出来なかった場合
        if (_shouldCreateAccount == true && result.NewlyCreated == false)
        {
            Debug.LogWarning("CustomId :" +_customID+ "は既に使われています。");
            Login();//ログインしなおし
            return;
        }

        //アカウント新規作成できたらIDを保存
        if (result.NewlyCreated == true)
        {
            SaveCustomID();
            Debug.Log("新規作成成功");
        }

        Debug.Log("ログイン成功!!");
    }

    //ログイン失敗
    private void OnLoginFailure(PlayFabError error)
    {
        Debug.LogError("PlayFabのログインに失敗\n" + error.GenerateErrorReport());
    }




    //=================================================================================
    //カスタムIDの取得
    //=================================================================================

    //IDを保存する時のKEY
    private static readonly string CUSTOM_ID_SAVE_KEY = "CUSTOM_ID_SAVE_KEY";

    //IDを取得
    private string LoadCustomID()
    {
        //IDをセーブデータから取得
        string id = PlayerPrefs.GetString(CUSTOM_ID_SAVE_KEY);

        //idの中身がnullもしくは空の文字列("")の場合は_shouldCreateAccountはtrueになる。
        _shouldCreateAccount = string.IsNullOrEmpty(id);

        //idの中身がない場合、文字列を新規作成
        if (_shouldCreateAccount==true)
        {
            return GenerateCustomID();//文字列を新規作成
        }
        else
        {
            return id;//セーブされた文字列を返す
        }
    }

    //IDの保存
    private void SaveCustomID()
    {
        PlayerPrefs.SetString(CUSTOM_ID_SAVE_KEY, _customID);
    }




    //=================================================================================
    //カスタムIDの生成
    //=================================================================================

    //IDを生成する
    //ユニークな文字列をGuidを使用し生成
    //https://docs.microsoft.com/ja-jp/dotnet/api/system.guid.tostring?redirectedfrom=MSDN&view=netframework-4.8#System_Guid_ToString_System_String_
    private string GenerateCustomID()
    {
        //Guidの構造体生成
        Guid guid = Guid.NewGuid();
               
        return guid.ToString("N");//書式指定子はNを指定 詳細は「Guid.ToString メソッド」のドキュメント参照
    }

}



処理の流れとしては、こちらになります。

1.初ログイン時にIDを生成(32桁のランダムな英数字)
2.既にそのIDが使われている場合は新たにIDを生成(使われていないIDを見つけるまで)
3.ログインが成功したらIDをPlayerPrefsに保存
4.2回目以降はPlayerPrefsに保存されたIDでログイン

詳細な内容はコメントを見ていただければ把握できると思います。

ログインに使用する文字列はPlayerPrefsで保存しているので、
Androidはアプリをアンインストールしてもデータを消さない限り大丈夫ですが、
iOSの方はアプリをアンインストールすると文字列のセーブデータが消えてしまいます。

その点を理解した上で実装をお願いします。

参考

kan-kikuchi.hatenablog.com

kan-kikuchi.hatenablog.com

【Unity】PlayFab テスト通信

はじめに

UnityでのPlayFab使用におけるUnity側での初期設定方法です。

前回までの記事でPlayFabを使う準備ができたら
試しにPlayFabと通信してログインができるか試してみます。

前回の記事1 marumaro7.hatenablog.com

前回の記事2 marumaro7.hatenablog.com

オブジェクト作成

スクリプトを入れるオブジェクトを作ります。
「空のゲームオブジェクト」を作成し、「PlayFabLogin」と名前をつけておきます。

UdemyTestScene_-_UdemyKakinTest_-_iOS_-_Unity_2020_3_18f1_Personal__Personal___Metal_.png

スクリプト作成

Assets直下にScripsフォルダを作成
→作成したフォルダ内でスクリプトを新規作成
スクリプトの名前を「PlayFabLogin」としてスクリプトを作成します。
(名前はなんでも良いのですが、テスト用のコードと同じにしておきます。)

PlayFabTest_-_PushTest_-_PC__Mac___Linux_Standalone_-_Unity_2020_3_2f1_Personal__Personal___Metal_.png

コードは、PlayFabの公式ページにテスト用のコードがあるので、
こちらを少しわかりやすくしたものを使用します。
元コードはリンク先の「最初の API 呼び出しを実行する」の部分です。

docs.microsoft.com

ちなみに「API」とは、「Application Programming Interface」の頭文字です。
ひらたくいうと、PlayFabで用意している便利関数のことです。
PlayFabのAPIを呼び出して処理をしていきます。

下記のコードを、作成したスクリプトに貼り付けます。

using PlayFab;//追加
using PlayFab.ClientModels;//追加
using UnityEngine;

public class PlayFabLogin : MonoBehaviour
{
    public void Start()
    {
        //リクエスト生成
        var request = new LoginWithCustomIDRequest { CustomId = "GettingStartedGuide", CreateAccount = true };

        //ログイン処理実行
        PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
    }

    //ログイン成功時に呼び出される関数
    private void OnLoginSuccess(LoginResult result)
    {
        Debug.Log("ログイン成功!!");
    }

    //ログイン失敗時に呼び出される関数
    private void OnLoginFailure(PlayFabError error)
    {        
        Debug.LogError("ログインに失敗しました。");
        Debug.LogError(error.GenerateErrorReport());//エラー内容
    }
}

   

オブジェクトへ割り当て

ひとまず、コード内容はおいておいて、スクリプトをセーブし、
「PlayFabManager」に割り当てて、実行してみます。


実行後、無事ログインが成功しました! PlayFabTest_-_PushTest_-_PC__Mac___Linux_Standalone_-_Unity_2020_3_2f1_Personal__Personal___Metal_.png

   

ここでPlayFab側のダッシュボードを見てみると、ユーザーの数が増えていることがわかります。
(変化がない場合は2分程度待ってください。)
※「金額」と書いてありますが、「数」の間違い(原文は「amount」)なので
  ユーザー数と思ってください。

ダッシュボード_·_PlayFab.png


ユーザーIDは
プレイヤー>検索
で確認することができます。

プレイヤー_·_PlayFab.png

ちなみに「前回のログイン」に表示される日時は
協定世界時 (UTC)となっているので、
表示されるのは日本時間から9時間引いたものとなります。

 

これでPlayFabと通信ができました!

次回

実運用上このままのコードでは問題があるので、
次回は問題点を考慮したログイン機能を実装していきます。

marumaro7.hatenablog.com

【Unity】PlayFab 初期設定 <Unity側>

はじめに

UnityでのPlayFab使用におけるUnity側での初期設定方法です。

前回の記事
marumaro7.hatenablog.com

Unityバージョン

Unity2020.3.18f1

エディター拡張機能をダウンロード

Unity側でPlayFabを扱えるようにしていきます。
下記サイトより「エディター拡張機能」をダウンロード

https://docs.microsoft.com/ja-jp/gaming/playfab/sdks/unity3d/

「クイック ダウンロード リンク: PlayFab SDK 用の Unity エディター拡張機能
 をクリックしてダウンロード
Unity3D__C___SDK_-_PlayFab___Microsoft_Docs.png

プロジェクトにエディター拡張をインポート

実装したいプロジェクトを開いて、先ほどのエディター拡張をインポートします。
すると、PlayFabのウインドウが現れます。

SampleScene_-_PushTest_-_PC__Mac___Linux_Standalone_-_Unity_2020_3_2f1_Personal__Personal___Metal__と_ダンスドリーム_MV_改善案.png

PlayFab SDKインポート

今表示されているのは、アカウントを作る画面なので、
何も入力せずに「LOG IN」ボタンを押します。
SampleScene_-_PushTest_-_PC__Mac___Linux_Standalone_-_Unity_2020_3_2f1_Personal__Personal___Metal_.png



ログイン画面が表示されるので、
PlayFabに登録したアドレスとパスワードを入力し、ログインします。 SampleScene_-_PushTest_-_PC__Mac___Linux_Standalone_-_Unity_2020_3_2f1_Personal__Personal___Metal_.png


PlayFabのSDKがないよ〜と言われるのでインストールボタンを押します。 SampleScene_-_PushTest_-_PC__Mac___Linux_Standalone_-_Unity_2020_3_2f1_Personal__Personal___Metal_.png


数十秒待ってインストール完了画面が出たら終了です。

SDKセッティング

PlayFab側と通信できるように前もって作っておいたタイトルを指定します。
SETTINGSをクリック
1.STUDIO
2.TITLE ID
を選択

「【Unity】PlayFab_初期設定_<Unity側>」を編集_-_Qiita.png

以上でUnity側の初期設定は完了です。 簡単ですね!!

次回

次回はいよいよ通信を行います。

marumaro7.hatenablog.com




(備忘録)SDKエラー対応

SDKバージョン2.110ではバグがありますので修正が必要でした。
PlayFabEditorDataService.csの22行目を変更。

public bool CompressApiData = false;

情報元

https://community.playfab.com/questions/54002/30062021-playfab-edex-cannot-login-caught-an-error.html?redirectedFrom=54117

【Unity】PlayFab 初期設定 <PlayFab側>

はじめに

UnityでのPlayFabを使用におけるPlayFab側での初期設定方法です。

PlayFabアカウント登録

下記ページで「PlayFabを無料で試す」からアカウント登録

https://azure.microsoft.com/ja-jp/services/playfab/

PlayFab___Microsoft_Azure.png

メールアドレスやパスワードを入力
Notification_Center.png

アカウントを作成すると認証メールが届くので、認証してログインしてください。


PlayFab画面 日本語化

PlayFabの言語を日本語に設定します。(お好みです。)

→PlayFab画面の右上のアイコン
→マイプロフィール
→言語
→日本語を選択

自分のスタジオとタイトル_·_PlayFab.png

マイ_プロフィール_·_PlayFab.png



タイトルの作成

タイトルを作成します。
タイトルとは、アプリとPlayFabを紐づけるための箱のようなものです。
右側の「・・・」ボタンから新しいタイトルを選択します。

自分のスタジオとタイトル_·_PlayFab.png



タイトルの名前を決めます。
ジャンルやら色々項目がありますが、タイトルの名前以外は設定しなくても影響がないので、
名前だけ入れて「タイトルを作成」を押します。

タイトルの作成_·_PlayFab.png

作成すると自動的にタイトルの設定画面に遷移します。
まずはここまででPlayFab側の設定は完了です。
ダッシュボード_·_PlayFab.png

次回

次回はUnity側での設定を行います。

【Unity】PlayFab 初期設定 <Unity側> marumaro7.hatenablog.com

【AdMob】app-ads.txt ファイル設置方法 エックスサーバー

app-ads.txt

はじめに

app-ads.txt ファイル設定の備忘録です。
自分のアプリ紹介サイトに設置する方法になります。

環境は、エックスサーバーとワードプレスです。

注意!!
ネットでapp-ads.txtで検索するとads.txtの記事がたくさん出てきますが
app-ads.txtとads.txtは別物なので注意してください!
エックスサーバーではads.txtを簡単に設定するメニューがあるのですが。
そこにapp-ads.txtを登録しても、ads.txtとして登録されてしまうのでうまくいきません。

app-ads.txtとは

app-ads.txtについてはこちらで概要を掴みました。 magazine.fluct.jp

方法

基本的に公式の手順に沿って進めました。

support.google.com

1.サイトを開設

無料でできる方法もあるかもしれませんが、
広告のない自分のサイトがほしかったこともあり、
エックスサーバー(Xserver )と契約しました。
ワードプレスの知識は一切ありませんでしたが、
契約の際、ボタン一つでワードプレスと連携して
同時に申し込みできるのでとても楽でした。

その後のアプリ紹介サイトの作成の方で
ワードプレスの使い方から学ばないといけなかったので
それに一番時間を使っています。

こんなページを作りました。 maruapps.com

2.アプリストア掲載情報にサイトのURLを追加

公式ページのこの部分に沿って登録しました。

f:id:marumaro7:20210907042214p:plain:w400

3.設置する文字列をメモ帳などに仮置き

公式ページに沿って、設置する文字列を取得し、
メモ帳などにメモしていきます。
この情報はエックスサーバーでの設定で使用します。

3.1情報をコピー

公式に沿って進めていき、表示された文字をコピーします。
(6.コピーするコード スニペットの横にある コピー をクリックします。)の部分

f:id:marumaro7:20210907042528p:plain

f:id:marumaro7:20210906061816p:plain:w400


3.2コピーした情報をメモ帳等に貼り付け

コピーした文字を貼り付けます。
今回はmac標準のテキストエディットを使用しました。

f:id:marumaro7:20210911061047p:plain

f:id:marumaro7:20210907044208p:plain


3.3AdMobテスト広告用の情報を追記

app-ads.txtを設置するとテスト広告が出なくなるようなので、
下記のページの注意書きに沿ってこちらの情報も追記します。

(iOSのページを載せていますが、Androidのページでも同じことが書いてありました。)

developers.google.com

f:id:marumaro7:20210911062441p:plain


改行して追記します。
この文字列はあとから使うので、メモ帳は開いたままにしておきます。 f:id:marumaro7:20210911063405p:plain


4.エックスサーバーに 情報を登録

4.1エックスサーバーにログイン

エックスサーバーにログインします。

www.xserver.ne.jp

4.2 空のapp-ads.txtファイルを作成

ファイル管理を押します。 f:id:marumaro7:20210911064607p:plain


ご自身のドメインをダブルクリックして開いてください。

f:id:marumaro7:20210911065233p:plain:w400


さらに、「public_html」をダブルクリックします。 f:id:marumaro7:20210911072730p:plain:w350


ここにファイルを作成するので「新規ファイル」を押します。

f:id:marumaro7:20210911073004p:plain:w200


「新規ファイル」を押すとこのような画面になるので
ファイル名:app-ads.txt
ファイル名の文字コード:UTF-8
に設定してファイルを作成します。
f:id:marumaro7:20210911073728p:plain


これで空のapp-ads.txtファイルを作ることができました。 f:id:marumaro7:20210911074000p:plain



4.3app-ads.txtの中身を設定

app-ads.txtの中身はまだ空っぽなので、
app-ads.txtを選択し、「編集」を押して中身を設定していきます。 f:id:marumaro7:20210911074208p:plain:w400


編集を押してファイルを開いたら、
先ほど仮置きしたコードを貼り付け、
保存文字コードを「UTF-8」に設定し、更新を押します。 f:id:marumaro7:20210911074432p:plain:w400

4.4app-ads.txtファイルを確認

ご自分のドメインの後ろに/app-ads.txtを付けたURLを検索し、
設定したテキストが表示されるかを確認します。
例:http://●●.com/app-ads.txt

5.AdMobがサイトを見つけてくれるまで待つ

公式の通り、サイトを見つけてもらえるまで待ちます。

f:id:marumaro7:20210911081227p:plain

AdMobの
>app-ads.txt画面
>アプリ一覧 右側の上矢印
>アップデートを確認
を押してみるとすぐ検索してくれるかもしれません。

f:id:marumaro7:20210911080228p:plain

6.ステータス確認

app-ads.txt一覧の画面でアプリのステータスが有効になっていることを確認して終了です。

f:id:marumaro7:20210911080749p:plain

おわりに

わかれば簡単なんですが、 最初はapp-ads.txtとads.txtの情報の区別がつかず、 かなり回り道をしてしまいました。

あなたの時短になれば幸いです。

参考

eureka45.net

affimama.com

【Unity】iOSアプリ申請 サブスク(定額課金)却下理由 メモ

はじめに

サブスク実装時の課金審査 却下理由のメモです。

原文

Guideline 3.1.1 - Business - Payments - In-App Purchase

We have begun the review of your in-app purchases but aren't able to continue because your submitted in-app purchases indicate a change of business model for your app.

Specifically, your existing Consumable and Non-Consumable business model has changed to include a auto-renewable subscription in-app purchase business model type.

Therefore, we need to verify the implementation of your submitted in-app purchases in the app to ensure your app, and its in-app purchases, are in compliance with the App Store Review Guidelines.

Next Steps

In order to approve your your new in-app purchase business model, we have to verify the purchasability of the items being sold. Please upload a new binary and make sure that your new in-app purchase products are available for purchase at the time of review.

ガイドライン3.1.1 - ビジネス - 支払い - アプリ内課金

アプリ内課金の審査を開始しましたが、提出されたアプリ内課金がアプリのビジネスモデルの変更を示しているため、審査を継続することができません。

具体的には、既存の消費型および非消費型のビジネスモデルが、自動更新可能なサブスクリプションのアプリ内課金のビジネスモデルタイプに変更されています。

そのため、お客様のアプリとそのアプリ内課金がApp Store Review Guidelinesに準拠していることを確認するために、お客様が提出したアプリ内課金の実装を確認する必要があります。

次のステップ

お客様の新しいアプリ内課金のビジネスモデルを承認するためには、販売されるアイテムの購入可能性を検証する必要があります。新しいバイナリをアップロードして、審査時に新しいアプリ内課金商品が購入可能であることを確認してください。

----------------------------------
う〜ん
私の頭では理解ができません。。。

印がついているところ

とりあえずここに赤印が付いていました。

ローカライズ設定のところに
標準の言語に設定している「英語」がなかったのが原因と推測

1箇所目 f:id:marumaro7:20210902044913p:plain

2箇所目 f:id:marumaro7:20210902045012p:plain



修正後

1箇所目 f:id:marumaro7:20210902050653p:plain

2箇所目
タイトルや説明文を変更しても赤い印が消えなかったため
一旦 言語の項目を消してから再設定しました。
(例:日本語の項目消す→+ボタン→日本語の項目追加)

説明文を少し改良しました。

f:id:marumaro7:20210902052431p:plain

2回目の審査落ち 原文

審査落ちしました。

Guideline 3.1.2 - Business - Payments - Subscriptions

We noticed that your app did not meet all the terms and conditions for auto-renewing subscriptions, as specified in Schedule 2, section 3.8(b) of the Paid Applications agreement.

We were unable to find the following required information in your app's binary:

–Title of publication or service -Length of subscription (time period and content or services provided during each subscription period) - Price of subscription, and price per unit if appropriate – A functional link to the Terms of Use (EULA) – A functional link to the privacy policy

We were unable to find the following required item(s) in your app's metadata:

– A functional link to the Terms of Use (EULA) – A functional link to the privacy policy

Next Steps

To resolve this issue, please add this missing information. If the above information is present, please reply to this message in Resolution Center to provide details on where to locate it.

If you are using the standard Apple Terms of Use (EULA), you will need to include a link to the Terms of Use in your App Description. If you are using a custom EULA, add it in App Store Connect.

Resources

  • Learn more about offering auto-renewable subscriptions on the App Store.
  • Review the Paid Applications agreement (App Store Connect login required).

Guideline 2.1 - Performance - App Completeness

We have returned your in-app purchase products to you as the required binary was not submitted. When you are ready to submit the binary, please resubmit the in-app purchase products with the binary.

Next Steps

Learn more about offering in-app purchases in App Store Connect Help.

ガイドライン3.1.2-ビジネス-支払い-サブスクリプション

有料アプリケーション契約のスケジュール2、セクション3.8(b)で指定されているように、アプリが自動更新サブスクリプションのすべての利用規約を満たしていないことに気付きました。

アプリのバイナリで次の必要な情報を見つけることができませんでした。

–出版物またはサービスのタイトル -サブスクリプションの期間(期間および各サブスクリプション期間中に提供されるコンテンツまたはサービス) -サブスクリプションの価格、および必要に応じてユニットあたりの価格 –利用規約EULA)への機能リンク –プライバシーポリシーへの機能的なリンク

アプリのメタデータで次の必須アイテムが見つかりませんでした。

利用規約EULA)への機能リンク –プライバシーポリシーへの機能的なリンク

次のステップ

この問題を解決するには、この不足している情報を追加してください。上記の情報が存在する場合は、解決センターでこのメッセージに返信して、その場所の詳細を提供してください。

標準のApple利用規約EULA)を使用している場合は、アプリの説明に利用規約へのリンクを含める必要があります。カスタムEULAを使用している場合は、App StoreConnectに追加します。

資力

-AppStoreで自動更新可能なサブスクリプションを提供する方法の詳細をご覧ください。 -有料アプリケーション契約を確認します(App Store Connectのログインが必要です)。

ガイドライン2.1-パフォーマンス-アプリの完全性

必要なバイナリが送信されなかったため、アプリ内購入製品を返品しました。バイナリを送信する準備ができたら、バイナリを使用してアプリ内購入商品を再送信してください。

次のステップ

アプリ内購入の提供について詳しくは、App StoreConnectヘルプをご覧ください。

Legal - Licensed Application End User License Agreement - Apple

https://help.apple.com/app-store-connect/#/dev7fa2fff96

Auto-renewable Subscriptions - App Store - Apple Developer

Agreements, Tax, and Banking

https://help.apple.com/app-store-connect/#/devb57be10e7

【Unity】アプリ収益アップの有料講座を試してみた結果

f:id:marumaro7:20210807143917p:plain

はじめに

こんにちは!まるです!
いつもアプリ開発に関する記事を書いているわけですが、
たまには違うテイストの記事でも書いてみようと思います。

突然ですが、先日Udemy講座を出してみました!
自分の中での"アプリ開発"や"収益化"についてまとめておきたいと思っており、
まとめるついでに動画にして出したら誰かの役に立てるかな?
というノリで作りました。
動画作りはそれなりに労力を使うので、一部有料にて販売させていただいております。



↓講座自体はこのようなものを出しています↓

【Unityアプリ収益化入門】
「急上昇アプリランキング1位」を獲得した
 個人開発者が教えるユニティスマホアプリ開発コース

www.udemy.com

<コースの説明>
収益化の一連の流れである
Unityを使った簡単なゲーム作成を行い。
→広告実装
→ストアリリース(Android.iOS)
→収益増加方法
を解説しています。

<この講座は以下の方を対象としています。>
・Unityでアプリ広告収入を得たい方
スマホアプリをGooglePlayやAppStoreにリリースしたい方
・インストール数がなかなか伸びない方
・時間がなく効率的に開発を進めたい方


長くなりましたが、お金を出して買っていただくからには、
買って良かったと思っていただきたいので、
収益増加の効果の程を自分で検証してみたという話です。

対象のアプリ

今回対象としたアプリはこちらのインベーダーゲームのアプリです。
結構苦労して作ったのですが、全然収益が上がらないというアプリになっており、
講座内で解説している 収益増加の考えや施策 などは
全く盛り込めていない状態で放置しておりました。

AndroidColor Invader Galaxy Retro Space Casual Shooter - Apps on Google PlayiOS‎「カラーインベーダー ギャラクシーレトロスペースシューティング」をApp Storeで

やったこと

改善した内容は、講座内で解説している
収益増加の考え と 具体的な施策6つのうち2つを実施しました。
以前から交流させていただいているアプリ開発者の方なら
わかっていただけると思いますが、
ゲーム内容自体は全く変えていません。

結果

では!気になる収益変化の結果はコチラ!!

f:id:marumaro7:20210807144356p:plain

6月の頭に手を入れて、現在約2ヶ月がたった状態です。
AndroidiOSで伸び率の差はありますが、
どちらも効果があったと言って良いのではないでしょうか??
(ヨカッタァ・・・)

ここまで読んでくださった方へ

(宣伝失礼します!)
もし講座が気になると思っていただけたなら、
プロフィールページに本講座のクーポンリンクを不定期で貼っていますので、
ぜひご検討ください。
このブログについて - アプリ個人開発 まるブログ

講座を購入いただいた方へ

「リリースできた!」「収益が上がった!」「時短になった!」
など少しでもあなたのお役に立てたなら
ツイッターやレビューなどで、是非お声がけしていただけると大変励みになります。
今後のグーグルのポリシー変更などにも対応していきますので、
引き続きよろしくお願い致します。