はじめに こんにちは!タミー・トッキーこと田宮です! 今回から2回に渡って、TestFlightの内部テスト、外部テストの実施方法について、順を追って見ていきたいと思います。 1回目の今回は、テスト配信側で必要な操作を見ていきます。 Apple版TestFlightについては、サービス開始時から仕様が細かく変更されてきていますので、昔つかったことがある方も、一度ご覧頂ければと思います。 スクリーンショットをもれなく用意するため、複数のアプリの画面を使っています。ご了承下さい。 なお、公式ドキュメントは以下になります。 TestFlight Beta Testing (Optional) 目次 1. TestFlightの解説 内部テストとは 外部テストとは 2. ビルドを用意する ビルドをアップロード アップロードされたビルドを確認 3. 内部テスト iTunes Connectユーザを確
1 はじめに EarlGreyでは、テストコードをObjective-C/Swiftのどちらでも書くことができます。(ターゲットもどちらにでも対応できます) 前回は、テストコードをObjective-Cで書いたのですが、今回は、同プロジェクトに新しいテストスキームを追加してSwiftでテストを書いてみました。 前回のObjective-Cによるテスト、及びEarlGreyについては、下記をご参照ください。 [iOS] 明確で簡潔なテストを書くことができる iOS UI自動化テスト・フレームワークEarlGreyを試してみました。 [iOS] UI自動化テストフレームワークEarlGreyでテストを書いてみた(Objective-C版) 2 EarlGreyの組み込み (1) テストの追加 メニューからEditor - Add target - iOS - Test - iOS Unit T
REST API を使ってツイートを投稿する 前回は TWTRComposer というクラスを使って、ダイアログからツイートする方法を紹介しました。今回はこれの発展形(?)で、Twitter の REST API を使ってツイートしてみたいと思います。 今回紹介する方法は REST API をコールするので、UI は特に必要ありません。ユーザーに変わってアプリからツイートを投稿することができます。以下のような場合に有効です。 アプリ内の投稿機能のついでにツイートも投稿させる ゲームのスコアをツイートさせる 診断結果をツイートさせる ツイートをアプリから投稿したことにする *1 statuses/update API をコールする ツイートを投稿するには POST statuses/update という API を利用します。API の呼び出し方の基本は以前解説していますので、こちらをちょっ
AppDelegateはアプリ全体のライフタイムイベントを管理するためのクラスですが、その性質上、様々な処理が書かれやすいです。 しかし、あらゆる処理が書かれ肥大化していくと、見通しが悪くなってメンテナンスがしづらくなったり、チームで開発してる場合はコンフリクトが起こるなど開発速度に支障をきたすようになってしまう場合があります。 そこで、この記事では、そんな膨れがちなAppDelegateを綺麗な状態に戻すための方法をいくつか紹介します。 1. AppDelegateの責務外の処理は他クラスに移す AppDelegateの主な責務はライフタイムイベントの管理です。具体的には「起動」「停止」「バックグラウンド状態の切り替わり」などなどUIApplicationDelegateで定義されているような処理です。 にもかかわらず、例えば全Controllerから触れる値を定義したいなどの理由で、責
こんにちは。最近iOSのUI実装を始めたデザイナー兼Androidエンジニアの横山です。 もはや自分自身がなにものかわからなくなって参りましたが、今回は画像を表示する時のポイントをご紹介します。 こんな時に 例えば、正方形のUIImageViewに長方形の画像を次のように表示したい場合、contentModeにAspect Fillを指定しますが、それだけでは期待する表示結果にはなりません。 Interface Builderと実際の表示が違う Interface Builderでレイアウトして画像を表示した時には、問題なく表示されますがシミュレーターで表示してみると表示が崩れてしまいます。 正方形のUIImageViewを二つ並べてそれぞれにAspect Fillで長方形の画像を表示してみた例が以下です。 UIImageView(UIView)は自身の領域外の描画に関してはデフォルトで「
チャットアプリを実装! 今回は、チャット機能の UI を簡単に実装できる JSQMessagesViewController をご紹介したいと思います。 基本的な使いかたは単純明快一目瞭然!さらに、カスタマイズもかなり考慮されているので手順さえ把握してしまえば自由にカスタマイズできます。 ということで、今回は一番簡単な使いかたをまとめてみました。サンプルコードは以下に公開しましたので、併せてご参照いただけるとより理解できると思います。 suwa-yuki/SimpleChat インストール方法 インストールは毎度おなじみ CocoaPods で簡単に。 pod install でインストール完了です。 まずは使ってみる それでは早速使ってみましょう。まずはヘッダーから実装しましょう。ViewController は JSQMessagesViewController を継承します。このクラ
アプリの設定画面を活用しよう iOS アプリでは、Settings.bundle ファイルを作成することで iOS の設定に iOS アプリの設定を追加することができます。iOS 8 からはプッシュ通知やネットワーク接続を利用しているアプリは必ず表示されるようになりました。 プッシュ通知などの設定は OS が勝手に表示するものですが、その下のグループにある設定項目は Settings.bundle で自分で定義した設定が表示されます。 この領域を活用すると、アプリのバージョンや OSS の謝辞 (Acknowledgements) を掲載することができます。弊社で開発している iOS アプリでも採用されることが多いですし、何より世の中にリリースされているアプリの多くで見かけます。 バージョンと謝辞は自分で書くこともできますが、プロジェクトで設定だけしてしまえば簡単に自動化することができます
Facebook SDK でログインがうまくいかなくてハマったので備忘メモ。 ①Facebook SDK に添付される「FriendPickerSample」から、ログイン処理を抜粋して それだけを実行してみた ※パーミッションはサンプルとは変えています if (!FBSession.activeSession.isOpen) { [FBSession openActiveSessionWithReadPermissions:@[@"public_profile"] allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { if (error) { NSLog(@"ログイン失敗"); UIAlertView *alertView = [[UIAlertVi
iOS(Objective-C)用の Facebook SDK のサンプルを動かそうとしたときに ハマったので備忘メモ。 ■エラー ・Facebookのデベロッパー画面の情報に誤りがあり、認証できない↓ --------------------------------------------------------- Error: Error Domain=com.facebook.Facebook.platform Code=102 "The operation couldn’t be completed. (com.facebook.Facebook.platform error 102.)" UserInfo=0x1700efd80 {error_reason=The operation couldn’t be completed. (FBAPIErrorDomain error 1
Swift 特集を執筆しました ブログでの紹介が少し遅れてしまいましたが、このたび日経ソフトウエア 2015年1月号に掲載している「Appleの新言語 『Swift』スーパーガイド」を弊社社員を中心に執筆させていただきました!書店にてお買い求めいただけます。 日経ソフトウエア 2015年 01月号 内容 Apple の新言語「Swift」の分かりやすい解説、Playground 入門、アプリ開発入門、Java 8 との比較、OSS 入門などを特集として掲載しております。執筆には弊社から平井、諏訪、掛川、小室、yadの5名が参加しています。また「LLVM/Clang実践活用ハンドブック」の著者である出村さんによる LLVM の基礎知識に関する記事も掲載しています。 書店にて絶賛発売中! これから Swift を始めたいと思っているかたにピッタリの記事になっております。ぜひお買い求めください。
かずー氏といえば Thunderfist、 Thunderfist といえば Twitterクライアント。 ということで今更ですが、Twitter産の SNS Framework であるところの Fabric を試してみました。 これはなに Fabric を使って HomeTimeline を取得した Xcode 6.1 (Swift 1.1) を使用した Fabric は Twitter を使ったアプリを作るのにはかなり強力なフレームワークである 手順は Fabric アプリのガイドにそってやれば簡単にできる Twitter Japanのブログ によると、10月22日に発表されたらしい。内容としては 安定性を高める(クラッシュレポート) 利用者を増やす(ツイート埋め込み) 収益を上げる(広告収入) 本人確認(電話番号での本人確認) ができるとのことです。 Xcode Android St
Swift を学ぼう 弊社でも iOS エンジニアはもちろん、サーバーサイドのエンジニアや AWS エンジニアも Swift に興味津々です。Objective-C より読みやすく、モダンな書き方になっている反面、仕様を読み込んでみるとちょっと分かりづらいところもあったりします。 そこで、これまで Web で公開されている Swift について学べる記事を日本語の記事を中心にまとめてみました。今後も有益な情報が公開されたらガンガン追記していきます! 公式情報 一番有益な情報は間違いなく公式の情報です。 Xcode 6 から導入されたツール「Playground」で試しながら読んでいくことを想定して書かれているようです。Playground を使って挙動を確認しながら学ぶのが一番良いと思います。 Swift Programming Language | Apple Developer The
コーディング中のアプリケーションでも、サーバーとの疎通試験を行う機会は多いです。 でも、サーバーはまだ構築中だけど、SSLの証明書をまだ取得してないし、でもSSL通信での疎通試験はしたいし・・・ そんなときに、一旦SSLの証明書チェックを通る実装をしましょう。 NSURLRequestを拡張する サーバへのアクセスはNSURLConnectionを使用するのですが、普通に通信しようとするとSSLの通信エラーが出ます。 NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) そこで、NSURLRequestを拡張します。 NSURLRequest+SSL.h // // NSURLRequest+SSL.h // #import <Foundation/Foundation.h> @i
iOS 7.1 ちょっと前の話になりますが、2014年3月11日 に iOS 7.1 がリリースされました。このアップデートで iBeacon が改善されている件が開発者の間で話題になっていました。 iOS7.1でのiBeaconが改善されまくった話 | Qiita 噂のiOS7.1でiBeaconを試してみよう!! | Takahiro Octopress Blog iOS 7.1ではアプリが稼働していなくともiBeaconが利用可能に | apptoi iOS7 で iBeacon を使用してみよう ~応用編~ | ギャップロ 特に重要なのがアプリを起動していなくても領域観測できるようになったという点です。iBeacon の機能で一番問題視されていたところだったので、これはかなり嬉しい機能改善ですよね。ということで今回はバックグラウンドでさまざまな処理を試してみました。 領域観測を試し
- (void)viewDidLoad { [super viewDidLoad]; // (1) GMSCameraPositionインスタンスの作成 GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:35.698717 longitude:139.772900 zoom:16.0]; // (2) GMSMapViewインスタンスの作成 self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; // (3) myLocationEnabledプロパティ self.mapView.myLocationEnabled = YES; // (4) settings.myLocationButtonプロパティ self.mapView.s
HEADER_SEARCH_PATHS に $(inherited) がない 今回は CocoaPods に関する小ネタです。 ここ最近 Cocos2d-x の環境構築をしているのですが、Cocos2d-x のスクリプトで生成したプロジェクトに CocoaPods を導入すると、どうもビルドが上手くいきませんでした。 ビルドの失敗の原因は、CocoaPods が生成する Pods.xcconfig で設定されている HEADER_SEARCH_PATHS に $(inherited) が入っていないためでした。 プロジェクトの設定は「Project の設定」→「Pods.xcconfig の設定」→「Target の設定」の順に設定されていきます。Cocos2d-x のヘッダーを検索する設定は Project の設定にありますので、Pods.xcconfig で引き継がれないと Targe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く