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

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

AWSのiOS用SDKを使うために、CocoaPodsを使う必要が出てきました。

http://qiita.com/SoyaTakahashi/items/fdb0d87597eb276056d8
http://docs.aws.amazon.com/ja_jp/mobile/sdkforios/developerguide/setup-aws-sdk-for-ios.html

を参考にして、既存のXcodeプロジェクトに適用し、
出来た「.xcworkspace」ファイルをダブルクリックして
Xcodeを立ち上げたところ、

linker command failed with exit code 1

というビルドエラーが出て、AWSに関するリンクエラーが表示されました。
原因は、新しくできた「Pods」プロジェクトの設定が、元のプロジェクトの設定と
一致していないことでした。

↓赤で囲った部分が、元のプロジェクトと違っていたので修正した

cocoapod20170329.png

これでビルドが通って、無事iPhoneでも起動確認ができました。

参考:
http://qiita.com/sutchan/items/0a78042261ca3f0a7d91

環境まわりって、いつも設定に時間がかかるなー。
posted by be-style at 09:09| Comment(0) | iOS

2016年09月01日

[iOS] ITMS-90617 が出て、iTunes Connect にアップロードできない

・macOS Sierra (10.12 Beta) (16A313a)
・Xcode7.3.1

でビルドして、アーカイブまでは成功。
でも、アップロードしようとすると ITMS-90617 のエラーが出てしまいました。

スクリーンショット 2016-09-01 22.25.08.png

理由は、macOS Sierra だからのようです。

参考:
http://stackoverflow.com/questions/37838487/error-itms-90167-no-app-bundles-found-in-the-package

困ったなー。

追記:
Xcode 8 Betaでビルドしたらうまくいきました。
Beta版だけど、審査大丈夫かなー。

追記:
審査以前に、iTunes Connectにアップした後に審査ボタンを押したら
Beta版ではダメというメッセージが出て申請できませんでした。
もっと早い段階で言って!

スクリーンショット 2016-09-02 1.05.56.png

追記:
OrganizerでExportして、Application Loaderでアップロードを試みましたが、
ダメでした。


アーカイブファイルの中身開いてinfo.plistを書き替える方法で上手くいったという情報があるけど、
怖くて真似できない。。。
https://forums.developer.apple.com/thread/49004


開発者用の「macOS Sierra Developer Beta」じゃなくて
一般公開されている「macOS Sierra Public Beta」を試してみよう。

macOS Sierra Public Beta:
https://beta.apple.com/sp/ja/betaprogram/welcome?locale=ja

ダメだったので、macのOSをsierra以前のもの(EI Capitan)に戻すことにしました。
https://www.macxdvd.com/blog/smart-how-to-downgrade-macos-10-12-sierra.htm

そして、やっとITCにアップロードできました!

スクリーンショット 2016-09-03 23.07.42.png

長かった。。。
EI Capitan に戻す前に、タイムマシーンで保存した後に作業した分を
きっちりバックアップとっておいて、EI Capitan に戻した後にプログラム等を
更新することをお忘れなく。

無事、アップルの審査にも提出できました。

今後、β版にするときは、申請の予定がないときにしよう。。。
今回で懲りました。
タグ:Xcode SIERRA MacOS
posted by be-style at 22:31| Comment(0) | iOS

2016年07月19日

[iOS] iOS10β版(開発者用)のアップデートの手順について

iOS10 β版へのアップデート方法についてのメモ。

@iPhoneからダウンロードサイトにアクセス
 → https://developer.apple.com/download/
 → ログインが求められるので、開発者アカウントを使用

AiOS SDKの中の、iOS10 β版の証明書を選んでiPhoneにインストール

IMG_0736.jpg

BiPhoneの再起動が求められたら、再起動する

CiPhoneの設定 > 一般 > ソフトウェアアップデート に進むと「iOS10 β3」がインストールできるようになっている
IMG_0737.jpg
posted by be-style at 07:20| Comment(0) | iOS