0
1
00:00:00,300 --> 00:00:00,690
All right.
1

2
00:00:00,690 --> 00:00:06,780
So once you've created your very own version of the skeleton project or you've checked out the skeleton
2

3
00:00:06,780 --> 00:00:12,960
project that I created, then we're ready to get our in-app purchases set up with Apple. So we don't need
3

4
00:00:12,990 --> 00:00:14,100
Xcode for this step,
4

5
00:00:14,100 --> 00:00:19,530
so I'm just going to switch it to the background and I'm going to go over to my browser, and we're going
5

6
00:00:19,530 --> 00:00:25,530
to head over to developer.apple.com/account in order to log in to the developer
6

7
00:00:25,530 --> 00:00:26,280
portal.
7

8
00:00:26,310 --> 00:00:32,700
Now, once you have logged in, this is the page that you should see. And here we're going to go over to
8

9
00:00:32,700 --> 00:00:38,580
Certificates, IDs & Profiles, and you're going to go into Identifiers and click on App IDs.
9

10
00:00:38,580 --> 00:00:44,310
Now, this is a table that lists all of your app IDs and you can just go ahead and click the plus button
10

11
00:00:44,400 --> 00:00:46,430
to add a new one.
11

12
00:00:46,440 --> 00:00:52,980
So, now it takes you through the process of registering a brand-new app ID and this will register your
12

13
00:00:52,980 --> 00:00:55,250
app on Apple's central database.
13

14
00:00:55,290 --> 00:01:01,980
So the name of our app is going to be called in InspoQuotes, and then we're going to make sure that
14

15
00:01:02,040 --> 00:01:04,520
Explicit App ID is set here,
15

16
00:01:04,650 --> 00:01:06,910
and then we're going to set our Bundle ID.
16

17
00:01:07,110 --> 00:01:13,700
Now, if you have a look back over to Xcode, you can see that this is the same as our Bundle iIdentifier
17

18
00:01:13,830 --> 00:01:18,270
in the InspoQuotes, General tab in Identity section.
18

19
00:01:18,420 --> 00:01:21,800
So I'm just simply going to copy this over to here.
19

20
00:01:22,080 --> 00:01:29,070
Now, remember, Bundle IDs have to be unique on Apple's databases, so you won't be able to use this exact
20

21
00:01:29,100 --> 00:01:30,060
Bundle ID.
21

22
00:01:30,090 --> 00:01:33,120
So I recommend using a reverse domain name.
22

23
00:01:33,180 --> 00:01:39,490
So if your domain is www.londonappbrewery.com, then com.londonappbrewery.
23

24
00:01:39,510 --> 00:01:44,790
Now, if you don't have a company that has a website, then you can just do com.yourfullname,
24

25
00:01:44,790 --> 00:01:49,680
so whatever it may be making sure that you try to keep it as long as possible because, remember, it has
25

26
00:01:49,680 --> 00:01:54,020
to be unique, and then putting in the name of the app at the end.
26

27
00:01:54,030 --> 00:01:58,940
Now, it's really important that this matches exactly with what you've got here.
27

28
00:01:59,070 --> 00:02:04,410
So if it's easier, change it here, and then simply just copy and paste it into here because all of the
28

29
00:02:04,410 --> 00:02:06,140
capitalizations matter
29

30
00:02:06,180 --> 00:02:08,010
a huge deal.
30

31
00:02:08,370 --> 00:02:08,720
Okay.
31

32
00:02:08,730 --> 00:02:16,320
So next thing is to scroll down to the App Services section and you can see that the Game Center and
32

33
00:02:16,350 --> 00:02:19,740
In-App Purchase's services are ticked by default.
33

34
00:02:19,740 --> 00:02:22,890
Basically, whenever you create a new app ID, 
34

35
00:02:23,010 --> 00:02:28,690
they will automatically include these two capabilities to your app. So we don't even have to do anything
35

36
00:02:28,800 --> 00:02:31,000
and we just have to click Continue.
36

37
00:02:31,090 --> 00:02:36,610
And now all you have to do is click Register and then click Done.
37

38
00:02:36,630 --> 00:02:42,660
Now, don't worry if these green lights aren't switched on when you're clicking on Register and Done, they
38

39
00:02:42,660 --> 00:02:48,210
take a little while to come on and you can view it at a later date and you'll see it switch on after
39

40
00:02:48,210 --> 00:02:49,310
you've clicked Done.
40

41
00:02:49,470 --> 00:02:53,520
So this information is going to propagate through Apple's servers and databases.
41

42
00:02:53,520 --> 00:02:54,850
So while it does that,
42

43
00:02:54,850 --> 00:02:59,960
let's do a couple of checks to make sure that we have a smooth ride as possible.
43

44
00:02:59,970 --> 00:03:04,970
Now, first of all if you've published any apps onto the App Store, then you'll know all about App Store
44

45
00:03:05,060 --> 00:03:05,700
Connect.
45

46
00:03:05,760 --> 00:03:10,850
This is the place where you put in all of the details for your app and push it onto the App Store.
46

47
00:03:11,070 --> 00:03:17,070
Now, if you never publish an app and this is the first time then I'll take you through it step by step.
47

48
00:03:17,070 --> 00:03:23,130
So first things first, head over to appstoreconnect.apple.com, and then go ahead and just log in.
48

49
00:03:23,310 --> 00:03:23,680
Now,
49

50
00:03:23,730 --> 00:03:25,980
once you're in, this is what you should see.
50

51
00:03:25,990 --> 00:03:32,640
There's a whole bunch of icons. And most importantly, at this stage, we want to make sure that up at the
51

52
00:03:32,640 --> 00:03:33,620
top here,
52

53
00:03:33,780 --> 00:03:36,750
you don't see any red text.
53

54
00:03:36,810 --> 00:03:42,310
So, usually, if there's something that you need to sign or you need to check, all you need to read
54

55
00:03:42,360 --> 00:03:49,200
Apple will routinely on a weekly basis that seems update that contract and legals and a whole bunch
55

56
00:03:49,200 --> 00:03:54,240
of things. And you just need to make sure that you've made all of those go away by signing the things
56

57
00:03:54,240 --> 00:03:55,120
that you need to sign,
57

58
00:03:55,140 --> 00:03:56,390
okaying the things you need to
58

59
00:03:56,390 --> 00:03:56,920
okay,.
59

60
00:03:57,090 --> 00:03:58,950
and checking the things that they want you to read.
60

61
00:03:59,070 --> 00:04:04,110
So, another good place to check while you're here is to head over to Agreements, Tax, and Banking.
61

62
00:04:04,110 --> 00:04:05,550
So this icon over here.
62

63
00:04:05,770 --> 00:04:11,310
Now, if you haven't set up your Agreements, Tax, and Banking, then it might say something like
63

64
00:04:11,310 --> 00:04:17,850
request contracts, and you'll have to click the request button, and fill out all of the information and
64

65
00:04:17,850 --> 00:04:23,790
submit it. And it might take some time for the agreements to be processed by Apple.
65

66
00:04:23,790 --> 00:04:31,650
So even after you submit it during the time before it gets approved, you won't be able to test your in-app
66

67
00:04:31,650 --> 00:04:32,880
purchase products.
67

68
00:04:32,880 --> 00:04:38,040
So if you see any buttons under the Agreement, Types, and Banking that says request, make sure you fit
68

69
00:04:38,040 --> 00:04:39,890
it all out and submit it.
69

70
00:04:40,080 --> 00:04:48,120
And at the point when you see paid applications as a contract type under the contract in effect, then
70

71
00:04:48,120 --> 00:04:49,730
you are good to go.
71

72
00:04:49,890 --> 00:04:55,860
And that is when you've made sure that all your Agreements, Tax, and Banking is all in tip-top condition
72

73
00:04:55,980 --> 00:04:58,880
with Apple. And you can go ahead and click Done.
73

74
00:04:58,890 --> 00:05:05,940
Now, the final thing to make sure is that when you head over to developer.apple.com, make sure
74

75
00:05:05,970 --> 00:05:12,240
that they haven't got any pop-ups for you that says, "Accept the latest Apple development program license
75

76
00:05:12,240 --> 00:05:13,140
agreements."
76

77
00:05:13,140 --> 00:05:18,690
But if you do have any agreements that you need to sign or read on developer.apple.com, it will
77

78
00:05:18,690 --> 00:05:22,030
usually also show up at the top of App Store Connect.
78

79
00:05:22,080 --> 00:05:28,380
So making sure that you don't have any red boxes over here is a pretty sure fire way of knowing that
79

80
00:05:28,380 --> 00:05:33,310
you are good in the eyes of Apple which, obviously, is very, very important
80

81
00:05:33,360 --> 00:05:40,320
if we want to make in-app purchases work. So, now that we've delivered and dallied around here, hopefully,
81

82
00:05:40,350 --> 00:05:46,200
all of our information when we registered our app ID has now been propagated through Apple services
82

83
00:05:46,380 --> 00:05:49,400
and we are ready to create a brand-new app.
83

84
00:05:49,530 --> 00:05:51,480
So, again, inside App Store connect,
84

85
00:05:51,480 --> 00:05:58,320
go ahead and click on my apps. And once you're here, just go ahead and click the plus button to create
85

86
00:05:58,410 --> 00:05:59,710
a new app.
86

87
00:05:59,720 --> 00:06:04,530
Now, we're going to fill out this form to create our brand-new app. And don't worry nothing's going to be
87

88
00:06:04,530 --> 00:06:09,570
released or put onto the app store without you being able to okay it.
88

89
00:06:09,570 --> 00:06:12,810
So just go ahead and select iOS for your platform.
89

90
00:06:12,810 --> 00:06:16,630
Now, the name of the app for me is going to be InspoQuotes.
90

91
00:06:16,650 --> 00:06:23,880
Now, you won't be able to have the same name that I've got because they have to be unique across the
91

92
00:06:23,880 --> 00:06:24,530
App Store.
92

93
00:06:24,690 --> 00:06:31,860
So if you want to call it something around InspoQuotes, just add your initials or add, you know, your birthday,
93

94
00:06:31,890 --> 00:06:36,750
or a special number, or something, until this form actually lets you submit.
94

95
00:06:36,750 --> 00:06:43,700
Next thing is to choose your primary language, which is going to be English, and then we're going to leave
95

96
00:06:43,710 --> 00:06:45,480
Bundle ID until the last.
96

97
00:06:45,480 --> 00:06:50,960
The next thing is the SKU, which stands for stock-keeping unit.
97

98
00:06:50,970 --> 00:06:57,110
So this is a unique ID that you give to your apps so that you can identify it amongst your App Catalog.
98

99
00:06:57,330 --> 00:07:03,810
Now, in our case, we tend to prefix it with LAB, LONDON APP BREWERY, and then we'll just list the app number that
99

100
00:07:03,810 --> 00:07:06,110
it is. This last one, Limit User Access,
100

101
00:07:06,150 --> 00:07:07,700
we're going to keep it blank.
101

102
00:07:07,740 --> 00:07:12,970
And finally, we're ready to go ahead and click the dropdown list for our Bundle ID.
102

103
00:07:13,030 --> 00:07:19,440
Now, as I said before, it takes a little bit of time for the data that you entered previously when you
103

104
00:07:19,440 --> 00:07:23,820
created a new app ID to propagate through Apple service.
104

105
00:07:23,820 --> 00:07:31,050
So if you don't see that Bundle ID show up here, then just wait a little bit. Get a cup of tea, eat some
105

106
00:07:31,050 --> 00:07:31,750
biscuits.
106

107
00:07:31,770 --> 00:07:36,670
I really like ginger biscuits, but you can eat, obviously, any biscuits you want.
107

108
00:07:37,020 --> 00:07:39,140
I don't know why I felt the need to tell you this.
108

109
00:07:39,240 --> 00:07:44,850
Once you come back after a little while, then you should be able to see the bundle identifier that you
109

110
00:07:44,940 --> 00:07:51,570
inputted previously, which in my case, was com.londonappbrewery/InspoQuotes. And in the front, you've
110

111
00:07:51,570 --> 00:07:59,970
got the name of the app. So select that to the Bundle ID and we're ready to create our brand-new app.
111

112
00:07:59,970 --> 00:08:05,340
So, now you get on to the app information and your listing details page,
112

113
00:08:05,370 --> 00:08:11,400
and this is where when you publish your app, you're going to add your title, subtitle, your information
113

114
00:08:11,400 --> 00:08:17,620
like which categories should it go in, or what should be the price of the app that you're going to set.
114

115
00:08:17,640 --> 00:08:20,400
And also uploading your Xcode project to it.
115

116
00:08:20,490 --> 00:08:24,320
But for now, we're just interested in testing in-app purchases.
116

117
00:08:24,480 --> 00:08:30,540
So you're going to head over to the Features tab over here and you're going to be inside In-App Purchases
117

118
00:08:30,810 --> 00:08:35,310
and we're going to click on the plus sign to create a new in-app purchase.
118

119
00:08:36,800 --> 00:08:40,580
Now, you can see here that there's several options that you have.
119

120
00:08:40,730 --> 00:08:44,660
And Apple gives you really good examples of when you would use each.
120

121
00:08:44,690 --> 00:08:47,120
So the four types are Consumable,
121

122
00:08:47,120 --> 00:08:53,540
so an in-app purchase that gets used ones, and after which, it gets depleted and you have to purchase
122

123
00:08:53,540 --> 00:08:54,340
it again.
123

124
00:08:54,350 --> 00:09:00,950
So, for example, if you had a fishing app and you had fish food that you need to lure the fish, then this
124

125
00:09:01,040 --> 00:09:04,270
will be consumed every time they use it.
125

126
00:09:04,280 --> 00:09:11,270
Commonly, this is used inside games when you need extra in-game currency, coins, energy, or whatever
126

127
00:09:11,270 --> 00:09:12,420
that may be.
127

128
00:09:12,440 --> 00:09:14,350
Now, the next one is Non-Consumable.
128

129
00:09:14,360 --> 00:09:19,190
So this is something that gets purchased once and does not expire or decrease with use.
129

130
00:09:19,190 --> 00:09:26,270
So for example, this would be, say, if you had a app that had ads and you charged the user .99 cents to
130

131
00:09:26,270 --> 00:09:31,910
get rid of the ads, this would be a non-consumable in-app purchase because once they've got rid of the 
131

132
00:09:31,910 --> 00:09:34,980
ads, you shouldn't ask them to buy it again
132

133
00:09:35,000 --> 00:09:36,080
to get rid of the ads, right?
133

134
00:09:36,080 --> 00:09:38,090
That would be really, really bad.
134

135
00:09:38,090 --> 00:09:44,920
So the third one is a Auto-Renewable Subscription. And this, for example, could be Spotify, right?
135

136
00:09:44,930 --> 00:09:52,670
If they were charging it through the in-app purchases, then they could charge you $10 a month to continue
136

137
00:09:52,730 --> 00:09:54,730
to get access to their music catalog,
137

138
00:09:54,860 --> 00:09:59,360
and this would auto-renew every month or every week or whatever it is that you set.
138

139
00:09:59,630 --> 00:10:06,010
And the final one is something that very few people use which is a Non-Renewing Subscription.
139

140
00:10:06,020 --> 00:10:11,530
So this, for example, gives you a one year subscription where you're charged every single month.
140

141
00:10:11,630 --> 00:10:14,770
But after that, it doesn't renew automatically.
141

142
00:10:14,780 --> 00:10:20,360
So in our case, we're going to choose a Non-Consumable in-app purchase because we want to be able to
142

143
00:10:20,360 --> 00:10:26,810
give users access to the premium quotes that's locked behind the paywall and they only have to pay
143

144
00:10:26,810 --> 00:10:28,100
once
144

145
00:10:28,370 --> 00:10:31,680
in order to get access to the rest of the content of the app.
145

146
00:10:31,790 --> 00:10:36,920
So this is one of the most frequently used in-app purchase types, and we're going to go ahead and click
146

147
00:10:37,070 --> 00:10:37,780
Create.
147

148
00:10:37,790 --> 00:10:42,670
So, now we have to enter a little bit of information for our brand-new in-app purchase.
148

149
00:10:42,680 --> 00:10:49,580
Now, the first thing is a Reference Name and this is just a name for you to be able to identify it on
149

150
00:10:49,700 --> 00:10:51,250
App Store Connect.
150

151
00:10:51,260 --> 00:10:58,280
It doesn't appear anywhere in the app. And in our case, we're just going to call it Premium Quotes just
151

152
00:10:58,280 --> 00:10:59,790
to make it really clear.
152

153
00:10:59,870 --> 00:11:09,620
Now, the Product ID is really, really essential. The product ID is going to be your Bundle ID, so whatever
153

154
00:11:09,620 --> 00:11:17,930
you had in here that you also gave to your app. And then at the end, I usually just tack a dot, and then
154

155
00:11:17,930 --> 00:11:19,990
the name of my in-app purchase.
155

156
00:11:19,990 --> 00:11:28,060
So in this case, it will be PremiumQuotes without a space in between. Now, you can capitalize it or not capitalize
156

157
00:11:28,060 --> 00:11:29,340
it any way you wish,
157

158
00:11:29,470 --> 00:11:36,640
but make sure that you copy and save this string somewhere because we're going to be using it in order
158

159
00:11:36,640 --> 00:11:40,320
to test and implement our in-app purchase
159

160
00:11:40,330 --> 00:11:46,030
a little bit later on because we're going to say inside our app that we're going to point towards this
160

161
00:11:46,030 --> 00:11:51,480
Product ID, and that is the one that we're going to try and get the user to purchase.
161

162
00:11:51,730 --> 00:11:56,910
And once it's been purchased successfully, then we show them the premium quotes.
162

163
00:11:56,950 --> 00:11:57,220
All right.
163

164
00:11:57,220 --> 00:11:59,610
So next is pricing.
164

165
00:11:59,620 --> 00:12:05,950
So you have to choose a pricing tier and it goes all the way up to a thousand dollars or a thousand pounds.
165

166
00:12:05,950 --> 00:12:11,980
But in this case, we're just  going to choose tier 1 which is .99 cents or 99p, as currently, I'm registered
166

167
00:12:12,040 --> 00:12:13,620
in the U.K. App Store.
167

168
00:12:13,630 --> 00:12:17,180
Now, the next part if you scroll down is the Localizations
168

169
00:12:17,230 --> 00:12:23,950
and this is the name that the user will see when they view the in-app purchases of your app on the App
169

170
00:12:23,950 --> 00:12:24,600
Store.
170

171
00:12:24,760 --> 00:12:27,700
So you want to give it a name that makes sense to them.
171

172
00:12:27,700 --> 00:12:34,790
So if you want, you can also use Premium Quotes because that kind of makes sense for us. And for the description,
172

173
00:12:34,810 --> 00:12:39,160
I'm also going to just write premium quotes because it saves a little bit of time.
173

174
00:12:39,190 --> 00:12:44,200
Now, when you're actually doing this for your actual app, then you might want to put a little bit of thought
174

175
00:12:44,320 --> 00:12:49,070
to what you want to tell the user about this in app purchase,
175

176
00:12:49,090 --> 00:12:51,960
you know, maybe give them a little bit of sales pitch.
176

177
00:12:51,970 --> 00:12:54,040
Now, if you want to add other localization,
177

178
00:12:54,040 --> 00:13:00,090
so, for example, users on the Chinese app store, what they should see because, say, if they can't understand
178

179
00:13:00,100 --> 00:13:03,320
English very well, then they'll be confused about the in-app purchases,
179

180
00:13:03,340 --> 00:13:07,000
then you can add as many localizations as you wish.
180

181
00:13:07,000 --> 00:13:13,090
So, for our purposes, we're just going to have the one, yours might say English US if your native store is
181

182
00:13:13,180 --> 00:13:13,980
the US,
182

183
00:13:14,140 --> 00:13:20,920
mine says UK. It doesn't really matter as long as you provide the name and description of a single localization
183

184
00:13:21,070 --> 00:13:21,940
as a default.
184

185
00:13:21,950 --> 00:13:27,420
Now, this is where you can put an image for your in-app purchase, again, a little bit later on. But it's optional,
185

186
00:13:27,430 --> 00:13:29,050
so we're going to skip it.
186

187
00:13:29,050 --> 00:13:36,680
And finally, this is the last part which requires a screen shot of your in-app purchase in action.
187

188
00:13:36,850 --> 00:13:43,510
Now, we haven't implemented it, so we're just going to skip it and click Save. Now, because we've entered
188

189
00:13:43,690 --> 00:13:47,300
and filled out all of the fields that need to be filled in,
189

190
00:13:47,410 --> 00:13:52,830
then it'll allows to do this, but it'll give you this little warning saying, "Missing Metadata,"
190

191
00:13:53,020 --> 00:13:59,380
and that refers to this section here, so that when you're ready to submit your app to publish, you should
191

192
00:13:59,410 --> 00:14:06,220
add a screenshot of your in-app purchase being triggered in your app. And I'm going to show you what
192

193
00:14:06,220 --> 00:14:08,470
that will look like just a little bit later on.
193

194
00:14:08,560 --> 00:14:14,590
But as far as we're concerned, we're completely ready to get going and start writing some code and testing
194

195
00:14:14,740 --> 00:14:15,660
our app.
195

196
00:14:15,670 --> 00:14:20,340
So in the next lesson, we're going to get started creating our InspoQuotes app.
196

197
00:14:20,350 --> 00:14:24,090
And once you're done over here, I'll see you on the next lesson.
