2017年04月07日

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

今回のアップデートの目玉は、

・都道府県対抗ランキング
・練習モード

です。

@都道府県対抗ランキング
3_prefecture640_ja.jpg

甲子園を見ていたら郷土愛を感じて、100マス計算のランキングでも都道府県対抗戦を
やってみようと思い実装しました。
出身地がどこまで活躍できるかは自分次第なので、盛り上がって欲しいなー。

A勉強モード
4_study640_ja.jpg

時間に追われるゲーム要素を無くして、じっくり基礎勉強をしようというモードです。
全体が見渡せるので、規則性に気付きやすいようになっています。

息の長いアプリなので、これからもゆっくりと成長させていきたいと思います。

App Store:
https://itunes.apple.com/jp/app/100%E3%83%9E%E3%82%B9%E8%A8%88%E7%AE%97/id534131439?mt=8

技術的な話をすると、都道府県対抗ランキングはAWS lambdaとdynamoDBで実装しました。
両方ともサーバーレスのサービスなので、四六時中運用に注意を払う必要はありません。
しかも自分のアプリの規模だと無料枠に十分収まるというので、
非常に助かります。
両サービスともに癖はあるけど、強みを活かせば便利なサービスです。
posted by be-style at 08:54| Comment(0) | Release

2017年04月05日

[iOS] CocoaPod で GoogleAnalyticsを追加した後でエラー「_OBJC_CLASS_$_GGLContext」

CocoaPod を使って手順通りにGoogleAnalyticsのSDKをプロジェクトに
追加したはずなのにビルドエラーになりハマったのでメモ。

Google Analyticsの導入手順
https://developers.google.com/analytics/devguides/collection/ios/v3/?hl=ja

エラー:
_OBJC_CLASS_$_GGLContext

原因は、手順にあるこのプログラムの部分。

NSError *configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];

どうも「GGLContext」が見つからないようでした。

解決策は、
Xcode の Build Setting で OTHER_LDFLAGS で検索し、Other Linker Flags に
$(inherited)
を追記することでした。

スクショ20170405.png

参考:
http://stackoverflow.com/questions/31108868/undefined-symbols-for-architecture-armv7-objc-class-gglcontext-referenced

pod install コマンドを実行した後に、そんなメッセージ出てたわー。
--------------------
[!] The `プロジェクト名 [Release]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods-プロジェクト名/Pods-プロジェクト名.release.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
--------------------
posted by be-style at 00:16| Comment(0) | iOS

2017年03月29日

[iOS] AWSでビルドエラー(Undefined symbols for architecture arm64)になる

前回、XcodeプロジェクトにCocoaPodsを使ってAWS SDK を追加することに成功しました。

[iOS] CocoaPodsを初めて使ってみたら「linker command failed with exit code 1」でビルドエラーになる

いざ、Congnitoを使って認証しようかとプログラムを書き始めたところ
リンクエラーのようなものが出ました。

↓プログラム
------------------------------------------------------
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionAPNortheast1
identityPoolId:CONGNITO_POOL_ID];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1
credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
------------------------------------------------------

↓エラー内容
------------------------------------------------------
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_AWSServiceManager", referenced from:
objc-class-ref in HundredSquaresCalcAppDelegate.o
"_OBJC_CLASS_$_AWSServiceConfiguration", referenced from:
objc-class-ref in HundredSquaresCalcAppDelegate.o
"_OBJC_CLASS_$_AWSCognitoCredentialsProvider", referenced from:
objc-class-ref in HundredSquaresCalcAppDelegate.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
------------------------------------------------------

プログラム参考:
http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/step1-getting-started.html

なんと、前回CocoaPodsでAWS SDKを追加が完了したと思いきや、
元のプロジェクトに対してCongnitoのフレームワークの追加が必要なのでした。

リンクエラー修正.png

こうやって元のプロジェクトにAWS SDKのフレームワークを追加することで、
無事ビルドが通ったのでした。

初めてのことは、必ずハマる箇所があるなー。
posted by be-style at 10:17| Comment(0) | iOS