2021年11月03日

[iOS] モバイル用AWSのSDKがバージョン2.19.1より上げられないときの対応

■ 注意 ■ 2021年11月18日追記
iOS版はうまくいったけど、Android版はビルドできませんでした。
理由はSDKの更新が止まっていたから!
AWSのUnity用SDKはプラグインという形での公開はとっくにやめていて、.NETのSDKの方だけ更新されているようです。
詳しくは、後日に記事にします。



iOS版100マス計算でAWSの
・Lambda
・DynamoDB
を使っています。

前回の件があって、最新のSDKに切り替えようとしたところ、2.19.1より上げられない事態になりました。

CocoaPodsの中身:

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '11.0'
use_frameworks!

target :'[PJ名]' do
pod 'AWSCognito'
pod 'AWSCognitoIdentityProvider'
pod 'AWSDynamoDB'
pod 'AWSLambda'
end


バージョンを上げられるか調べてみたところ。

$ pod outdated
...
Analyzing dependencies
The color indicates what happens when you run `pod update`
- Will be updated to the newest version
- Will be updated, but not to the newest version because of specified version in Podfile
- Will not be updated because of specified version in Podfile

The following pod updates are available:
- AWSCognitoIdentityProvider 2.19.1 -> 2.19.1 (latest version 2.26.3)
- AWSCognitoIdentityProviderASF 2.19.1 -> 2.19.1 (latest version 2.26.3)
- AWSCore 2.19.1 -> 2.19.1 (latest version 2.26.3)
- AWSDynamoDB 2.19.1 -> 2.19.1 (latest version 2.26.3)
- AWSLambda 2.19.1 -> 2.19.1 (latest version 2.26.3)

↓スクショ
スクリーンショット 20211103_1.png


最新版が2.26.3なのに、上げられない。

調べたところ、CocoaPodsの「Cognito」を「AWSMobileClient」にすることで対処できた。

参考:
https://cocoapods.org/pods/AWSLambda
https://github.com/aws-amplify/aws-sdk-ios

補足:
AWSMobileClientのpod installがSWIFT_VERSIONのエラーで止まるときの対応
https://qiita.com/akira-greennote/items/462fe5d4c381c1aba6ee

CocoaPodsで変更した箇所:

target :'AWSTest2021' do
pod 'AWSMobileClient'
pod 'AWSDynamoDB'
pod 'AWSLambda'
end

すると、2.26.3に上げられるようになった。
$ pod outdated
...
Analyzing dependencies
The color indicates what happens when you run `pod update`
- Will be updated to the newest version
- Will be updated, but not to the newest version because of specified version in Podfile
- Will not be updated because of specified version in Podfile

The following pod updates are available:
- AWSCognitoIdentityProvider 2.19.1 -> 2.26.3 (latest version 2.26.3)
- AWSCognitoIdentityProviderASF 2.19.1 -> 2.26.3 (latest version 2.26.3)
- AWSCore 2.19.1 -> 2.26.3 (latest version 2.26.3)
- AWSDynamoDB 2.19.1 -> 2.26.3 (latest version 2.26.3)
- AWSLambda 2.19.1 -> 2.26.3 (latest version 2.26.3)

↓スクショ
スクリーンショット 20211103_2.png


対応した内容はシンプルなものの、調べるのに時間がかかった。
なんとか対応できてよかったー。

↓無事、インストールできた
スクリーンショット 20211031_1.png

posted by be-style at 15:50| Comment(0) | iOS

2021年09月26日

[iOS] AdMobのテスト用IDFAを登録したら、収益が激減した話

アプリの更新作業で、AdMob管理画面からテスト端末を登録できる事を知りました。
方法は、

AdMob管理画面 > 設定 > テストデバイス > テストデバイスを追加

を選び、iPhoneのIDFAを登録します。
IDFAの取得方法は、プログラム(Objective-C)に以下を記載します。

----------------------------------------
// 広告IDを確認(AdMobの管理画面でテスト広告の設定に使用)【AdSupport.framework必須】
ASIdentifierManager *identifierManager = [ASIdentifierManager sharedManager];
NSString *idfa = identifierManager.advertisingIdentifier.UUIDString;
NSLog(@"[IDFA] %@", idfa);
----------------------------------------

これでAdMob管理画面から「テストデバイスを追加」で、上記で取得したIDFAを登録します。
すると、広告の中に「Test mode」という表示が出るので、テスト広告が表示されているとすぐにわかります。

blog20210926_2.png

がしかし、上記のプログラムで「00000000-0000-0000-0000-000000000000」が出たので
それをAdMob管理画面に登録してしまった場合、他のiPhoneでもテストモードになることがわかりました!
これはiOS14以上のiPhoneのトラッキングの追跡設定(設定 > プライバシー > トラッキング)が影響していると
思われます。

blog20210926_3.PNG

やけに広告収益が落ちたと思ったら、これが原因っぽかったです。
2日気づかなかったのは痛い!

みなさんもご注意ください。
posted by be-style at 21:41| Comment(0) | iOS

[iOS] 100マス計算にミニゲーム「飛び石」が追加されました

iOS版の100マス計算をアップデートしました。
今回の更新の目玉は、ミニゲーム「飛び石」の追加です。

blog20210926.png

飛び石の上を落ちないように進むというゲームです。
シンプルだけど、妙に癖になります。
よろしかったら、遊んでみてくださいー。

App Store:
https://apps.apple.com/jp/app/id534131439
posted by be-style at 12:58| Comment(0) | iOS

2021年07月28日

[Unity/iOS] AdMob広告のトラッキング許可アラート文言の多言語対応

iOS14以上に対応するアプリに広告を表示する場合、トラッキングの許可を確認するアラート表示が必須になりました。
そのアラートの文言を自分で設定できるのですが、

Xcode > TARTEGS > アプリ名 > Info
に「Privacy - Tracking Usage Description」(xmlだと、NSUserTrackingUsageDescription)
を追記することで対応します。

20210728_1 .png

ただ、この方法だと多言語に対応していません。
そのとき、アプリ名の多言語対応と同じように「InfoPlist.strings」を追加することで対応します。

Xcode > Project > アプリ名 > Info > Localizations
の下にある「+」ボタンを押して、英語と日本語を追加します。

20210728_2.png

追加するのは以下の3つです。
- English
- Japanese
- Japanese(Japan)

20210728_3.png

20210728_4.png

InfoPlist.strings ファイルが作成されます。Unityアプリの場合は以下の場所になります。
Unity-iPhone > Unity-iPhone Tests > Supporting Files > InfoPlist.string

InfoPlist.string 内に作られた3言語の「.strings」ファイルをクリックして、以下を確認します。
@インスペクターの「Localization」で、先ほどの3つの言語にチェックが入っていている。
Aインスペクターの「Target Membership」で、「Unity-iPhone」と「Unity-iPhone Test」にチェックが入っている。

20210728_5.png

あとは、「NSUserTrackingUsageDescription」を記載すれば、アラートの文言を記載します。
他の「.strings」ファイルも同じ対応です。

ちなみに、「CFBundleDisplayName」は、アプリ名の多言語対応用です。

参考:
https://ekulabo.com/ios-appname-localize
posted by be-style at 12:07| Comment(0) | iOS

2021年01月27日

[iOS] App Store Connectの「Appのプライバシー」のチェック項目について

2021年1月26日現在、アプリを更新しようとApp Store Connectで申請しようとしたところ、「Appのプライバシー」という項目を設定する必要がありました。
アップルの審査は通りましたが、チェック項目が多くて迷ったのでメモとして残しておきます。

【注意】
現在はこれで審査が通ったというだけで、今後の状況や申請するアプリの内容によってチェックする項目が変わりますのでご注意ください。

スクリーンショット 2021-01-26-1.png

「はじめに」を押して進むと、ユーザーのどういう情報を収集するかのアンケートでした。
参考サイトを参考に、選んだのは、以下の6つでした。

・位置情報 > おおよその場所
・ID > デバイスID
・使用状況データ > 製品の操作
・使用状況データ > 広告データ
・診断 > クラッシュデータ
・診断 > パフォーマンスデータ

スクショは縦長なので、別リンクにしておきました。
スクリーンショット 2021-01-26.png

設定が終わると、先ほど選択した6つの項目について、さらに詳細にアンケートに答える必要がありました。

スクリーンショット 2021-01-26-2.png

「デバイスIDの設定」を押して進み、該当すると思われる項目にチェックを入れていきました。

スクリーンショット 2021-01-26-3.png

スクリーンショット 2021-01-26-4.png

スクリーンショット 2021-01-26-5.png

設定し終わると、先ほどの項目が更新されました。

スクリーンショット 2021-01-26-6.png

他に、先の6項目についても表示が追加されていました。

スクリーンショット 2021-01-26-7.png

今後も時代の流れに沿って変わっていくとは思うけど、対応していくのは大変だなー。

参考:
https://zenn.dev/kazushige/articles/9afa10b36d6828
https://support.google.com/admob/answer/9755590?hl=ja

------------------------------ 追記 ------------------------------

必要な設定がすべて完了すると、画面右上の「公開」ボタンが有効になります。

スクリーンショット 2021-02-09-1.png

確認メッセージが表示されるので「公開」を押せば、一連の作業は完了です。

スクリーンショット 2021-02-09-2.png
posted by be-style at 10:28| Comment(0) | iOS