WEBVTT

1
00:00:00.160 --> 00:00:01.420
Hi and welcome back.

2
00:00:01.440 --> 00:00:05.820
Today we're going to be exploring how
to install Fastlane on your computer so

3
00:00:05.850 --> 00:00:10.010
that you're able to upload
applications for test flight.

4
00:00:10.040 --> 00:00:12.260
Great.
So we're gonna go to Google Chrome

5
00:00:12.290 --> 00:00:15.780
and we're gonna just search
Fastlane React native.

6
00:00:15.810 --> 00:00:18.780
And here we should see
the Fast Lanes website.

7
00:00:18.810 --> 00:00:19.860
Let's open that up.

8
00:00:19.880 --> 00:00:24.100
It should be also linked to your
resources on this video.

9
00:00:24.130 --> 00:00:26.620
So please, that up.

10
00:00:26.650 --> 00:00:29.320
Now let's go to distributing beta builds

11
00:00:29.350 --> 00:00:33.700
with Fastlane on Android and iOS
and start following this documentation.

12
00:00:33.720 --> 00:00:35.600
I'm going to make this window smaller.

13
00:00:35.630 --> 00:00:40.220
I'm going to open up my terminal
and I'm going to start setting up.

14
00:00:40.250 --> 00:00:45.940
Now, this documentation clearly says that
Fastlane will not work on Windows PC.

15
00:00:45.970 --> 00:00:48.740
I don't think any of the students here are

16
00:00:48.770 --> 00:00:53.120
using Windows because in the beginning
of this course, I mentioned that we're

17
00:00:53.150 --> 00:00:57.980
going to be heavily relying
on the tools that Mac offers to us.

18
00:00:58.010 --> 00:01:03.740
And now let's start by installing
xcode command line tools.

19
00:01:03.770 --> 00:01:07.410
Honestly, I already know that this
is installed on my computer.

20
00:01:07.440 --> 00:01:09.260
So this is not going to go through.

21
00:01:09.290 --> 00:01:11.740
It might already be
installed for you as well.

22
00:01:11.770 --> 00:01:13.770
So if it is, that's okay.

23
00:01:13.800 --> 00:01:15.570
Just let's continue on.

24
00:01:15.600 --> 00:01:17.700
Otherwise, just wait for it to complete.

25
00:01:17.730 --> 00:01:20.620
And now let's install ruby using homebrew.

26
00:01:20.650 --> 00:01:23.100
This is also installed for me, for you.

27
00:01:23.130 --> 00:01:26.490
It might ask you for a password
and it might take some time.

28
00:01:26.520 --> 00:01:30.210
So it did some updates
as I see on my computer.

29
00:01:30.240 --> 00:01:32.820
Now we want to install Fast Lane,

30
00:01:32.850 --> 00:01:37.260
and this is also installed on my computer,
but just I'm going to run it with you guys

31
00:01:37.290 --> 00:01:40.460
and you should do so as well
and wait for it to complete.

32
00:01:40.490 --> 00:01:44.340
I'm going to enter my password.
Great.

33
00:01:44.370 --> 00:01:46.140
And let's see what it does.

34
00:01:46.170 --> 00:01:50.490
So it actually started reinstalling my
Fast lane, which I'm totally fine with.

35
00:01:50.520 --> 00:01:54.020
It's going to go through and come
back to the video once you're ready.

36
00:01:54.040 --> 00:01:56.540
Great.
So the installation has been completed.

37
00:01:56.570 --> 00:01:58.850
So we do have access to Fastlane.

38
00:01:58.880 --> 00:02:02.080
And what we want to do right now is make

39
00:02:02.110 --> 00:02:05.780
sure that we are all set
with our prerequisites.

40
00:02:05.810 --> 00:02:08.500
We should have Xcode nine or higher

41
00:02:08.530 --> 00:02:13.540
because at the time that I recorded this
video, code was already on version 14.

42
00:02:13.570 --> 00:02:15.100
So we're all set with that.

43
00:02:15.130 --> 00:02:17.780
Now I have to choose Bundle Identifier.

44
00:02:17.810 --> 00:02:21.020
And this Bundler Identifier
has to be something unique.

45
00:02:21.040 --> 00:02:21.380
Now,

46
00:02:21.410 --> 00:02:24.580
I'm pretty sure
that the Bundler Identifier that we have

47
00:02:24.610 --> 00:02:27.450
previously used for our
project is taken up.

48
00:02:27.480 --> 00:02:30.100
So let's create something better.

49
00:02:30.130 --> 00:02:36.160
Now I'm just going to go to my X workspace
file inside the code,

50
00:02:36.760 --> 00:02:40.500
and then I'm going to change
the Bundler Identifier.

51
00:02:40.530 --> 00:02:43.900
So just click here on your
main donation application.

52
00:02:43.920 --> 00:02:44.800
If you don't see it,

53
00:02:44.830 --> 00:02:49.860
just make sure that you're in this folder
here, and then click on your donation app

54
00:02:49.890 --> 00:02:54.900
and then General, and then
locate Bundle Identifier.

55
00:02:54.920 --> 00:02:55.900
Once you click that,

56
00:02:55.930 --> 00:03:00.700
you're going to be redirected here and you
can change your Bundle identifier here.

57
00:03:00.730 --> 00:03:04.540
Now, we might face some issues
with the Firebase setup that we have,

58
00:03:04.570 --> 00:03:09.820
but let's ignore that for now since our
goal is to upload an application

59
00:03:09.850 --> 00:03:14.980
on Test Flight and let's go on and change
our Bundle Identifier. For that,

60
00:03:15.010 --> 00:03:17.240
I'm actually going to use something that I

61
00:03:17.270 --> 00:03:25.460
definitely know is not going to be used,
which is com.DonationApp.vache maybe.

62
00:03:25.490 --> 00:03:30.140
And I don't think anyone will have this
Bundle Identifier, so it should be unique.

63
00:03:30.170 --> 00:03:31.780
And once I do that,

64
00:03:31.810 --> 00:03:37.100
we do have the Bundle Identifier already
all set, and we need to create our app

65
00:03:37.130 --> 00:03:42.780
name or Fastlane can create it for us,
but let's do that for ourselves.

66
00:03:42.810 --> 00:03:48.980
So let's just go to
developer.Apple.com and then let's go

67
00:03:49.010 --> 00:03:53.100
to our account and let's
click on Identifiers.

68
00:03:53.130 --> 00:03:56.780
Actually, you'll see one here because I
tried to create

69
00:03:56.810 --> 00:04:00.820
something for our application already,
but just ignore that and let's create

70
00:04:00.850 --> 00:04:05.700
a new one and have your
App ID selected here.

71
00:04:05.730 --> 00:04:09.140
I'm going to click on App and here I'm

72
00:04:09.170 --> 00:04:12.900
going to enter the same
Bundler Identifier that I had here.

73
00:04:12.920 --> 00:04:14.420
So I'm just going to copy this.

74
00:04:14.450 --> 00:04:19.300
I'm going to paste it here and I'm
just going to say Donation App here.

75
00:04:19.330 --> 00:04:23.540
Now let's see what are our choices here?

76
00:04:23.570 --> 00:04:26.500
I think push notifications might

77
00:04:26.530 --> 00:04:29.460
automatically be enabled
with our Firebase set up.

78
00:04:29.480 --> 00:04:33.220
So let's make sure that we check this
off so that we don't have any problems.

79
00:04:33.250 --> 00:04:35.540
Otherwise that's fine.

80
00:04:35.570 --> 00:04:38.300
If we have this checked off,
shouldn't be a problem.

81
00:04:38.330 --> 00:04:41.420
So let's just continue
and click on Register.

82
00:04:41.450 --> 00:04:45.540
And now we have a new
bundle Identifier here.

83
00:04:45.570 --> 00:04:48.700
So let's just make sure that we enable

84
00:04:48.720 --> 00:04:54.100
push notifications here just in case
that could be done with signing

85
00:04:54.130 --> 00:04:57.220
capabilities here and then
adding a new capability.

86
00:04:57.250 --> 00:04:59.740
Let's search for push notifications,

87
00:04:59.770 --> 00:05:03.300
double click it, and it
should be added right here.

88
00:05:03.320 --> 00:05:03.860
Great.

89
00:05:03.890 --> 00:05:10.440
So once we're done with that,
let's go back to our Developer account

90
00:05:10.840 --> 00:05:15.180
and then let's click on Applications
and create a new application.

91
00:05:15.210 --> 00:05:18.300
So I'm going to select Platform iOS.

92
00:05:18.330 --> 00:05:21.820
And here I'm going to name it as AltruDonate.

93
00:05:21.840 --> 00:05:24.260
And this also has to be
unique, by the way.

94
00:05:24.280 --> 00:05:27.660
I'm going to name it  AltruDonate.

95
00:05:27.690 --> 00:05:30.060
And then the primary language is going

96
00:05:30.090 --> 00:05:35.660
to be English and the Bundle Identifier
that I have created is present here.

97
00:05:35.690 --> 00:05:37.420
So I have to choose this.

98
00:05:37.450 --> 00:05:41.500
And then SKUs also have to be unique.

99
00:05:41.530 --> 00:05:46.060
So I'm just going to go with my
Bundle Identifier here as well.

100
00:05:46.090 --> 00:05:52.520
And I'm going to say that I have
full access and create this.

101
00:05:53.080 --> 00:05:54.700
Great.
So once we do that,

102
00:05:54.730 --> 00:05:58.860
here is our application
and here's our Test Flights tab where we

103
00:05:58.890 --> 00:06:01.700
have no builds uploading,
which is totally fine.

104
00:06:01.730 --> 00:06:04.580
Now let's go stack to our fast lane

105
00:06:04.600 --> 00:06:08.140
documentation and make sure that we
follow the rest of the setup.

106
00:06:08.170 --> 00:06:11.020
So we do have the Bundle ID already and we

107
00:06:11.040 --> 00:06:17.420
have our app name and we need to use
the Git ignore file inside iOS directory.

108
00:06:17.450 --> 00:06:20.660
So let's just click this
and open it in a new window.

109
00:06:20.690 --> 00:06:22.860
Copy the contents of this file,

110
00:06:22.890 --> 00:06:29.560
go to our webstorm project,
and then what we want to do here is make

111
00:06:29.590 --> 00:06:38.080
sure that we have
a new file we .gitignore.

112
00:06:38.200 --> 00:06:41.620
And I'm going to paste this here

113
00:06:41.650 --> 00:06:45.620
and make sure that it's
formatted as I want it to be.

114
00:06:45.650 --> 00:06:48.340
I'm a format freak.
Okay, great.

115
00:06:48.360 --> 00:06:49.700
So let's save this.

116
00:06:49.730 --> 00:06:51.620
And now we have the git ignore file.

117
00:06:51.650 --> 00:06:54.940
Let's go back to the documentation
and read what they need.

118
00:06:54.970 --> 00:06:59.820
So we do have the app icons and oh wow,

119
00:06:59.840 --> 00:07:02.140
they actually suggested
the website that I used.

120
00:07:02.170 --> 00:07:03.260
So that's great.

121
00:07:03.290 --> 00:07:04.860
So we have the app icons.

122
00:07:04.880 --> 00:07:07.740
So we're going to be all get we shouldn't
get any errors because of this.

123
00:07:07.770 --> 00:07:10.460
And now in the general tab identity

124
00:07:10.480 --> 00:07:15.340
section of the code,
the general tab identity,

125
00:07:15.360 --> 00:07:19.300
they're saying change the bundle
Identifier to your Identifier.

126
00:07:19.330 --> 00:07:20.820
It's already changed.

127
00:07:20.850 --> 00:07:24.980
And then in the Signing Capabilities tab,

128
00:07:25.010 --> 00:07:27.620
we should disable
automatically manage signing.

129
00:07:27.640 --> 00:07:28.740
So I have disabled that.

130
00:07:28.770 --> 00:07:30.220
That's totally fine.

131
00:07:30.250 --> 00:07:33.460
And the in the Build settings tab,

132
00:07:33.480 --> 00:07:37.540
you should select all in combined,
which I already have selected.

133
00:07:37.570 --> 00:07:42.540
And then we should scroll
down to code signing.

134
00:07:42.570 --> 00:07:47.340
And then we should make sure
that for debug, we have Apple development

135
00:07:47.360 --> 00:07:49.460
selected, which is right
here and selected.

136
00:07:49.480 --> 00:07:50.060
Okay.

137
00:07:50.090 --> 00:07:54.940
And then for any iOS SDK, Apple
development should be selected as well.

138
00:07:54.970 --> 00:07:56.140
And then for relieve,

139
00:07:56.170 --> 00:07:59.860
it should be Apple distribution
and Apple distribution here as well.

140
00:07:59.880 --> 00:08:00.220
Great.

141
00:08:00.250 --> 00:08:05.780
We have set up this correctly and then
we need to initialize the fastlane.

142
00:08:05.800 --> 00:08:09.940
So to do that, we are going
to open our terminal.

143
00:08:09.970 --> 00:08:12.980
We're going to navigate to our project.

144
00:08:13.010 --> 00:08:17.940
For me, it's located in the
desktop and then iOS folder.

145
00:08:17.970 --> 00:08:19.860
Whoops, I misspelled something.

146
00:08:19.890 --> 00:08:22.300
I should have donation app here.
Great.

147
00:08:22.330 --> 00:08:24.700
I'm going to clear this terminal.

148
00:08:24.730 --> 00:08:28.580
So that what we're going to do is
going to be clearly visible to you.

149
00:08:28.600 --> 00:08:32.652
And then I'm just going to do fast lane init

150
00:08:32.852 --> 00:08:36.060
and this is going to start executing.

151
00:08:36.080 --> 00:08:36.500
Great.

152
00:08:36.530 --> 00:08:41.760
And we're going to say that we're going
to use this for test flight automation.

153
00:08:41.920 --> 00:08:44.300
Say that our choice is two and click

154
00:08:44.320 --> 00:08:49.980
on Enter and then some new files
are going to be generated for us.

155
00:08:50.010 --> 00:08:53.060
But before then,
let's enter our Apple username.

156
00:08:53.080 --> 00:08:56.860
Okay, this is my username.

157
00:08:56.890 --> 00:09:01.080
I'm being logged in and now some
dependencies are being installed for me.

158
00:09:01.110 --> 00:09:05.980
So just press Enter anytime it tells
you to continue by pressing Enter.

159
00:09:06.010 --> 00:09:07.940
And now our setup is done.

160
00:09:07.970 --> 00:09:11.140
If I go here, we're going to see that new

161
00:09:11.170 --> 00:09:15.700
folder has been created for me
with this fast lane setup.

162
00:09:15.730 --> 00:09:21.460
And then what we want to do is make
sure that we finish this up correctly.

163
00:09:21.490 --> 00:09:23.540
Now we need to set up code signing.

164
00:09:23.560 --> 00:09:28.460
And I don't want to go through this
documentation because it's actually much

165
00:09:28.490 --> 00:09:32.020
bigger headache than what I'm
going to suggest for you.

166
00:09:32.050 --> 00:09:34.620
So just follow me, please.

167
00:09:34.650 --> 00:09:38.540
We have already generated app id and since

168
00:09:38.560 --> 00:09:42.740
we have done that we're going to need
to set up our provisioning profiles.

169
00:09:42.770 --> 00:09:44.780
This is one of the things that this

170
00:09:44.810 --> 00:09:49.580
documentation also suggests,
but for that you're going to need GitHub.

171
00:09:49.610 --> 00:09:50.380
Okay?

172
00:09:50.410 --> 00:09:55.460
So in the previous video we already went
through how to create your GitHub profile.

173
00:09:55.490 --> 00:10:01.380
And now what I'm going to do is go to
my profile and then go to repositories.

174
00:10:01.410 --> 00:10:03.780
And here I'm going to create a new

175
00:10:03.810 --> 00:10:11.140
repository and I'm going to name
it DonationAppCertifications.

176
00:10:11.160 --> 00:10:11.700
Great.

177
00:10:11.730 --> 00:10:15.660
So I'm going to make this
private to do so as well.

178
00:10:15.690 --> 00:10:18.580
Sure, I can added a readme
file automatically.

179
00:10:18.610 --> 00:10:21.760
I'm going to create this repository.

180
00:10:21.840 --> 00:10:25.100
Okay, so now this is created and then we

181
00:10:25.130 --> 00:10:30.980
need to make sure that we have access
to our GitHub from our terminal.

182
00:10:31.000 --> 00:10:32.940
And to do that you're going to have to go

183
00:10:32.970 --> 00:10:38.500
to your settings and then click
on developer settings right here.

184
00:10:38.530 --> 00:10:44.980
And then go to your personal access tokens
and the tokens and generate a new token.

185
00:10:45.010 --> 00:10:48.940
And I have to enter
my authentication here.

186
00:10:48.970 --> 00:10:51.060
I'm going to do that right now.

187
00:10:51.080 --> 00:10:54.180
So let's give this donation application

188
00:10:54.200 --> 00:10:58.900
token and I'm going to set
expiration date to 90 days.

189
00:10:58.920 --> 00:11:00.860
Who knows what I'm going to need it for.

190
00:11:00.890 --> 00:11:05.300
And then I'm going to make sure that I
have access to all of my repository.

191
00:11:05.330 --> 00:11:08.540
And I'm going to set up
repository permissions here.

192
00:11:08.570 --> 00:11:12.740
And inside the repository permissions,
I'm going to give the highest access

193
00:11:12.770 --> 00:11:16.220
that I can give to myself
in all of the values.

194
00:11:16.250 --> 00:11:18.140
Please do so yourself as well.

195
00:11:18.170 --> 00:11:19.620
I'm quickly going to do this.

196
00:11:19.650 --> 00:11:25.100
Right now I have selected highest possible
access that I can have on everything.

197
00:11:25.130 --> 00:11:28.660
And then what I'm just going
to do is generate this token.

198
00:11:28.690 --> 00:11:32.740
And once this token is generated,
you're going to see it for one time only.

199
00:11:32.770 --> 00:11:34.660
So make sure to copy that.

200
00:11:34.690 --> 00:11:36.820
And once you copy that,

201
00:11:36.840 --> 00:11:39.460
we're going to have to change
up some things in our terminal.

202
00:11:39.490 --> 00:11:45.300
So let's go to our terminal and once you
have that token, let's try to

203
00:11:45.330 --> 00:11:50.940
clone our GitHub project and see
how we can verify ourselves.

204
00:11:50.970 --> 00:11:57.860
Okay, so let's go to our profile here
and then let's just clone this project.

205
00:11:57.890 --> 00:12:03.680
For example, so you would copy this
command here inside the clone and you just

206
00:12:03.710 --> 00:12:08.780
say clone and now it's going to ask you
for your username so just enter it.

207
00:12:08.810 --> 00:12:14.740
But for password, which is very important,
make sure that you enter the token that we

208
00:12:14.770 --> 00:12:19.580
just generated because otherwise if you
just enter your GitHub password,

209
00:12:19.610 --> 00:12:23.620
this was deprecated so you're
not going to be able to login.

210
00:12:23.650 --> 00:12:25.940
So I'm just copy paste it.

211
00:12:25.970 --> 00:12:30.340
My token is not visible and it's not
going to be visible to you either.

212
00:12:30.370 --> 00:12:35.740
So once you do copy and then paste,
just click enter and great.

213
00:12:35.770 --> 00:12:38.780
Now I was able to clone this project so

214
00:12:38.810 --> 00:12:43.680
now I'm authorized to use GitHub as I
please, which is great because we're going

215
00:12:43.710 --> 00:12:46.300
to be really needing it
for our fastlane setup.

216
00:12:46.330 --> 00:12:49.460
Right now we should start using Match

217
00:12:49.490 --> 00:12:53.140
by running the following command
inside the iOS folder still.

218
00:12:53.170 --> 00:12:59.380
And we're going to use
fastlane Match init for this.

219
00:12:59.410 --> 00:13:02.140
And here's where we need our GitHub.

220
00:13:02.170 --> 00:13:07.300
So we're going to need a storage
and for storage I wanted us to use Git.

221
00:13:07.330 --> 00:13:13.700
So now I'm going to select one and I'm
going to say enter and it's going to ask

222
00:13:13.730 --> 00:13:18.180
me for the URL of GitHub repository
where this should upload the file.

223
00:13:18.210 --> 00:13:20.820
And if we didn't give a permission

224
00:13:20.850 --> 00:13:25.100
and a token to our terminal to access
our GitHub account, this throw an error.

225
00:13:25.130 --> 00:13:26.500
So that's why we needed it.

226
00:13:26.530 --> 00:13:33.780
Go to our profile and then go to the
certifications that we just created.

227
00:13:33.810 --> 00:13:36.060
And I'm going to copy the URL of this

228
00:13:36.080 --> 00:13:41.060
and paste it here and then
click enter and great.

229
00:13:41.080 --> 00:13:43.500
So the Match file was created.

230
00:13:43.530 --> 00:13:47.980
Right now this is a new file that was
created and it has access to our donation

231
00:13:48.010 --> 00:13:51.140
app certifications which is
exactly what we needed.

232
00:13:51.170 --> 00:13:53.740
We can start generating new certificates

233
00:13:53.770 --> 00:13:57.540
and profiles using Match in order
to deploy our applications.

234
00:13:57.570 --> 00:14:01.860
To test flight, we're going to need
iOS distribution certificate.

235
00:14:01.890 --> 00:14:04.900
So to create one, just run this command.

236
00:14:04.920 --> 00:14:06.820
I'm going to clear the terminal and I'm

237
00:14:06.850 --> 00:14:13.300
going to run Bundle
Fastlane Match App Store.

238
00:14:13.330 --> 00:14:17.100
You can actually run this without
Bundle exec in front as well.

239
00:14:17.130 --> 00:14:20.100
So now we're going to need
test phrase for Match storage.

240
00:14:20.120 --> 00:14:21.780
This can be anything that you want.

241
00:14:21.810 --> 00:14:28.140
I'm going to enter what I want it to be
and I'm going to repeat this here.

242
00:14:28.170 --> 00:14:28.940
And great.

243
00:14:28.970 --> 00:14:35.860
This was successfully created and now the
profiles are generated for me.

244
00:14:35.890 --> 00:14:37.940
The provisioning files are installed.

245
00:14:37.970 --> 00:14:43.260
Let's see, this has just been updated
and new Master Branch has been created.

246
00:14:43.290 --> 00:14:45.640
So if we go into Master Branch we're going

247
00:14:45.670 --> 00:14:50.780
to see all of the distribution
and App Store credentials created for us.

248
00:14:50.810 --> 00:14:56.300
So now that we have this created,
what we need to do is make sure that we

249
00:14:56.330 --> 00:14:59.620
include our provisioning
files in the Fast file.

250
00:14:59.650 --> 00:15:04.260
So let's just go here and say that we need

251
00:15:04.290 --> 00:15:11.940
sync code signing to the app store

252
00:15:11.970 --> 00:15:14.500
credentials that we just created.

253
00:15:14.530 --> 00:15:19.040
So type appstore.

254
00:15:19.120 --> 00:15:21.840
Great, now let's save this and we have

255
00:15:21.870 --> 00:15:29.740
this set up and then there are new
rules to the applications as well.

256
00:15:29.770 --> 00:15:33.020
So we're going to need to do some
kind of other setups as well.

257
00:15:33.050 --> 00:15:40.120
Inside the Fast Lane folder, just create
a new file and call it .env.default.

258
00:15:40.680 --> 00:15:46.700
And once you do that, we're going
to create some configurations here.

259
00:15:46.720 --> 00:15:48.820
First of all, the configuration that we're

260
00:15:48.850 --> 00:15:52.740
going to need is going
to be Fastlane user.

261
00:15:52.770 --> 00:15:55.100
So here, just enter your apple ID.

262
00:15:55.130 --> 00:15:58.480
This is my Apple ID

263
00:15:58.520 --> 00:16:00.940
and the you're going to need Fast Lane

264
00:16:00.970 --> 00:16:09.660
Apple application specific password.

265
00:16:09.690 --> 00:16:12.520
And to get this password you're going

266
00:16:12.550 --> 00:16:19.820
to have to go to appleid.apple.com
sign in using your Apple ID.

267
00:16:19.850 --> 00:16:21.900
I'm going to do the same.
Great.

268
00:16:21.920 --> 00:16:24.140
And now we're going to generate
app specific password.

269
00:16:24.170 --> 00:16:28.300
So let's just click on this
and donate is the application.

270
00:16:28.320 --> 00:16:31.380
Here.
You're just going to enter your Apple ID's

271
00:16:31.410 --> 00:16:36.660
password and then you're given
app specific password that you can use.

272
00:16:36.690 --> 00:16:40.900
So just copy and paste it here.
Great.

273
00:16:40.920 --> 00:16:43.220
Once you do that, you don't
need this file anymore.

274
00:16:43.250 --> 00:16:47.300
Everything's set up for you and the we're
going to make sure that we can log

275
00:16:47.330 --> 00:16:52.020
into our fast lane, fast lane

276
00:16:52.050 --> 00:16:59.200
spaceuth -u and then your Apple ID here.

277
00:17:00.000 --> 00:17:04.250
This will generate a cookie and then
just say yes and you're done.

278
00:17:04.280 --> 00:17:07.290
We should make sure that we
have one more setting set.

279
00:17:07.320 --> 00:17:09.900
Because of this particular project setup,

280
00:17:09.930 --> 00:17:13.810
we're going to need to update
our info plist file.

281
00:17:13.840 --> 00:17:18.250
So that should be inside iOS folder here,
inside the donation app.

282
00:17:18.280 --> 00:17:20.500
Locate your info pill list file here.

283
00:17:20.530 --> 00:17:23.180
And we're going to have
to add one more key here.

284
00:17:23.210 --> 00:17:25.980
And I will tell you what that key is.

285
00:17:26.010 --> 00:17:33.140
It should be NS camera usage description.

286
00:17:33.170 --> 00:17:39.330
And here we're going to give it a string
value and we're going to explain why we

287
00:17:39.360 --> 00:17:42.090
are using camera
permissions from the user.

288
00:17:42.120 --> 00:17:45.810
The thing is that one of the packages
that we have installed comes

289
00:17:45.840 --> 00:17:50.530
with the camera usage,
even though we're not really using it.

290
00:17:50.560 --> 00:17:57.700
So we're just going to say to the user
that we don't need access to camera.

291
00:17:57.730 --> 00:18:03.140
So I'm going to clear the terminal again
and let's do fast lane beta.

292
00:18:03.170 --> 00:18:04.770
So I just got an error.

293
00:18:04.800 --> 00:18:06.660
Let's see what error I got.

294
00:18:06.690 --> 00:18:12.250
So it requires a provisioning
profile with push notifications.

295
00:18:12.280 --> 00:18:19.700
So let's go to our Xcode donation
app and then signing capabilities.

296
00:18:19.730 --> 00:18:22.010
And here inside the provisioning profile,

297
00:18:22.040 --> 00:18:30.900
just select your Match App Store donation
app and then try to rerun this again.

298
00:18:30.930 --> 00:18:32.140
I'm going to close this,

299
00:18:32.170 --> 00:18:36.140
going to clear my terminal and I'm
going to type fast lane beta.

300
00:18:36.170 --> 00:18:38.320
Right, so now our application is

301
00:18:38.350 --> 00:18:43.050
in the running state,
which is in some terms a success because

302
00:18:43.080 --> 00:18:48.500
it is preparing a build that could
be uploaded to Test Flight.

303
00:18:48.530 --> 00:18:53.420
And after this we're going to see
a Metro bundler open up, hopefully.

304
00:18:53.450 --> 00:18:57.290
And our application is still going
to be in the building process.

305
00:18:57.320 --> 00:19:02.010
And once that's done,
Test Flight should start asking us for our

306
00:19:02.040 --> 00:19:07.080
credentials so that we can
upload our application here.

307
00:19:07.320 --> 00:19:09.940
Great.
So now the Metro bundler opened up,

308
00:19:09.970 --> 00:19:14.330
which means that our application
is still being bundled up.

309
00:19:14.360 --> 00:19:15.810
After this step

310
00:19:15.840 --> 00:19:19.740
it might still take a bit to upload our

311
00:19:19.770 --> 00:19:25.090
application to testflight,
but this is already a very good sign.

312
00:19:25.120 --> 00:19:28.660
So just hold on and be patient.

313
00:19:28.690 --> 00:19:31.330
Here it says that we're uploading

314
00:19:31.360 --> 00:19:36.380
the updated app to the App Store Connect,
which is this screen displayed here.

315
00:19:36.400 --> 00:19:37.770
And it might take a few minutes.

316
00:19:37.800 --> 00:19:38.980
Don't interrupt the script.

317
00:19:39.010 --> 00:19:40.740
So don't interrupt.

318
00:19:40.770 --> 00:19:42.380
Wait for it.
Great.

319
00:19:42.400 --> 00:19:44.050
So we see this message appear here.

320
00:19:44.080 --> 00:19:47.570
Now it says waiting for the build
to show up in the build list.

321
00:19:47.600 --> 00:19:50.050
This may take a few minutes and if this

322
00:19:50.080 --> 00:19:53.290
persists check your email
for processing issues.

323
00:19:53.320 --> 00:19:56.980
Now you're going to see this
message appear from time to time.

324
00:19:57.010 --> 00:19:58.900
I think it's every 30 seconds or it's

325
00:19:58.930 --> 00:20:01.770
every 1 minute,
I don't remember it exactly,

326
00:20:01.800 --> 00:20:07.460
but yes, please go to the email that you
have set up for your Apple ID and wait

327
00:20:07.490 --> 00:20:13.810
for the confirmation or any issues
that come up with your upload.

328
00:20:13.840 --> 00:20:16.140
And meanwhile, you can actually reload

329
00:20:16.170 --> 00:20:22.980
this page and you are going to see
build number three processing.

330
00:20:23.010 --> 00:20:25.010
This is because I tried multiple times

331
00:20:25.040 --> 00:20:30.180
to upload this build and the build
number increments itself.

332
00:20:30.210 --> 00:20:32.220
So this is my third try to upload

333
00:20:32.250 --> 00:20:36.530
the build and we're going to see
whether it processes or not.

334
00:20:36.560 --> 00:20:41.620
If it processes and it goes through
successfully, the we are going to see

335
00:20:41.650 --> 00:20:46.500
the app icon appear here and we're going
to be able to share this build with people

336
00:20:46.530 --> 00:20:49.980
that are using Test Flight so
that they can try out our app.

337
00:20:50.010 --> 00:20:52.500
Otherwise we're going to receive an email

338
00:20:52.530 --> 00:20:57.290
regarding the issues that we got
and we're going to try to resolve that.

339
00:20:57.320 --> 00:21:00.770
And this is a normal process
and Apple is very picky

340
00:21:00.800 --> 00:21:04.050
with what you upload,
they can look into your app with their

341
00:21:04.080 --> 00:21:10.330
automated system and determine any
updates that they need from you for this

342
00:21:10.360 --> 00:21:16.860
application to be acceptable
for Apple's App Store.

343
00:21:16.880 --> 00:21:20.770
Great.
So right now we didn't receive any email

344
00:21:20.800 --> 00:21:25.290
and the processing of the new
build is being finished up.

345
00:21:25.320 --> 00:21:26.740
This is great.

346
00:21:26.770 --> 00:21:31.290
I'm so happy that we are going
through this process so well.

347
00:21:31.320 --> 00:21:36.740
Here we see our app icon
update already as you see.

348
00:21:36.770 --> 00:21:39.250
So let's wait for this to complete.
Great.

349
00:21:39.280 --> 00:21:43.420
So our application has just been uploaded,

350
00:21:43.450 --> 00:21:46.500
so fastlane tools just
saved you 27 minutes.

351
00:21:46.530 --> 00:21:50.810
So we spent 27 minutes
uploading this automatically.

352
00:21:50.840 --> 00:21:55.290
Subsequent ones might be quicker and 27

353
00:21:55.320 --> 00:21:59.620
minutes might not seem as
big of a time saved to you.

354
00:21:59.650 --> 00:22:04.400
However, this is a deployment process
that can be done automatically and this is

355
00:22:04.430 --> 00:22:07.020
something that many
companies use out there.

356
00:22:07.050 --> 00:22:09.500
It's better than generating builds yourself

357
00:22:09.530 --> 00:22:13.740
and having to manually upload it
because it's just less human errors.

358
00:22:13.770 --> 00:22:15.090
So this is great.

359
00:22:15.120 --> 00:22:18.020
We have just uploaded our
application to Test Flight.

360
00:22:18.050 --> 00:22:24.020
If we refresh this, we're going to see
that the build has been processed.

361
00:22:24.050 --> 00:22:28.020
It can even be submitted
to the Apple Store to be reviewed

362
00:22:28.050 --> 00:22:32.570
and public, but before then you might
have to enter a lot of information.

363
00:22:32.600 --> 00:22:36.220
We're not going to be releasing this
application to public,

364
00:22:36.250 --> 00:22:42.330
but in the next video I am going to show
you how to share this with some of your

365
00:22:42.360 --> 00:22:45.500
friends and how to create
an internal testing group.

366
00:22:45.530 --> 00:22:47.700
But that's all for today's video.

367
00:22:47.730 --> 00:22:49.860
Reach out if you have any issues.

368
00:22:49.890 --> 00:22:52.780
I am definitely going to try to help you.

369
00:22:52.800 --> 00:22:55.560
And thanks so much for watching
and I hope you have a great day.

