SlideShare a Scribd company logo
1 of 25
Download to read offline
Xcode7時代のアプリ配布
2015/11/24

@TachibanaKaoru
自己紹介
• @TachibanaKaoru
• 渋谷のVOYAGE GROUPで iOS
アプリを作っています。
• 最近は「朝時間」というメディ
アアプリを担当しています。
• 最近は渋谷のRock & Wall でボ
ルダリングで朝活しています。
アプリ配布の意味
• なんのために、誰に配布するのか
• 開発メンバーに設計テスト用モジュールとして
• デザイナー向けにデザイン確認モジュールとして
• プロジェクトメンバーにUIテストモジュールとして
• ユーザー向けにβテストとして
配布に求められるもの
• その時のリリース目的のソースコードでのモジュール
(場合によっては必ずしも最新とは限らない)
• 端末登録などの事前の準備は可能な限り排除したい
• ビルド・配布は可能な限り自動化したい
Xcode BOT
Xcode BOTとは
• Xcode5から導入されているApple公式CIツール。
• 主要機能
• 自動ビルド
• Analyze(静的解析)の実施
• UITest/UnitTestの実行
• ipaファイルの作成と配布
Xcode BOT構成例
• Mac OS X Serverが必要で
す。
• 構成例(上)
• 2台のMacで構成
• 構成例(下)
• 1台のMacで構成
Xcode BOT
• Screen from Xcode
配布画面
• Mac Safari から見た配布画面
配布画面
• Mobile Safariから見た配布画面
Pros and Cons
• Pros
• ブランチを指定してBOTを作成できるため、開発用ブランチ、デ
ザイン変更用ブランチ、リリース用ブランチ……など1つのプロ
ジェクトに対して複数の配布ラインを作成することができる。
• それぞれのBOT(ブランチ)の、過去の任意のタイミングのビル
ド取得も可能。
• CommitごとやHourly/Daily/Weeklyなどの自動ビルド生成が可能。
• テストも同時に運用(UITest/UnitText)することができる。
Pros and Cons
• Cons
• テスト端末の開発用デバイス登録が必要。
• CocoaPodsとの相性が悪い。
External Test
External Testとは
• 2014年秋、Appleが買収したアプリ配布スキーム
• 以前はサードパーティ性のアプリ配布サービスとし
て運用されていた。
• Appleに買収されたことにより、iTunes Connectの中
から使えるようになり、利便性が増した。
External Testの配布
• iTunes Connectから配布します。
External Testによる配信
• 配布モジュールのアップロードは iTunes Connectへ行
う。
• 認証をしたあとに、iOS のTest Flightアプリでダウン
ロード可能。
Pros and Cons
• Pros
• App Storeからリリースするモジュールと同じモジュールを使用。
• テスト用にデバイス登録をする必要がない。
• 社外のユーザーへのリリースが可能。
• Cons
• External Test専用の審査がある。
• 1アプリにつき、一度に一つのモジュールしか配布できない。
• テストユーザーの Apple IDを教えてもらう必要がある。
• iOS8以上のユーザーにしか配布できない。
External Testの審査
• アプリのバージョンを変更するたびに審査が必要となる。
• ただし、ビルド番号を変更した時には審査は不必要
• External Testの審査は、バージョン変更時に早めに行って
おくとよい。
• 審査時間はだいたい数時間∼5日。
• 審査は通常の審査よりはゆるいがrejectもある。
External Testの回数
• 以前は1日2回しかリリースできなかったが、最近の
変更で1日4回までに改善された
• ただし、アメリカ西海岸時間での1日なので注意が
必要。
Internal Test
• 機能的にはExternal Testと同等。
• ただし審査がないため即時配布が可能。
Enterprise Distribution
エンタープライズ配信とは
• App Storeを利用しない、社内向けのアプリ配信方法
• Appleと通常のDeveloper契約とは別に、エンタープラ
イズ契約を結ぶ必要がある。
• ビルドツール、配信ツールではないため、ビルドと
配信には別途準備が必要。
• この方法が悪用された不正アプリの配布などがあっ
たため、最近は運用が厳密になりはじめている。
Pros and Cons
• Pros
• Apple IDの登録やテスト用のデバイス登録が必要な
い。
• Cons
• Appleとの契約上、配布対象は自社の社員のみに限定
される。
• ビルド・配信方法は他の方法で構築する必要がある。
エンタープライズ配信のサーバー
• 配信サーバーは有効な証明書を持つhttpsサーバーである
必要がある。
• Apple の Mac OS X serverに搭載されている apacheサー
バーでも可能だが、SSL証明書のインポートに注意が必
要。(特定のベンダーのSSL証明書にしか対応していな
い)
• 配信時の設定ファイルはXcodeから書き出すことが可能。
(Xcode7)
まとめ
• 製品版の配布
• 設計テストや実装確認のための配布にはXcode BOT
での配布
• リリースモジュールのシステムテストや関係者間のプ
ロトタイプ配布は External Test
• 社内ツールの配布はEnterprise配布を利用

More Related Content

What's hot

福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
 
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
leverages_event
 
iPhoneアプリ無料勉強会 vol2
iPhoneアプリ無料勉強会 vol2iPhoneアプリ無料勉強会 vol2
iPhoneアプリ無料勉強会 vol2
codeal
 

What's hot (20)

はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①はじめてのiOSアプリ開発 ①
はじめてのiOSアプリ開発 ①
 
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべてApple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
 
UIを作る際にライブラリにする? それともDIYする?の切り分け(僕の見解)
UIを作る際にライブラリにする? それともDIYする?の切り分け(僕の見解)UIを作る際にライブラリにする? それともDIYする?の切り分け(僕の見解)
UIを作る際にライブラリにする? それともDIYする?の切り分け(僕の見解)
 
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open APIRESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
 
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
 
Swift playgroundsでアプリを作る
Swift playgroundsでアプリを作るSwift playgroundsでアプリを作る
Swift playgroundsでアプリを作る
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 
Directiveで実現できたこと
Directiveで実現できたことDirectiveで実現できたこと
Directiveで実現できたこと
 
ユーザーを待たせないためにできること
ユーザーを待たせないためにできることユーザーを待たせないためにできること
ユーザーを待たせないためにできること
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
 
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
 
UIを作る際にライブラリにする?それともDIYする?の切り分け&実装のアイデア例と事例紹介
UIを作る際にライブラリにする?それともDIYする?の切り分け&実装のアイデア例と事例紹介UIを作る際にライブラリにする?それともDIYする?の切り分け&実装のアイデア例と事例紹介
UIを作る際にライブラリにする?それともDIYする?の切り分け&実装のアイデア例と事例紹介
 
社内LTネタ ReactNative
社内LTネタ ReactNative社内LTネタ ReactNative
社内LTネタ ReactNative
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
 
JavaScriptでパワポを作ろう
JavaScriptでパワポを作ろうJavaScriptでパワポを作ろう
JavaScriptでパワポを作ろう
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
iPhoneアプリ無料勉強会 vol2
iPhoneアプリ無料勉強会 vol2iPhoneアプリ無料勉強会 vol2
iPhoneアプリ無料勉強会 vol2
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3
 

Viewers also liked

Viewers also liked (11)

HealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得するHealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得する
 
Swift Scriptingのすゝめ
Swift ScriptingのすゝめSwift Scriptingのすゝめ
Swift Scriptingのすゝめ
 
View Monitoring Tips
View Monitoring TipsView Monitoring Tips
View Monitoring Tips
 
tvOSネイティブアプリを作る
tvOSネイティブアプリを作るtvOSネイティブアプリを作る
tvOSネイティブアプリを作る
 
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
 
Androidでライブラリを作る
Androidでライブラリを作るAndroidでライブラリを作る
Androidでライブラリを作る
 
隕石という名のスクリーンショットをSlackに落下させる話
隕石という名のスクリーンショットをSlackに落下させる話隕石という名のスクリーンショットをSlackに落下させる話
隕石という名のスクリーンショットをSlackに落下させる話
 
Type Safe Assets Handling in Swift
Type Safe Assets Handling in SwiftType Safe Assets Handling in Swift
Type Safe Assets Handling in Swift
 
My first tvOS
My first tvOSMy first tvOS
My first tvOS
 
Caffeでお手軽本格ディープラーニングアプリ @potatotips
Caffeでお手軽本格ディープラーニングアプリ @potatotipsCaffeでお手軽本格ディープラーニングアプリ @potatotips
Caffeでお手軽本格ディープラーニングアプリ @potatotips
 
Introducing Cardio
Introducing CardioIntroducing Cardio
Introducing Cardio
 

Similar to Xcode7時代のアプリ配布

Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Koji Hasegawa
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
codeal
 

Similar to Xcode7時代のアプリ配布 (20)

AppCodeNight testcode
AppCodeNight testcodeAppCodeNight testcode
AppCodeNight testcode
 
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward
 
デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和
 
Macアプリのインストーラ作成ツールSwift版
Macアプリのインストーラ作成ツールSwift版Macアプリのインストーラ作成ツールSwift版
Macアプリのインストーラ作成ツールSwift版
 
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
Dockerとdev ops
Dockerとdev opsDockerとdev ops
Dockerとdev ops
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
 
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
 
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationMicrosoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
 
20150926 uwpストア攻略
20150926 uwpストア攻略20150926 uwpストア攻略
20150926 uwpストア攻略
 
iQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナーiQONの開発手法 at iQONエンジニアセミナー
iQONの開発手法 at iQONエンジニアセミナー
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
DevOps、その前に
DevOps、その前にDevOps、その前に
DevOps、その前に
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
 
Mix and Match / Swift and Objective-C
Mix and Match / Swift and Objective-CMix and Match / Swift and Objective-C
Mix and Match / Swift and Objective-C
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
 
Visual Studio Code 拡張の勘所
Visual Studio Code 拡張の勘所Visual Studio Code 拡張の勘所
Visual Studio Code 拡張の勘所
 
Ansible softlayer
Ansible softlayer Ansible softlayer
Ansible softlayer
 

More from toyship (14)

Time for Xcode Behavior
Time for Xcode BehaviorTime for Xcode Behavior
Time for Xcode Behavior
 
Notifications in iOS10
Notifications in iOS10Notifications in iOS10
Notifications in iOS10
 
Universal Link
Universal LinkUniversal Link
Universal Link
 
Can we live in a pure Swift world?
Can we live in a pure Swift world?Can we live in a pure Swift world?
Can we live in a pure Swift world?
 
Swift Protocol and Selector
Swift Protocol and SelectorSwift Protocol and Selector
Swift Protocol and Selector
 
What's new Swift3
What's new Swift3What's new Swift3
What's new Swift3
 
3D touch for iOS
3D touch for iOS3D touch for iOS
3D touch for iOS
 
Contents blocker on iOS9
Contents blocker on iOS9Contents blocker on iOS9
Contents blocker on iOS9
 
Embedded framework and so on
Embedded framework and so onEmbedded framework and so on
Embedded framework and so on
 
はじめてのWKInterfaceController
はじめてのWKInterfaceControllerはじめてのWKInterfaceController
はじめてのWKInterfaceController
 
App extension for iOS
App extension for iOSApp extension for iOS
App extension for iOS
 
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更する
 
Xcode bot
Xcode botXcode bot
Xcode bot
 
AVSpeechSynthesizerとロケール
AVSpeechSynthesizerとロケールAVSpeechSynthesizerとロケール
AVSpeechSynthesizerとロケール
 

Recently uploaded

Recently uploaded (10)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

Xcode7時代のアプリ配布