aws-mobile-react-native-starter day01

引き続きReactNativeの実装のサンプルにトライしてみようと思います。 今回はこちらに従って作業。

qiita.com

MobileHubセットアップ

プロジェクトを作成しようとすると権限でエラーが発生します。

Failed to create Mobile Hub Service Role. Sorry, but you do not have permission for this operation. For help, see http://docs.aws.amazon.com/mobile-hub/latest/developerguide/managed-policies.html. Details = User: arn:aws:iam::650593974448:user/kabe is not authorized to perform: mobilehub:CreateServiceRole on resource: arn:aws:iam::650593974448:role/MobileHub_Service_Role

たしかに、ログインしているユーザにアタッチしたAWSMobileHub_FullAccessにはmobilehub:CreateServiceRoleがセットされてない。どこにあるんだよこれ。
調べてみたのだけどグループにアタッチできるポリシーの中ではこの権限が付与されているものはなさそう。
仕方がないからカスタムでAllowしようとしたら、ARNが必要で書き込みできない。MobileHubのARNの形式はarn:aws:mobilehub:region:account-id:project/projectIDだから、…だからそのProjectを作るために権限が足りないんだって言ってんじゃん(´;ω;`)

f:id:kabe1087:20171213153117p:plain

調べてみてもなぜAWSMobileHub_FullAccessCreateServiceRoleの権限が与えられていないのかは謎でした。何か理由があるのかな??教えて欲しいな。

止まっていても仕方がないのでプロジェクトのインポートだけ、ルートユーザでログインして実行します。
reactnative-starterというプロジェクトはもうあるから作れないよー!というエラーが出る(AWSこのパターン多いな…作業途中でエラーになって終わらなかったのが管理画面から見えないところで残ってるのどうにかなんないの???)のでreactnative-starter01とかで数分でできあがり。
無事aws-exports.jsを入手できたので、ローカルにnode.jsの開発環境を構築していこうと思います。

node.jsセットアップ

qiita.com

こちらに従って環境を構築しました。特に大きな問題なく。
途中nodebrew install-binary latestするときだけ、フォルダがないよと怒られるので、自分でフォルダ掘っておけば通る。
あとシャチョさんのオススメでbashではなくzshを使っているので、実行パスは.bashrcではなく.zshrcに書くこと(ハマった)

さて、手順に戻ってアプリの実行を試していきます。
npm install で必要なパッケージのダウンロード > npm startまでは問題なくできました。が、react-nativeインストールしてねぇな???

react-nativeセットアップ

qiita.com

ホントQiitaがなかったら心折れてる。
指示通りwatchman,flow,React Nativeをインストールします。

$ brew install watchman
$ brew install flow
$ npm install -g react-native-cli

特になんの問題もなく(‘ω‘ )

$ watchman -v
4.9.0
$ flow version
Flow, a static type checker for JavaScript, version 0.61.0
$ react-native -v
react-native-cli: 2.0.1

aws-mobile-react-native-starter アプリの実行

指示通りnpm startでサーバを起動して、別のターミナルからiOSシミュレータを起動してみます。

$ react-native run-ios
Scanning 740 folders for symlinks in /Users/k-abe/Desktop/aws-mobile-react-native-starter-master/client/node_modules (8ms)
Found Xcode project awsmobilereactnativesample.xcodeproj
xcrun: error: unable to find utility "instruments", not a developer tool or in PATH

Command failed: xcrun instruments -s
xcrun: error: unable to find utility "instruments", not a developer tool or in PATH

うむむ、XcodeのCommand line toolsをみつけられないっぽい?? Xcode > Preference > Locations でコマンドラインツールが指定されてなかったので設定します。
f:id:kabe1087:20171214152241p:plain

起動したー!!!
f:id:kabe1087:20171214153206p:plain