Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Tomoki Hasegawa
PDF, PPTX
4,636 views
TestFlightみたいなのを自作する
【第21回】potatotips(iOS/Android開発Tips共有会)の発表資料です。
Software
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 40
2
/ 40
3
/ 40
4
/ 40
5
/ 40
6
/ 40
7
/ 40
8
/ 40
9
/ 40
10
/ 40
11
/ 40
12
/ 40
13
/ 40
14
/ 40
15
/ 40
16
/ 40
17
/ 40
18
/ 40
19
/ 40
20
/ 40
21
/ 40
22
/ 40
23
/ 40
24
/ 40
25
/ 40
26
/ 40
27
/ 40
28
/ 40
29
/ 40
30
/ 40
31
/ 40
32
/ 40
33
/ 40
34
/ 40
35
/ 40
36
/ 40
37
/ 40
38
/ 40
39
/ 40
40
/ 40
More Related Content
PDF
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
by
Daisuke Yamashita
PDF
はじめてのiOSアプリ開発 Swift対応版
by
Tomoki Hasegawa
PDF
Stargazer Meetup #1
by
Tomoki Hasegawa
PDF
tvOSでWebSocketを使う
by
Tomoki Hasegawa
PDF
tvOSネイティブアプリを作る
by
Tomoki Hasegawa
PDF
2011_9_9_AIR_LightningTalk
by
Shozo Okada
PDF
3D touch for iOS
by
toyship
PDF
Framework code reading
by
shinnosuke kugimiya
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
by
Daisuke Yamashita
はじめてのiOSアプリ開発 Swift対応版
by
Tomoki Hasegawa
Stargazer Meetup #1
by
Tomoki Hasegawa
tvOSでWebSocketを使う
by
Tomoki Hasegawa
tvOSネイティブアプリを作る
by
Tomoki Hasegawa
2011_9_9_AIR_LightningTalk
by
Shozo Okada
3D touch for iOS
by
toyship
Framework code reading
by
shinnosuke kugimiya
Viewers also liked
PDF
MySQL 8.0で憶えておいてほしいこと
by
yoku0825
PDF
Enumerate
by
Motoki Narita
PDF
What's new Swift3
by
toyship
PDF
To learn Interpolator
by
Mima Yuki
PDF
Enhancements with 3D Touch
by
Satoshi Ohki
PDF
UIKit Sound
by
cocominap
MySQL 8.0で憶えておいてほしいこと
by
yoku0825
Enumerate
by
Motoki Narita
What's new Swift3
by
toyship
To learn Interpolator
by
Mima Yuki
Enhancements with 3D Touch
by
Satoshi Ohki
UIKit Sound
by
cocominap
Similar to TestFlightみたいなのを自作する
PDF
TestFlight自動化でらくらくチームテスト
by
Yoichiro Sakurai
PDF
Gcdについて?
by
Shun Nakahara
PPT
未踏2次 iPhoneソフトウェアモデム開発プロジェクト
by
akihiro uehara
PDF
モノづくりのススメ
by
cat kaotaro
PPTX
Game Development and Automation @ Agile Sapporo 2018 #1
by
Michael Tedder
PDF
20140920 CreatorsMeetup20
by
Seigo Tanaka
PDF
インタラクションデザインにおけるオープン化事例の検討
by
Yosuke Sakai
KEY
Gcdについて?
by
Shun Nakahara
KEY
Gcdについて?
by
Shun Nakahara
PPTX
Dan IWASAKI Portfolio 2017/05
by
Dan Imagineer
TestFlight自動化でらくらくチームテスト
by
Yoichiro Sakurai
Gcdについて?
by
Shun Nakahara
未踏2次 iPhoneソフトウェアモデム開発プロジェクト
by
akihiro uehara
モノづくりのススメ
by
cat kaotaro
Game Development and Automation @ Agile Sapporo 2018 #1
by
Michael Tedder
20140920 CreatorsMeetup20
by
Seigo Tanaka
インタラクションデザインにおけるオープン化事例の検討
by
Yosuke Sakai
Gcdについて?
by
Shun Nakahara
Gcdについて?
by
Shun Nakahara
Dan IWASAKI Portfolio 2017/05
by
Dan Imagineer
More from Tomoki Hasegawa
PDF
PHPでスマホアプリにプッシュ通知する
by
Tomoki Hasegawa
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
PDF
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
by
Tomoki Hasegawa
PDF
PUSH通知証明書作成ツールを作った
by
Tomoki Hasegawa
PDF
Swiftのプロパティオブザーバを使い倒す
by
Tomoki Hasegawa
PDF
3 auto layout tips
by
Tomoki Hasegawa
PDF
PHPカンファレンス福岡に 行ってきた
by
Tomoki Hasegawa
PDF
AppStore申請を一式まるっと自動化する
by
Tomoki Hasegawa
PDF
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
by
Tomoki Hasegawa
PDF
エンジニアのお祭り
by
Tomoki Hasegawa
PDF
勉強会のこちら側とあちら側
by
Tomoki Hasegawa
PDF
Drupal on vagrant-aws
by
Tomoki Hasegawa
PDF
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
by
Tomoki Hasegawa
PDF
CakePHP3ウォークスルー
by
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた PHP side
by
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた
by
Tomoki Hasegawa
PDF
PHPerのためのSwift入門
by
Tomoki Hasegawa
PDF
iOS Developers Conference Japan 2016
by
Tomoki Hasegawa
PDF
とある受託ベンダの開発環境
by
Tomoki Hasegawa
PDF
Reading php terminal-gameboy-emulator
by
Tomoki Hasegawa
PHPでスマホアプリにプッシュ通知する
by
Tomoki Hasegawa
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
by
Tomoki Hasegawa
PUSH通知証明書作成ツールを作った
by
Tomoki Hasegawa
Swiftのプロパティオブザーバを使い倒す
by
Tomoki Hasegawa
3 auto layout tips
by
Tomoki Hasegawa
PHPカンファレンス福岡に 行ってきた
by
Tomoki Hasegawa
AppStore申請を一式まるっと自動化する
by
Tomoki Hasegawa
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
by
Tomoki Hasegawa
エンジニアのお祭り
by
Tomoki Hasegawa
勉強会のこちら側とあちら側
by
Tomoki Hasegawa
Drupal on vagrant-aws
by
Tomoki Hasegawa
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
by
Tomoki Hasegawa
CakePHP3ウォークスルー
by
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた PHP side
by
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた
by
Tomoki Hasegawa
PHPerのためのSwift入門
by
Tomoki Hasegawa
iOS Developers Conference Japan 2016
by
Tomoki Hasegawa
とある受託ベンダの開発環境
by
Tomoki Hasegawa
Reading php terminal-gameboy-emulator
by
Tomoki Hasegawa
TestFlightみたいなのを自作する
1.
TestFlightみたいなのを 自作する デジタルサーカス(株)長谷川智希
2.
長谷川智希 とも き @tomzoh とむぞう 開発系趣味 その他趣味 Webサイト開発, iOSアプリ開発 レンタルカートレース,
電子工作(mbed), … TOMZOH お仕事 スマホアプリ受託開発 Mgr デジタルサーカス(株) 副団長CTO Facebook CakePHP iOS
3.
デジタルサーカス(株) ・ Webサイト受託開発 ・ スマホアプリ受託開発 ・
自社サービス (PHP, Drupal, CakePHP) (iOS, Android) (http://appbuilder.jp) Twitter: @tomzoh
4.
Twitter: @tomzoh
5.
今日のテーマ: TestFlightみたいなのを 自作する
6.
アプリ受託開発
7.
お客さま企業 ご担当者様 PM デザイナ iOS
Android Web アプリユーザ 体制
8.
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 • アプリの完成に対してコミットする 契約。 • ウォーターフォール気味にプロジェ クト進行する必要がある。 •
とは言いつつ紙で「要件定義」して も実際に動かしてみたら「ちょっと 違ったね😓」というのはある。 • 開発・テスト後に実際にお客さまに実 際に触って頂いて、手触り感の確認、 修正を繰り返す。(最終化)
9.
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化
10.
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 バイナリ 作成&配布
11.
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 動作確認 バイナリ 作成&配布
12.
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 動作確認 プログラム 修正 バイナリ 作成&配布
13.
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 動作確認 プログラム 修正 バイナリ 作成&配布
14.
iOSアプリ配布プラットフォーム • 2009∼ メール配布 •
「UDIDの調べ方🔎」「iTunesにドラッグ&ドロップします」的 な手順書。 • 個人所有の端末を同期しちゃって端末が真っ白になる事故😱 • 2010∼ TestFlight • 「更新版アップしました」「確認しました」大分便利😇 • 「TestFlight導入手順書」😕 • 2011∼ InHouse配布
15.
InHouse配布
16.
iOSのアプリ配布 • AppStore経由で配布する配布 • (Appleの)TestFlightもこれ。 •
iTunesやiPhone構成ユーティリティを使って、 ケーブル経由でインストールする • 独自に構築したWebサイトから通信回線経由で 配布する。
17.
iOSのアプリ配布 • AppStore経由で配布する配布 • (Appleの)TestFlightもこれ。 •
iTunesやiPhone構成ユーティリティを使って、 ケーブル経由でインストールする • 独自に構築したWebサイトから通信回線経由で 配布する。 InHouse配布
18.
iOS InHouse配布の仕組み plistファイル 配布サーバ バイナリ配布サーバ iOS端末
19.
iOS InHouse配布の仕組み plistファイル 配布サーバ バイナリ配布サーバ iOS端末 ①plistファイルを取得
20.
iOS InHouse配布の仕組み plistファイル 配布サーバ バイナリ配布サーバ iOS端末 ①plistファイルを取得 ②plistファイルから ipaのURLを取得
21.
iOS InHouse配布の仕組み plistファイル 配布サーバ バイナリ配布サーバ iOS端末 ①plistファイルを取得 ②plistファイルから ipaのURLを取得 ③ipaファイルを 取得してインストール
22.
HTMLからplistファイルへのリンク <a href=‘itms-services://?action=download- manifest&url=https://path/to/plist/foo.plist'> <span class=‘title’>2015/06/30_2版
(2回⽬目)</span> <span class=‘comment’>2015/06/30(Pre)</span> </a>
23.
HTMLからplistファイルへのリンク <a href=‘itms-services://?action=download- manifest&url=https://path/to/plist/foo.plist'> <span class=‘title’>2015/06/30_2版
(2回⽬目)</span> <span class=‘comment’>2015/06/30(Pre)</span> </a> 固定
24.
HTMLからplistファイルへのリンク <a href=‘itms-services://?action=download- manifest&url=https://path/to/plist/foo.plist'> <span class=‘title’>2015/06/30_2版
(2回⽬目)</span> <span class=‘comment’>2015/06/30(Pre)</span> </a> 固定 plistファイルのURL
25.
HTMLからplistファイルへのリンク <a href=‘itms-services://?action=download- manifest&url=https://path/to/plist/foo.plist'> <span class=‘title’>2015/06/30_2版
(2回⽬目)</span> <span class=‘comment’>2015/06/30(Pre)</span> </a> https:// iOS7以上でhttps必須
26.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE
plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://example.com/path/to/ipa/foo.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.example.foo</string> <key>bundle-version</key> <string>3.1.2</string> <key>kind</key> <string>software</string> <key>title</key> <string>2015/08/31 (API:xxxx)【ver1.0.1】</string> </dict> </dict> </array> </dict> </plist> plistファイル
27.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE
plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://example.com/path/to/ipa/foo.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.example.foo</string> <key>bundle-version</key> <string>3.1.2</string> <key>kind</key> <string>software</string> <key>title</key> <string>2015/08/31 (API:xxxx)【ver1.0.1】</string> </dict> </dict> </array> </dict> </plist> plistファイル
28.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE
plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://example.com/path/to/ipa/foo.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.example.foo</string> <key>bundle-version</key> <string>3.1.2</string> <key>kind</key> <string>software</string> <key>title</key> <string>2015/08/31 (API:xxxx)【ver1.0.1】</string> </dict> </dict> </array> </dict> </plist> plistファイル <key>url</key> <string>http://example.com/path/to/ipa/foo.ipa</string>
29.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE
plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://example.com/path/to/ipa/foo.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.example.foo</string> <key>bundle-version</key> <string>3.1.2</string> <key>kind</key> <string>software</string> <key>title</key> <string>2015/08/31 (API:xxxx)【ver1.0.1】</string> </dict> </dict> </array> </dict> </plist> plistファイル
30.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE
plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://example.com/path/to/ipa/foo.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.example.foo</string> <key>bundle-version</key> <string>3.1.2</string> <key>kind</key> <string>software</string> <key>title</key> <string>2015/08/31 (API:xxxx)【ver1.0.1】</string> </dict> </dict> </array> </dict> </plist> plistファイル
31.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE
plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://example.com/path/to/ipa/foo.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.example.foo</string> <key>bundle-version</key> <string>3.1.2</string> <key>kind</key> <string>software</string> <key>title</key> <string>2015/08/31 (API:xxxx)【ver1.0.1】</string> </dict> </dict> </array> </dict> </plist> plistファイル <key>title</key> <string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
32.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE
plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://example.com/path/to/ipa/foo.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.example.foo</string> <key>bundle-version</key> <string>3.1.2</string> <key>kind</key> <string>software</string> <key>title</key> <string>2015/08/31 (API:xxxx)【ver1.0.1】</string> </dict> </dict> </array> </dict> </plist> plistファイル <key>title</key> <string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
33.
InHouse配布システム@デジタルサーカス • プロジェクトごとに割り当てた特 定のURLをiPhoneで開くとアッ プされたアプリの一覧を表示。 • タップでインストール👍
34.
InHouse配布システム@デジタルサーカス • プロジェクトごとに割り当てた特 定のURLをiPhoneで開くとアッ プされたアプリの一覧を表示。 • タップでインストール👍
35.
InHouse配布システム@デジタルサーカス • Subversionの特定リポジトリに ipaをコミットすると一覧として 表示。 • ファイル名からタイトルを生成。 •
コミットログをコメントとして表 示。
36.
まとめ
37.
まとめ • InHouse配布を使うとTestFlightみたいなのを簡単 に作れる。 • HTMLからXML形式のplistファイルに
itms-services:// でリンクする。 • plistにipaのパスが書いてある設計。 • ipaのURLはhttpsの必要あり。
38.
ありがとうございました @tomzoh デジタルサーカス(株) 声かけてください We re hiring!!
39.
Future Works • ビルド自動化したい😓 •
今は自動化そのものはかんたん。 • ソースを特定のブランチにPUSHしたらビルド。 • アプリの設定を自動表示したい • 使っている証明書, APIの向き前, Bundle ID, Version, Build • 新規プロジェクト開始時の設定を簡単にしたい😕 • App ID, 証明書の作成, PUSH通知用証明書の作成。 OSSで良いのがあったら教えてください。
40.
参考: 認証ダイアログ • EnterpriseのProvisioningProfileで 署名したバイナリをインストールし、 実行すると認証ダイアログが表示され る。 •
iOS9では[信頼]ボタンが表示されず、 設定.app → 一般 → プロファイルか ら明示的に信頼設定する必要アリ。
Download