Início
Conheça mais
Enviar pesquisa
Carregar
Entrar
Cadastre-se
Anúncio
Check these out next
To learn Interpolator
Mima Yuki
Enhancements with 3D Touch
Satoshi Ohki
Enumerate
Motoki Narita
UIKit Sound
cocominap
What's new Swift3
toyship
MySQL 8.0で憶えておいてほしいこと
yoku0825
Sharoid Service Menu
sharoid
みなさんがHtml5をやらなくていい3つの理由
Masakazu Muraoka
1
de
40
Top clipped slide
TestFlightみたいなのを自作する
15 de Sep de 2015
•
0 gostou
4 gostaram
×
Seja o primeiro a gostar disto
mostrar mais
•
4,592 visualizações
visualizações
×
Vistos totais
0
No Slideshare
0
De incorporações
0
Número de incorporações
0
Baixar agora
Baixar para ler offline
Denunciar
Software
【第21回】potatotips(iOS/Android開発Tips共有会)の発表資料です。
Tomoki Hasegawa
Seguir
Anúncio
Anúncio
Anúncio
Recomendados
tvOSネイティブアプリを作る
Tomoki Hasegawa
4K visualizações
•
47 slides
tvOSでWebSocketを使う
Tomoki Hasegawa
4.8K visualizações
•
49 slides
はじめてのiOSアプリ開発 Swift対応版
Tomoki Hasegawa
3.5K visualizações
•
32 slides
2011_9_9_AIR_LightningTalk
Shozo Okada
399 visualizações
•
43 slides
Stargazer Meetup #1
Tomoki Hasegawa
995 visualizações
•
30 slides
Framework code reading
shinnosuke kugimiya
2.2K visualizações
•
47 slides
Mais conteúdo relacionado
Destaque
(6)
To learn Interpolator
Mima Yuki
•
4.6K visualizações
Enhancements with 3D Touch
Satoshi Ohki
•
3.5K visualizações
Enumerate
Motoki Narita
•
4.4K visualizações
UIKit Sound
cocominap
•
2.8K visualizações
What's new Swift3
toyship
•
6K visualizações
MySQL 8.0で憶えておいてほしいこと
yoku0825
•
18.4K visualizações
Similar a TestFlightみたいなのを自作する
(20)
Sharoid Service Menu
sharoid
•
384 visualizações
みなさんがHtml5をやらなくていい3つの理由
Masakazu Muraoka
•
5.5K visualizações
PUSH通知証明書作成ツールを作った
Tomoki Hasegawa
•
6.9K visualizações
モバイルビジネスの動向
Hidetoshi Mori
•
612 visualizações
iOSアプリ制作ツールアプリビルダーを支える技術
Tomoki Hasegawa
•
5.6K visualizações
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
•
3.6K visualizações
これからのNotesモバイルアプリはこう作れ
Mitsuru Katoh
•
2.9K visualizações
能力ファイル 2Tソフトウエアソリューション株式会社
Brrs Nguyen(2TS)
•
898 visualizações
ノンコーディングでビジネスアプリ作成 PowerApps入門
Trainocate Japan, Ltd.
•
298 visualizações
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
•
32.6K visualizações
これからのNOTESモバイルアプリはこう作れ
Mitsuru Katoh
•
1.3K visualizações
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara
•
5.6K visualizações
20190517_モバイルアーキテクチャを決定する際の観点
Takahito Miyamoto
•
332 visualizações
Html5時代のクリエイターのあり方
Masakazu Muraoka
•
895 visualizações
事業企画
teradonburi Terai
•
663 visualizações
AppStore申請を一式まるっと自動化する
Tomoki Hasegawa
•
18K visualizações
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
Ryohei Sogo
•
1.1K visualizações
Web技術を幅広く
Wakasa Masao
•
922 visualizações
3 auto layout tips
Tomoki Hasegawa
•
3.4K visualizações
CakePHP事例紹介 オンラインiPhoneアプリ作成ツール アプリビルダー
Tomoki Hasegawa
•
1.7K visualizações
Anúncio
Mais de Tomoki Hasegawa
(20)
Reading php terminal-gameboy-emulator
Tomoki Hasegawa
•
4.8K visualizações
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
Tomoki Hasegawa
•
1.6K visualizações
とある受託ベンダの開発環境
Tomoki Hasegawa
•
1.7K visualizações
iOS Developers Conference Japan 2016
Tomoki Hasegawa
•
957 visualizações
エンジニアのお祭り
Tomoki Hasegawa
•
961 visualizações
勉強会のこちら側とあちら側
Tomoki Hasegawa
•
3K visualizações
「これを買っている人はこれも買っています」実装してみた PHP side
Tomoki Hasegawa
•
907 visualizações
「これを買っている人はこれも買っています」実装してみた
Tomoki Hasegawa
•
2.5K visualizações
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Tomoki Hasegawa
•
18K visualizações
PHPでスマホアプリにプッシュ通知する
Tomoki Hasegawa
•
15.7K visualizações
PHPカンファレンス福岡に 行ってきた
Tomoki Hasegawa
•
1.2K visualizações
CakePHP3ウォークスルー
Tomoki Hasegawa
•
6.4K visualizações
PHPerのためのSwift入門
Tomoki Hasegawa
•
5.9K visualizações
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
•
4.5K visualizações
Drupal on vagrant-aws
Tomoki Hasegawa
•
1.4K visualizações
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
Tomoki Hasegawa
•
31.3K visualizações
Swift事情2014夏 ~ Swift入門 beta6対応
Tomoki Hasegawa
•
3.2K visualizações
CustomOperatorで遊ぼう!
Tomoki Hasegawa
•
1.2K visualizações
スクレイピングその後
Tomoki Hasegawa
•
4.5K visualizações
SwiftによるiOS開発再入門
Tomoki Hasegawa
•
4.2K visualizações
Último
(20)
留信网认证可查【马努卡理工学院文凭证书毕业证购买】
ihh14ds
•
2 visualizações
JSUG Info Vol.13
Draft One
•
3 visualizações
留信网认证可查【南安普顿大学文凭证书毕业证购买】
32lkhng
•
2 visualizações
在哪里可以做《邦德大学文凭证书|毕业证》
kjds1245
•
2 visualizações
留信网认证可查【莱比锡大学文凭证书毕业证购买】
khh123kj
•
2 visualizações
☀️【波恩大学毕业证成绩单留学生首选】
bjd42as
•
2 visualizações
留信网认证可查【罗德岛大学文凭证书毕业证购买】
1lkjhg
•
3 visualizações
留信网认证可查【伊利诺伊理工学院文凭证书毕业证购买】
1lkjhg
•
2 visualizações
☀️【斯旺西大学毕业证成绩单留学生首选】
25mjhd12
•
2 visualizações
留信网认证可查【麻省大学洛威尔分校文凭证书毕业证购买】
hh123hh1
•
2 visualizações
測量データ処理ソフト・MarineDiscoveryの紹介
ssuserbceee8
•
39 visualizações
留信网认证可查【怀俄明大学文凭证书毕业证购买】
1lkjhg
•
2 visualizações
留信网认证可查【太平洋大学文凭证书毕业证购买】
hh123hh1
•
2 visualizações
キレイなコードって.pdf
shumashimo1
•
12 visualizações
留信网认证可查【伯明翰大学文凭证书毕业证购买】
32lkhng
•
2 visualizações
留信网认证可查【波恩大学文凭证书毕业证购买】
khh123kj
•
2 visualizações
①【劳里埃大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 visualizações
在哪里可以做《俄克拉荷马大学文凭证书|毕业证》
lobd15
•
2 visualizações
留信网认证可查【新学院文凭证书毕业证购买】
hh123hh1
•
2 visualizações
①【布克大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
4 visualizações
Anúncio
TestFlightみたいなのを自作する
TestFlightみたいなのを 自作する デジタルサーカス(株)長谷川智希
長谷川智希 とも き @tomzoh とむぞう 開発系趣味 その他趣味 Webサイト開発, iOSアプリ開発 レンタルカートレース,
電子工作(mbed), … TOMZOH お仕事 スマホアプリ受託開発 Mgr デジタルサーカス(株) 副団長CTO Facebook CakePHP iOS
デジタルサーカス(株) ・ Webサイト受託開発 ・ スマホアプリ受託開発 ・
自社サービス (PHP, Drupal, CakePHP) (iOS, Android) (http://appbuilder.jp) Twitter: @tomzoh
Twitter: @tomzoh
今日のテーマ: TestFlightみたいなのを 自作する
アプリ受託開発
お客さま企業 ご担当者様 PM デザイナ iOS
Android Web アプリユーザ 体制
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 • アプリの完成に対してコミットする 契約。 • ウォーターフォール気味にプロジェ クト進行する必要がある。 •
とは言いつつ紙で「要件定義」して も実際に動かしてみたら「ちょっと 違ったね😓」というのはある。 • 開発・テスト後に実際にお客さまに実 際に触って頂いて、手触り感の確認、 修正を繰り返す。(最終化)
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 バイナリ 作成&配布
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 動作確認 バイナリ 作成&配布
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 動作確認 プログラム 修正 バイナリ 作成&配布
弊社のアプリ開発のステップ 要件定義・設計 開発 テスト アプリ申請 ご確認/最終化 動作確認 プログラム 修正 バイナリ 作成&配布
iOSアプリ配布プラットフォーム • 2009∼ メール配布 •
「UDIDの調べ方🔎」「iTunesにドラッグ&ドロップします」的 な手順書。 • 個人所有の端末を同期しちゃって端末が真っ白になる事故😱 • 2010∼ TestFlight • 「更新版アップしました」「確認しました」大分便利😇 • 「TestFlight導入手順書」😕 • 2011∼ InHouse配布
InHouse配布
iOSのアプリ配布 • AppStore経由で配布する配布 • (Appleの)TestFlightもこれ。 •
iTunesやiPhone構成ユーティリティを使って、 ケーブル経由でインストールする • 独自に構築したWebサイトから通信回線経由で 配布する。
iOSのアプリ配布 • AppStore経由で配布する配布 • (Appleの)TestFlightもこれ。 •
iTunesやiPhone構成ユーティリティを使って、 ケーブル経由でインストールする • 独自に構築したWebサイトから通信回線経由で 配布する。 InHouse配布
iOS InHouse配布の仕組み plistファイル 配布サーバ バイナリ配布サーバ iOS端末
iOS InHouse配布の仕組み plistファイル 配布サーバ バイナリ配布サーバ iOS端末 ①plistファイルを取得
iOS InHouse配布の仕組み plistファイル 配布サーバ バイナリ配布サーバ iOS端末 ①plistファイルを取得 ②plistファイルから ipaのURLを取得
iOS InHouse配布の仕組み plistファイル 配布サーバ バイナリ配布サーバ iOS端末 ①plistファイルを取得 ②plistファイルから ipaのURLを取得 ③ipaファイルを 取得してインストール
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>
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> 固定
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
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必須
<?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ファイル
<?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ファイル
<?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>
<?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ファイル
<?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ファイル
<?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>
<?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>
InHouse配布システム@デジタルサーカス • プロジェクトごとに割り当てた特 定のURLをiPhoneで開くとアッ プされたアプリの一覧を表示。 • タップでインストール👍
InHouse配布システム@デジタルサーカス • プロジェクトごとに割り当てた特 定のURLをiPhoneで開くとアッ プされたアプリの一覧を表示。 • タップでインストール👍
InHouse配布システム@デジタルサーカス • Subversionの特定リポジトリに ipaをコミットすると一覧として 表示。 • ファイル名からタイトルを生成。 •
コミットログをコメントとして表 示。
まとめ
まとめ • InHouse配布を使うとTestFlightみたいなのを簡単 に作れる。 • HTMLからXML形式のplistファイルに
itms-services:// でリンクする。 • plistにipaのパスが書いてある設計。 • ipaのURLはhttpsの必要あり。
ありがとうございました @tomzoh デジタルサーカス(株) 声かけてください We re hiring!!
Future Works • ビルド自動化したい😓 •
今は自動化そのものはかんたん。 • ソースを特定のブランチにPUSHしたらビルド。 • アプリの設定を自動表示したい • 使っている証明書, APIの向き前, Bundle ID, Version, Build • 新規プロジェクト開始時の設定を簡単にしたい😕 • App ID, 証明書の作成, PUSH通知用証明書の作成。 OSSで良いのがあったら教えてください。
参考: 認証ダイアログ • EnterpriseのProvisioningProfileで 署名したバイナリをインストールし、 実行すると認証ダイアログが表示され る。 •
iOS9では[信頼]ボタンが表示されず、 設定.app → 一般 → プロファイルか ら明示的に信頼設定する必要アリ。
Anúncio