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年11月02日

[AWS] Lambda 関数の「状態」の確認手順

2021年10月、Amazonからメールが届く。タイトルは、

[要対応] AWS Lambda 関数の「状態」の拡張について| [Action Required] AWS Lambda Extending State to All Functions

Lambda関数の作成、更新、または呼び出しが確認されたため、このタイトルのメールが送られてきたらしい。メールを読んでもリンク先が英語だったのでよく理解できず。
そんなとき、解説してくれているサイトを発見。

【アップデート】AWS Lambda 関数の「状態」の拡張
https://www.sunnycloud.jp/column/20211018-01-2/

2021年12月6日以降、すべてのLamda関数に適用される話だそうで、自分に関係しそうな所を要約すると、こんな感じ。

・現在Lambda関数を使っていても、呼び出しが数週間無いと「Inactive状態」になる
・Inactive状態でLambda関数を呼び出すと、Pending > Active と状態が移る
・状態の確認には、CLI(コマンドラインツール)かSDKが必要

iOS版100マス計算にてLambdaを使っているので対象で、毎日呼び出されているのでInactive状態になることはないだろうし、影響はないとは思うけど、念の為、Lamda関数の状態を確認してみることにした。

管理画面からLamda関数の状態を確認できないかとログインしてみる。

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

管理画面から状態はわからない。
説明にある通り、CLIツールを使ってみることにした。
あと、Node.js 10 はサポート対象外になったので更新しないといけないけど、それは後回し。



はじめに、CLIをPCにインストールするところから。

macOS での AWS CLI バージョン 2 のインストール、更新、アンインストール:
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-mac.html

AWS CLI バージョン2をインストール。
---------------------------------------------
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /
---------------------------------------------

これでインストールできたので、インストールの確認。
---------------------------------------------
$ which aws
/usr/local/bin/aws
$ aws --version
aws-cli/2.3.2 Python/3.8.8 Darwin/20.4.0 exe/x86_64 prompt/off
---------------------------------------------

念のため、アンインストールの手順も抜粋(今回はインストールだけ)。
---------------------------------------------
$ which aws
$ ls -l /usr/local/bin/aws
$ sudo rm /usr/local/bin/aws
$ sudo rm /usr/local/bin/aws_completer
$ sudo rm -rf /usr/local/aws-cli
---------------------------------------------

こんなに簡単にCLIが使えるようになるとは思わなかった。
いざ、CLIを使ってみようと思ったけど、その前に設定が必要だった。

設定コマンド:
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds

CLIのコマンド(aws configure)を使うときに、IAMのアクセスキーとシークレットキーが必要とのこと。
管理画面からIAMを確認してみる。

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

そもそもアクセスキーが存在しなかったので、「アクセスキーの作成」ボタンを押してアクセスキーを作成。
そこから、アクセスキーとシークレットキーを取得。

いざCLIを使ってみる。
---------------------------------------------
$ aws configure
AWS Access Key ID [None]: [アクセスキー]
AWS Secret Access Key [None]: [シークレットキー]
Default region name [None]: ap-northeast-1 ※使用しているリージョン
Default output format [None]: text
---------------------------------------------

これで準備が整ったので、Lambda関数の状態を確認してみる。

Lambda関数の状態確認:
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/functions-states.html

---------------------------------------------
$ aws lambda get-function-configuration --function-name [Lambda関数名]

※※※※※※※※ 100マス計算の記録更新のAPPからの受信用 arn:aws:lambda:ap-northeast-1:※※※※※※※:function:[Lambda関数名] [Lambda関数名] ※※※※※※ 20XX-0X-XXTXX:XX:XX.XXX+0000 Successful 128 Zip ※※※※※※※※※※:aws:iam::※※※※※※※※※:role/※※※※※※※※※※ nodejs10.x Active X $LATEST
ARCHITECTURES ※※※※
TRACINGCONFIG ※※※※
VPCCONFIG
---------------------------------------------
↑大事なところは※※※やXXXで隠した。

出力結果を見ると、「Active」があるのでちゃんと動作してるっぽい。
これでいいのかなー。

あとは、Node.js10 を最新版に上げて、2021年12月6日以降も無事に動作することを祈るのみ。
変化する状況に対応していくって、大変だー。
posted by be-style at 00:20| Comment(0) | Web

2021年10月31日

[iOS] 100マス計算をアップデートしました

iOS版の100マス計算をアップデートしました。

ミニゲームが5つ追加されました。

@左と右
ScreenShot2021-10-31_1.png

左と右、どちらかのパネルを選択します。

AゲージMAX
ScreenShot2021-10-31_2.png

空のゲージをすべて埋めます。

Bピラミッド
ScreenShot2021-10-31_3.png

足元の数値を足してピラミッドを作り上げます。

C反復横跳び
ScreenShot2021-10-31_4.png

ひたすら左右にステップを踏みます。

D積み木問題
ScreenShot2021-10-31_5.png

積み木の数を数えます。

どれもシンプルですが、瞬間的な判断力が求められます。
よかったら、遊んでみてくださいm(_ _)m

App Store:
https://apps.apple.com/jp/app/id534131439
posted by be-style at 21:26| Comment(0) | Release

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