-
Notifications
You must be signed in to change notification settings - Fork 48
/
412.srt
4337 lines (3183 loc) · 95.5 KB
/
412.srt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:00:00.506 --> 00:00:08.516 A:middle
[ Silence ]
00:00:09.016 --> 00:00:13.000 A:middle
[ Applause ]
00:00:14.596 --> 00:00:15.356 A:middle
>> Good afternoon everyone.
00:00:15.946 --> 00:00:19.216 A:middle
Welcome to Continuous
Integration in Xcode 5.
00:00:20.036 --> 00:00:21.316 A:middle
My name is Andrew Nesbitt.
00:00:21.436 --> 00:00:22.816 A:middle
I am the engineering manager
00:00:22.816 --> 00:00:24.996 A:middle
on the OS X Server
part of this feature.
00:00:28.026 --> 00:00:30.246 A:middle
So as you heard in
yesterday's platform kick off,
00:00:30.286 --> 00:00:34.846 A:middle
the theme for Xcode 5
is building better apps.
00:00:34.846 --> 00:00:37.266 A:middle
And Xcode 5 is packed, full
of amazing new features
00:00:37.266 --> 00:00:38.426 A:middle
to help you share this goal.
00:00:38.476 --> 00:00:41.636 A:middle
In this afternoon, we're going
to spend our time looking at one
00:00:41.636 --> 00:00:43.766 A:middle
of those new features in
particular and that is
00:00:43.766 --> 00:00:45.456 A:middle
of course Continuous
Integration.
00:00:46.076 --> 00:00:48.216 A:middle
And hopefully you will learn
how you can use Continuous
00:00:48.216 --> 00:00:50.356 A:middle
Integration to build
better apps.
00:00:50.896 --> 00:00:55.446 A:middle
So the lineup for this
afternoon is that we will start
00:00:55.446 --> 00:00:57.736 A:middle
out with a little bit of a
terminology refresh of the some
00:00:57.736 --> 00:00:59.796 A:middle
of the key Xcode terms
that we need to know.
00:00:59.966 --> 00:01:02.366 A:middle
And after that we'll
dig right in.
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:00:59.966 --> 00:01:02.366 A:middle
And after that we'll
dig right in.
00:01:02.516 --> 00:01:04.726 A:middle
We'll start exploring the
Xcode Service and we'll talk
00:01:04.726 --> 00:01:06.886 A:middle
for a while about
configuring OS X Server
00:01:06.886 --> 00:01:08.106 A:middle
for Continuous Integration.
00:01:08.396 --> 00:01:11.376 A:middle
After that we'll do a
deep dive into Xcode 5
00:01:11.376 --> 00:01:13.406 A:middle
and the band new bots
feature that we have.
00:01:13.546 --> 00:01:16.856 A:middle
And then we'll spend some time
looking at the web application
00:01:17.096 --> 00:01:18.636 A:middle
and the feature that
we call Scoreboard.
00:01:19.526 --> 00:01:21.536 A:middle
And after that we'll finish
with some best practices
00:01:21.536 --> 00:01:24.796 A:middle
that we have learned inside
Apple for deploying the service.
00:01:26.666 --> 00:01:29.486 A:middle
So the big question is why
use Continuous Integration?
00:01:30.366 --> 00:01:33.926 A:middle
Over the years, through
many iOS and OS X releases,
00:01:34.496 --> 00:01:36.966 A:middle
we have given you an enormous
toolbox of features to use.
00:01:36.966 --> 00:01:38.606 A:middle
And you guys have definitely
arisen to the challenge
00:01:38.606 --> 00:01:40.106 A:middle
by shipping amazing
applications.
00:01:41.186 --> 00:01:44.076 A:middle
And of course, shipping
amazing applications we all know
00:01:44.076 --> 00:01:45.016 A:middle
requires testing.
00:01:45.366 --> 00:01:49.216 A:middle
And as the number of OS versions
that you target and the types
00:01:49.216 --> 00:01:52.076 A:middle
of devices that you target
skill it becomes more
00:01:52.076 --> 00:01:54.326 A:middle
and more difficult to test
your applications well.
00:01:54.326 --> 00:01:56.456 A:middle
And this is where Continuous
Integration comes into play.
00:01:58.446 --> 00:02:00.726 A:middle
Continuous Integration will
give you the opportunity
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:01:58.446 --> 00:02:00.726 A:middle
Continuous Integration will
give you the opportunity
00:02:00.726 --> 00:02:02.796 A:middle
to do testing on
multiple OS versions
00:02:02.796 --> 00:02:04.576 A:middle
and multiple hardware models.
00:02:06.016 --> 00:02:07.946 A:middle
Of course, once you have
a server in the mix,
00:02:07.996 --> 00:02:10.526 A:middle
you're now in the
position to build, analyze
00:02:10.526 --> 00:02:12.356 A:middle
and test your project often.
00:02:13.646 --> 00:02:15.906 A:middle
And of course, having a server
will give you the opportunity
00:02:15.906 --> 00:02:19.686 A:middle
to catch problems quickly and
this is the key automatically.
00:02:22.146 --> 00:02:24.576 A:middle
Many of you have more than
one Mac and I'm sure a lot
00:02:24.576 --> 00:02:26.756 A:middle
of you have a Mac sitting in
your office doing nothing.
00:02:27.586 --> 00:02:30.626 A:middle
And this is a great opportunity
to put that Mac back to work.
00:02:30.826 --> 00:02:33.236 A:middle
Let the server do the
heavy-lifting of building your--
00:02:33.406 --> 00:02:34.816 A:middle
building your project
automatically.
00:02:34.946 --> 00:02:38.016 A:middle
And having a server lets you
do things that you can't do
00:02:38.016 --> 00:02:40.166 A:middle
in Xcode or that you
can't do in Xcode feasibly
00:02:40.166 --> 00:02:42.436 A:middle
and the big thing here is
the ability to gather, build,
00:02:42.436 --> 00:02:45.226 A:middle
and test history for
your project over time.
00:02:47.686 --> 00:02:49.356 A:middle
And, of course, having a server
00:02:49.356 --> 00:02:52.126 A:middle
in the mix gives you an awesome
new way to distribute builds
00:02:52.126 --> 00:02:54.206 A:middle
to your team and I see some
examples about coming up.
00:02:55.456 --> 00:02:57.976 A:middle
So to get started, let's
talk for a little second
00:02:57.976 --> 00:02:59.886 A:middle
about some terminology that
you're going to need to know.
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:03:00.896 --> 00:03:02.496 A:middle
There are three key terms.
00:03:03.416 --> 00:03:05.186 A:middle
Number one is that of a scheme.
00:03:05.186 --> 00:03:08.576 A:middle
And a scheme is a very simple
concept; it's just a recipe
00:03:08.616 --> 00:03:10.066 A:middle
for building your project.
00:03:10.696 --> 00:03:13.176 A:middle
A scheme defines what
targets you're going to build,
00:03:13.776 --> 00:03:15.706 A:middle
what dependent targets
you're going to get built,
00:03:15.876 --> 00:03:17.446 A:middle
and also what build
settings will be pass
00:03:17.446 --> 00:03:18.596 A:middle
when those targets do get built.
00:03:19.826 --> 00:03:22.236 A:middle
And because we're dealing with
the server, a server needs
00:03:22.236 --> 00:03:24.146 A:middle
to have access to this
scheme information.
00:03:24.286 --> 00:03:25.906 A:middle
And schemes are typically
personal things,
00:03:25.906 --> 00:03:27.676 A:middle
I'm sure you all have a
bunch of schemes that you set
00:03:27.676 --> 00:03:28.736 A:middle
up just the way you like them.
00:03:28.856 --> 00:03:32.326 A:middle
But we're going to use a little
extended version of the scheme
00:03:32.326 --> 00:03:34.136 A:middle
and that is of a shared scheme.
00:03:34.256 --> 00:03:36.146 A:middle
And a shared scheme is
nothing more than a scheme
00:03:36.146 --> 00:03:38.466 A:middle
that has been checked in to your
source controller repository
00:03:38.806 --> 00:03:40.486 A:middle
and shared with the
rest of your team.
00:03:40.696 --> 00:03:43.046 A:middle
So that's item number one.
00:03:43.296 --> 00:03:45.596 A:middle
Number two is that of a bot.
00:03:46.396 --> 00:03:50.946 A:middle
And a bot is a configuration
for analyzing, building, testing
00:03:50.946 --> 00:03:53.416 A:middle
and archiving your
project on a schedule.
00:03:53.486 --> 00:03:54.966 A:middle
And we'll come back to
this guy in a second.
00:03:56.526 --> 00:03:59.316 A:middle
The third item of terminology
is that of an integration.
00:03:59.426 --> 00:04:01.966 A:middle
And an integration is just
a single run of a bot.
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:03:59.426 --> 00:04:01.966 A:middle
And an integration is just
a single run of a bot.
00:04:02.236 --> 00:04:04.176 A:middle
So every time your bot
runs, your bot is said
00:04:04.176 --> 00:04:06.866 A:middle
to be performing an integration
or it is integrating.
00:04:08.916 --> 00:04:12.456 A:middle
So let's look at a little bit
more detail of surrounding bots.
00:04:14.446 --> 00:04:16.666 A:middle
So like I said, a bot
is a configuration
00:04:16.666 --> 00:04:17.685 A:middle
for building your project.
00:04:19.326 --> 00:04:21.736 A:middle
A bot defines what
we're going to build.
00:04:22.176 --> 00:04:23.236 A:middle
So there are two things here.
00:04:23.596 --> 00:04:26.346 A:middle
Firstly, it defines where
the source code lives
00:04:26.346 --> 00:04:27.256 A:middle
that we are going to build.
00:04:27.636 --> 00:04:29.406 A:middle
So what repository that
source code lives in?
00:04:29.406 --> 00:04:31.086 A:middle
How are we going to
access that repository
00:04:31.086 --> 00:04:32.066 A:middle
to get that source code?
00:04:33.246 --> 00:04:36.176 A:middle
And secondly, the project
or the workspace inside
00:04:36.176 --> 00:04:38.726 A:middle
that SCM location that
we're going to access
00:04:38.896 --> 00:04:39.926 A:middle
where that project lives?
00:04:42.566 --> 00:04:45.646 A:middle
Secondly, a bot defines when
we're going to build it.
00:04:46.026 --> 00:04:48.766 A:middle
So we have some great scheduling
options in the Xcode Service.
00:04:49.736 --> 00:04:53.546 A:middle
We have periodic options so you
can build your project hourly,
00:04:53.846 --> 00:04:57.536 A:middle
daily at a time or weekly on a
day at a time of your chosen.
00:04:58.696 --> 00:04:59.946 A:middle
We have on-commit options.
00:04:59.946 --> 00:05:02.676 A:middle
So you can build when your
source repository changes
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:04:59.946 --> 00:05:02.676 A:middle
So you can build when your
source repository changes
00:05:02.676 --> 00:05:03.806 A:middle
and you can tell the server
00:05:03.806 --> 00:05:05.826 A:middle
when your source repository
changes by a heap script.
00:05:06.316 --> 00:05:08.376 A:middle
Or you can have the
server periodically checked
00:05:08.376 --> 00:05:10.926 A:middle
with your SCM server when
your source code is available,
00:05:11.296 --> 00:05:12.276 A:middle
otherwise known as pulling.
00:05:13.116 --> 00:05:14.386 A:middle
And of course there's manual.
00:05:14.386 --> 00:05:16.266 A:middle
So you will-- this will
be you will run the bot
00:05:16.266 --> 00:05:17.406 A:middle
when you feel like
running the bot.
00:05:18.416 --> 00:05:20.816 A:middle
The third slice of the
bot configuration is
00:05:20.816 --> 00:05:22.676 A:middle
that of how we're going
to build your project.
00:05:24.076 --> 00:05:26.916 A:middle
And this is composed of the
shared scheme information
00:05:26.916 --> 00:05:28.616 A:middle
that you've defined
when you set up the bot,
00:05:28.746 --> 00:05:30.696 A:middle
which scheme you'd
like us to use.
00:05:31.086 --> 00:05:33.606 A:middle
And then some options, we have
some action options available
00:05:33.606 --> 00:05:34.126 A:middle
for your bot.
00:05:34.296 --> 00:05:36.926 A:middle
So you can choose whether or
not you would like your bot
00:05:36.926 --> 00:05:40.076 A:middle
to perform static analysis,
whether or not you would
00:05:40.076 --> 00:05:41.886 A:middle
like your bot to
perform testing.
00:05:41.996 --> 00:05:46.616 A:middle
And if you are performing
testing, which devices
00:05:46.616 --> 00:05:48.096 A:middle
on which you would like
to perform testing.
00:05:48.096 --> 00:05:51.356 A:middle
And we support bot testing on
the Mac which is the server.
00:05:51.896 --> 00:05:54.386 A:middle
We support testing on
simulators, we support testing
00:05:54.386 --> 00:05:57.296 A:middle
on a single device, we support
testing on multiple devices
00:05:57.716 --> 00:05:59.726 A:middle
or any other combinations
of those settings.
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:06:00.616 --> 00:06:01.526 A:middle
Where that makes sense?
00:06:01.826 --> 00:06:02.716 A:middle
Of course.
00:06:02.816 --> 00:06:06.716 A:middle
And lastly, your bot can define
whether or not you would like us
00:06:06.716 --> 00:06:07.646 A:middle
to produce an archive.
00:06:07.646 --> 00:06:12.026 A:middle
And an archive will produce both
a package and an .xcarchive file
00:06:12.026 --> 00:06:13.846 A:middle
for a Mac project or an IPA
00:06:13.846 --> 00:06:16.086 A:middle
on an .xcarchive file
for an iOS project.
00:06:17.926 --> 00:06:20.126 A:middle
We also have some great
notification settings
00:06:20.126 --> 00:06:21.106 A:middle
for the Xcode Service.
00:06:21.106 --> 00:06:23.166 A:middle
So when you set up a bot,
you got a couple of options.
00:06:24.026 --> 00:06:28.496 A:middle
So we let you notify people, we
have checked in code to that bot
00:06:28.496 --> 00:06:30.956 A:middle
so all the source controls
submissions that have been made
00:06:30.956 --> 00:06:34.866 A:middle
since that bot last run, all
those people can get notified
00:06:34.866 --> 00:06:36.566 A:middle
and you can choose whether
to notify those people
00:06:36.926 --> 00:06:38.936 A:middle
when the bot is successful
or when the bot fails.
00:06:39.646 --> 00:06:42.946 A:middle
And you can also define
lists of e-mail addresses
00:06:42.946 --> 00:06:44.506 A:middle
for people you would
like to e-mail
00:06:44.506 --> 00:06:45.436 A:middle
on those conditions as well.
00:06:45.806 --> 00:06:51.016 A:middle
So the Xcode story can
really be thought of--
00:06:51.066 --> 00:06:53.466 A:middle
the Xcode Service story can be
thought off in two parts here.
00:06:53.586 --> 00:06:55.616 A:middle
So there is OS X Server
00:06:55.616 --> 00:06:57.806 A:middle
and we have an amazing
preview releasable OX X Server,
00:06:57.806 --> 00:07:00.746 A:middle
and of course there's Xcode 5.
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:06:57.806 --> 00:07:00.746 A:middle
and of course there's Xcode 5.
00:07:00.996 --> 00:07:02.886 A:middle
So let's start by digging
00:07:02.886 --> 00:07:05.956 A:middle
in to the OS X Server
part of the story first.
00:07:08.006 --> 00:07:09.896 A:middle
So in the Mountain
Lion timeframe,
00:07:10.046 --> 00:07:12.086 A:middle
we made server an application.
00:07:12.356 --> 00:07:15.036 A:middle
No longer a server, an entirely
separate operating system
00:07:15.036 --> 00:07:18.676 A:middle
that you have to set up, Server
is just an app that you purchase
00:07:18.756 --> 00:07:21.116 A:middle
and download and install
from the Mac App Store.
00:07:21.206 --> 00:07:24.026 A:middle
And it's never been simpler to
turn your Mac into a server.
00:07:24.216 --> 00:07:29.406 A:middle
And carrying on this theme of
simplicity in the next version
00:07:29.406 --> 00:07:31.206 A:middle
of Server the pre-release
that we have available.
00:07:32.216 --> 00:07:33.326 A:middle
We have some great new features.
00:07:33.326 --> 00:07:34.826 A:middle
And one of those
is simple setup.
00:07:35.406 --> 00:07:38.196 A:middle
Simple setup takes out all
the complexities setting
00:07:38.196 --> 00:07:38.836 A:middle
up your server.
00:07:39.056 --> 00:07:41.426 A:middle
No longer will you be asked a
bunch of complicated questions
00:07:41.426 --> 00:07:44.546 A:middle
about networking configurations
or Apple ID configurations,
00:07:44.886 --> 00:07:45.826 A:middle
you're asked one question
00:07:45.826 --> 00:07:47.636 A:middle
that is an administrator
user name and password.
00:07:47.736 --> 00:07:50.106 A:middle
And once you've entered that
credential, the Server is
00:07:50.106 --> 00:07:51.656 A:middle
up to the races setting
itself up
00:07:51.656 --> 00:07:53.346 A:middle
and within seconds you
have a server available
00:07:53.346 --> 00:07:56.976 A:middle
and ready to be used.
00:07:56.976 --> 00:07:58.696 A:middle
We also have some
brand new UI in server.
00:07:59.826 --> 00:08:01.586 A:middle
Server looks great,
it's never look better
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:07:59.826 --> 00:08:01.586 A:middle
Server looks great,
it's never look better
00:08:01.586 --> 00:08:03.926 A:middle
and we're actually servicing
some really useful information
00:08:03.926 --> 00:08:05.736 A:middle
that we find that people
really, really want.
00:08:06.366 --> 00:08:08.326 A:middle
Like how your service
is behaving,
00:08:08.636 --> 00:08:09.916 A:middle
how to access your service
00:08:09.916 --> 00:08:11.306 A:middle
and whether your
service is on or off.
00:08:12.666 --> 00:08:15.456 A:middle
So as an example, let's
dig in to what it takes
00:08:15.456 --> 00:08:17.066 A:middle
to set up an OS X Server.
00:08:19.116 --> 00:08:21.396 A:middle
So when you launch OS X
Server, you'll see this.
00:08:21.396 --> 00:08:23.246 A:middle
And this is the Welcome
menu for the application.
00:08:24.046 --> 00:08:26.236 A:middle
And when you click
Continue, you'll be asked
00:08:26.236 --> 00:08:27.486 A:middle
for a user name and password.
00:08:29.136 --> 00:08:31.196 A:middle
And once you type those
guys in, the Server goes off
00:08:31.196 --> 00:08:35.405 A:middle
and starts doing its thing.
00:08:35.556 --> 00:08:36.775 A:middle
And very quickly you're launched
00:08:36.775 --> 00:08:38.645 A:middle
into the OS X Server
application.
00:08:39.765 --> 00:08:42.186 A:middle
And in the left you'll
see all the services
00:08:42.186 --> 00:08:44.066 A:middle
that the OS X Server
application supports.
00:08:44.066 --> 00:08:45.396 A:middle
And on the right, you'll
see the detailed view
00:08:45.396 --> 00:08:46.136 A:middle
for those services.
00:08:46.266 --> 00:08:50.956 A:middle
So before we go any further,
you're probably all wondering
00:08:50.956 --> 00:08:52.466 A:middle
about the thing that
you're here--
00:08:52.466 --> 00:08:55.646 A:middle
you're here to hear about
which is the Xcode Service.
00:08:58.486 --> 00:09:00.476 A:middle
The Xcode Service
when it's turned
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:08:58.486 --> 00:09:00.476 A:middle
The Xcode Service
when it's turned
00:09:00.476 --> 00:09:03.046 A:middle
on in OS X Server will
start advertising itself
00:09:03.046 --> 00:09:05.396 A:middle
across your network and it
uses Bonjour to do that.
00:09:05.956 --> 00:09:08.666 A:middle
So any Xcode 5 user
that's sitting
00:09:08.666 --> 00:09:10.946 A:middle
within your network will see
servers that are available--
00:09:10.946 --> 00:09:13.026 A:middle
that have been available, made
available in your network.
00:09:13.136 --> 00:09:18.466 A:middle
Once the service is turned on,
it's super simple to create
00:09:18.546 --> 00:09:22.626 A:middle
and manage bots that build
both Mac and iOS projects.
00:09:23.126 --> 00:09:25.286 A:middle
And if you're a little bit
fuzzy about Access settings,
00:09:26.036 --> 00:09:27.956 A:middle
we do have some great ways
to configure that too.
00:09:29.556 --> 00:09:31.306 A:middle
You can define both who
you would like to be able
00:09:31.306 --> 00:09:34.026 A:middle
to create bots on your
server and also who you would
00:09:34.026 --> 00:09:35.996 A:middle
like to be able to view
bots on your server.
00:09:35.996 --> 00:09:37.796 A:middle
And you can set this up in
whatever way that you like,
00:09:37.886 --> 00:09:41.856 A:middle
whatever way that makes
sense for your team.
00:09:42.066 --> 00:09:44.216 A:middle
We also have some really,
really great integration
00:09:44.216 --> 00:09:45.446 A:middle
with the Apple Developer
Program.
00:09:45.646 --> 00:09:47.736 A:middle
And this means that you
can join your Server
00:09:47.866 --> 00:09:49.776 A:middle
to your existing
Apple Developer team.
00:09:50.706 --> 00:09:53.086 A:middle
And the question might be well
why I would I want to do that?
00:09:53.086 --> 00:09:56.056 A:middle
And the answer is when your
Server joins your team,
00:09:56.056 --> 00:09:59.256 A:middle
your Server has the opportunity
to request its own Mac
00:09:59.256 --> 00:10:02.506 A:middle
and iOS signing identities
and also download all
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:09:59.256 --> 00:10:02.506 A:middle
and iOS signing identities
and also download all
00:10:02.506 --> 00:10:03.686 A:middle
of the team provisioning
profiles
00:10:03.686 --> 00:10:04.756 A:middle
that exist for your team.
00:10:04.906 --> 00:10:06.976 A:middle
And this puts us in
a great position.
00:10:07.106 --> 00:10:09.726 A:middle
And this brings me on to my
next point which is devices.
00:10:10.386 --> 00:10:13.226 A:middle
OS X Server has great
support for devices for bots.
00:10:13.586 --> 00:10:15.856 A:middle
So once your server is a
member of a developer team,
00:10:16.136 --> 00:10:17.886 A:middle
you'll see devices
in OS X Server.
00:10:19.406 --> 00:10:21.976 A:middle
You can easily add and
remove devices both to
00:10:21.976 --> 00:10:24.966 A:middle
and from your team and of
course once you've done that,
00:10:25.086 --> 00:10:27.116 A:middle
those devices become
available when people set
00:10:27.116 --> 00:10:29.686 A:middle
up bots using Xcode 5
against your Server.
00:10:29.686 --> 00:10:35.156 A:middle
Another feature that we've been
asked for a lot in OS X Server
00:10:35.156 --> 00:10:38.196 A:middle
for the last couple of years
is source control hosting
00:10:38.196 --> 00:10:39.806 A:middle
and we are adding
this feature too.
00:10:39.806 --> 00:10:43.326 A:middle
So, OS X Server will support
Hosted Git repositories
00:10:43.536 --> 00:10:45.516 A:middle
and once they're set up
with just a few clicks,
00:10:45.516 --> 00:10:47.596 A:middle
you'll have a Hosted Git
repository that's accessible
00:10:47.596 --> 00:10:49.276 A:middle
by SSH, HTTP or HTTPS.
00:10:49.276 --> 00:10:51.546 A:middle
And equally you can lock
00:10:51.546 --> 00:10:53.846 A:middle
that repository done just
the way you like it to.
00:10:54.516 --> 00:11:00.946 A:middle
[ Applause ]
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:10:54.516 --> 00:11:00.946 A:middle
[ Applause ]
00:11:01.446 --> 00:11:03.806 A:middle
And of course, if you're
not ready to make the move