Skip to content

Commit 57c0843

Browse files
committed
Added template and modified ReadMe files for Personal File Store.
Updated frameworks and ReadMe according to Google iOS SDK 1.5. Minor improvements to HighScore and MessageBoard Apps.
1 parent d14d119 commit 57c0843

File tree

9 files changed

+382
-25
lines changed

9 files changed

+382
-25
lines changed

DynamoDB_WIF_UserPreference/UserPreference.xcodeproj/project.pbxproj

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@
3131
CE79A1E414AA54B700268707 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE79A1E314AA54B700268707 /* Security.framework */; };
3232
CE79A1F214AA83F200268707 /* DynamoDBManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79A1F114AA83F200268707 /* DynamoDBManager.m */; };
3333
CE877441160CEB9600120174 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = CE877440160CEB9600120174 /* Default-568h@2x.png */; };
34+
FCB293DD18BD5FEF00662D35 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293DC18BD5FEF00662D35 /* AddressBook.framework */; };
35+
FCB293DF18BD5FF400662D35 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293DE18BD5FF400662D35 /* AssetsLibrary.framework */; };
36+
FCB293E118BD600100662D35 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293E018BD600100662D35 /* CoreLocation.framework */; };
37+
FCB293E318BD600B00662D35 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293E218BD600B00662D35 /* CoreMotion.framework */; };
38+
FCB293E518BD601300662D35 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293E418BD601300662D35 /* CoreText.framework */; };
39+
FCB293E718BD601900662D35 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293E618BD601900662D35 /* MediaPlayer.framework */; };
3440
/* End PBXBuildFile section */
3541

3642
/* Begin PBXFileReference section */
@@ -71,13 +77,25 @@
7177
CE79A1F014AA83F200268707 /* DynamoDBManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamoDBManager.h; sourceTree = "<group>"; };
7278
CE79A1F114AA83F200268707 /* DynamoDBManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DynamoDBManager.m; sourceTree = "<group>"; };
7379
CE877440160CEB9600120174 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
80+
FCB293DC18BD5FEF00662D35 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
81+
FCB293DE18BD5FF400662D35 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
82+
FCB293E018BD600100662D35 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
83+
FCB293E218BD600B00662D35 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
84+
FCB293E418BD601300662D35 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
85+
FCB293E618BD601900662D35 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
7486
/* End PBXFileReference section */
7587

7688
/* Begin PBXFrameworksBuildPhase section */
7789
CE2617D114A5476800258242 /* Frameworks */ = {
7890
isa = PBXFrameworksBuildPhase;
7991
buildActionMask = 2147483647;
8092
files = (
93+
FCB293E718BD601900662D35 /* MediaPlayer.framework in Frameworks */,
94+
FCB293E518BD601300662D35 /* CoreText.framework in Frameworks */,
95+
FCB293E318BD600B00662D35 /* CoreMotion.framework in Frameworks */,
96+
FCB293E118BD600100662D35 /* CoreLocation.framework in Frameworks */,
97+
FCB293DF18BD5FF400662D35 /* AssetsLibrary.framework in Frameworks */,
98+
FCB293DD18BD5FEF00662D35 /* AddressBook.framework in Frameworks */,
8199
36370CB5176A3EAC00757FE2 /* libsqlite3.dylib in Frameworks */,
82100
36370CAB176A3A1300757FE2 /* Social.framework in Frameworks */,
83101
36370CA9176A3A0600757FE2 /* AdSupport.framework in Frameworks */,
@@ -113,6 +131,12 @@
113131
CE2617D714A5476800258242 /* Frameworks */ = {
114132
isa = PBXGroup;
115133
children = (
134+
FCB293E618BD601900662D35 /* MediaPlayer.framework */,
135+
FCB293E418BD601300662D35 /* CoreText.framework */,
136+
FCB293E218BD600B00662D35 /* CoreMotion.framework */,
137+
FCB293E018BD600100662D35 /* CoreLocation.framework */,
138+
FCB293DE18BD5FF400662D35 /* AssetsLibrary.framework */,
139+
FCB293DC18BD5FEF00662D35 /* AddressBook.framework */,
116140
36370CA6176A3A0100757FE2 /* Accounts.framework */,
117141
36370CA8176A3A0600757FE2 /* AdSupport.framework */,
118142
CE2617DC14A5476800258242 /* CoreGraphics.framework */,

S3_WIF_PersonalFileStore/README-Amazon.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,21 @@ This _Amazon S3 Personal File Store_ sample is fully detailed in the [web identi
1414
4. Make sure to click **Get API Key Value** after creating your API key. This value is used in configuring the sample.
1515
![](images/Amazon_Get_iOS_API_Key.png)
1616

17-
### 2. Create your role for web identity federation
17+
###2. Create the AWS Resources
18+
19+
You can **automate** the creation of AWS Resources or create them **manually**. **Skip** to step 3 for creating the resources **manually**.
20+
21+
[AWS CloudFormation](https://console.aws.amazon.com/cloudformation/home) can be used to **automate** the creation of the resources thus **skipping step 3**.
22+
23+
This step assumes that you have already created a stack in [CloudFormation](console.aws.amazon.com/cloudformation) following the instructions in the [base README](README.md).
24+
25+
1. If you specified the Amazon App Id at the time of stack creation you will already have the user role ARN needed in step 4. **Skip step 3** and **proceed** directly to **step 4**.
26+
27+
2. Otherwise **Update Stack** using the [template](https://github.com/awslabs/aws-sdk-ios-samples/blob/master/S3_WIF_PersonalFileStore/WIFCloudFormationTemplate.json) and follow the [instructions](https://mobile.awsblog.com/post/Tx3ILZHIKNTQQ83/Simplify-Web-Identity-Federation-Setup-with-AWS-CloudFormation) to add a new Web Identity Federation provider to the stack. Using the Amazon App Id, you will get the user role ARN required in later steps. **Skip to step 4**.
28+
29+
### 3. Create your role for web identity federation
30+
31+
**Skip to step 4 if you have already user role using the instructions in step 2.**
1832

1933
1. Visit the [AWS Management Console](https://console.aws.amazon.com/iam/home) to create a **new** role.
2034
![](images/Create_New_Role.png)
@@ -64,7 +78,7 @@ This _Amazon S3 Personal File Store_ sample is fully detailed in the [web identi
6478
9. Select the Role and switch to the **Summary** tab. Take note of the **Role ARN**; you'll use it in configuring the sample.
6579
![](images/Amazon_Role_ARN.png)
6680

67-
### 3. Update sample configuration
81+
### 4. Update sample configuration
6882

6983
1. Open the `S3PersonalFileStore.xcodeproj` in Xcode.
7084
2. Update Constants.h to enable Amazon login and with your role ARN:
@@ -78,7 +92,7 @@ This _Amazon S3 Personal File Store_ sample is fully detailed in the [web identi
7892
4. Enter just your Amazon API key under **APIKey** in **Custom iOS Target Properties**
7993
![](images/Amazon_Update_iOS_Project_Settings.png)
8094

81-
### 4. Run the sample
95+
### 5. Run the sample
8296

8397
Run the sample on your simulator or device.
8498

S3_WIF_PersonalFileStore/README-Google.md

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,28 @@ This _Amazon S3 Personal File Store_ sample is fully detailed in the [web identi
44

55
### 1. Create a Google application and client ID
66

7-
1. Visit the [Quick start for iOS](https://developers.google.com/+/quickstart/ios) guide and follow the instructions to **Enable the Google+ API**. Make sure to take note of your `Project Number` and `Client ID`. These will be used in later steps. The other steps in this guide will be useful with your future Google+ Apps, but will not be necessary for this sample.
7+
1. Visit the [Quick start for iOS](https://developers.google.com/+/quickstart/ios) guide and follow the instructions to **Enable the Google+ API**. Make sure to take note of your `Client ID` as this will be used in later steps. The other steps in this guide will be useful with your future Google+ Apps, but will not be necessary for this sample.
88

9-
![](images/Google_Project_Number.png)
10-
11-
![](images/Google_iOS_Client_ID.png)
9+
![](images/Google_iOS_Client_ID.png)
1210

1311
2. Under **Application type** select **Installed application**.
1412
3. Under **Installed application type**, select **iOS**.
1513
4. Enter the following as your **Bundle ID**: `com.amazon.aws.demo.s3personalfilestore.S3PersonalFileStore`.
1614
![](images/Google_Install_iOS_App.png)
1715

18-
### 2. Create your role for web identity federation
16+
###2. Create the AWS Resources
17+
18+
You can **automate** the creation of AWS Resources or create them **manually**. **Skip** to step 3 for creating the resources **manually**.
19+
20+
[AWS CloudFormation](https://console.aws.amazon.com/cloudformation/home) can be used to **automate** the creation of the resources thus **skipping step 3**.
21+
22+
1. If you specified the Google Client Id (Android Application) at the time of stack creation you will already have the user role ARN needed in step 5. **Skip step 3** and **proceed** to step 4.
23+
24+
2. Otherwise **Update Stack** using the [template](https://github.com/awslabs/aws-sdk-ios-samples/blob/master/S3_WIF_PersonalFileStore/WIFCloudFormationTemplate.json) and follow the [instructions](https://mobile.awsblog.com/post/Tx3ILZHIKNTQQ83/Simplify-Web-Identity-Federation-Setup-with-AWS-CloudFormation) to add a new Web Identity Federation provider to the stack. Using the Google Client ID (Android Application), you will get the user role ARN required in later steps. **Skip step 3** and **proceed** to **step 4**.
25+
26+
### 3. Create your role for web identity federation
27+
28+
**Skip to step 4 if you have already created user role using the instructions in step 2.**
1929

2030
1. Visit the [AWS Management Console](https://console.aws.amazon.com/iam/home) to create a **new** role.
2131
![](images/Create_New_Role.png)
@@ -26,7 +36,7 @@ This _Amazon S3 Personal File Store_ sample is fully detailed in the [web identi
2636
3. Select **Role for Web Identity Provider Access** as your role type.
2737
![](images/Select_WIF_Role.png)
2838

29-
4. Select Google as the Identity Provider and provide the **Project Number** you generated with Google.
39+
4. Select Google as the Identity Provider and provide the **Client ID** you generated with Google.
3040
![](images/Role_With_Google.png)
3141

3242
5. Click Continue when prompted to verify the role trust policy.
@@ -65,7 +75,7 @@ This _Amazon S3 Personal File Store_ sample is fully detailed in the [web identi
6575
9. Select the Role and switch to the **Summary** tab. Take note of the **Role ARN**; you'll use it in configuring the sample.
6676
![](images/Google_Role_ARN.png)
6777

68-
### 3. Download Google+ SDK and add to sample
78+
### 4. Download Google+ SDK and add to sample
6979

7080
1. Visit the [Google+ iOS SDK](https://developers.google.com/+/mobile/ios/) and download the latest version of the SDK.
7181
**Note: The sample has been tested with version 1.3.0 of the Google+ iOS SDK. Future updates may require additional configuration.**
@@ -74,7 +84,7 @@ This _Amazon S3 Personal File Store_ sample is fully detailed in the [web identi
7484
* GoogleOpenSource.framework
7585
* GooglePlus.bundle
7686

77-
### 4. Update sample configuration
87+
### 5. Update sample configuration
7888

7989
Update Constants.h to enable Google login in the sample and set your role ARN
8090
and client ID:
@@ -84,8 +94,16 @@ and client ID:
8494
#define GOOGLE_ROLE_ARN @"ROLE_ARN"
8595
#define GOOGLE_CLIENT_ID @"CLIENT_ID"
8696
```
97+
### 6. Google+ iOS SDK 1.5 configuration
98+
99+
Google+ iOS SDK 1.5 requires some additional configuration from the Google Developers Console.
100+
101+
1. Under the APIs & Auth option, select Consent Screen.
102+
2. Provide an email address.
103+
3. Provide the product name.
104+
4. Save the changes.
87105

88-
### 5. Run the sample
106+
### 7. Run the sample
89107

90108
1. Run the sample on your simulator or device.
91109
2. You may want to install the Google+ application on your device to see the native login experience.

S3_WIF_PersonalFileStore/README.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,22 @@ This _Amazon S3 Personal File Store_ sample is fully detailed in the [web identi
1313
5. Enter the following as your **Bundle ID**: `com.amazon.aws.demo.s3personalfilestore.S3PersonalFileStore`.
1414
![](images/iOS_Bundle_ID.png)
1515

16-
### 2. Create an Amazon S3 bucket to use for the sample.
16+
###2. Create the AWS Resources
17+
18+
You can **automate** the creation of AWS Resources or create them **manually**. **Skip** to step 3 for creating the resources **manually**.
19+
20+
[AWS CloudFormation](https://console.aws.amazon.com/cloudformation/home) can be used to **automate** the creation and deletion of the resources specified in steps 3 and 4.
21+
22+
1. Follow the [instructions](https://mobile.awsblog.com/post/Tx3ILZHIKNTQQ83/Simplify-Web-Identity-Federation-Setup-with-AWS-CloudFormation) on how to use [CloudFormation](https://console.aws.amazon.com/cloudformation/home) for Web Identity Federation setup for this app.
23+
2. Once the stack is created **succesfully** you will get the S3 Bucket Name and User Role ARN required in later steps. **Skip to step 5**.
24+
25+
### 3. Create an Amazon S3 bucket to use for the sample.
26+
27+
**Skip to step 5 if you have already created S3 bucket and user role using the instructions in step 2.**
1728

1829
Using the [AWS Management Console](https://console.aws.amazon.com/s3/home), create a **new** Amazon S3 bucket for testing with this sample. The name you choose for the bucket is necessary for a number of steps to follow.
1930

20-
### 3. Create your Role for web identity federation
31+
### 4. Create your Role for web identity federation
2132

2233
1. Visit the [AWS Management Console](https://console.aws.amazon.com/iam/home) to create a **new** role.
2334
![](images/Create_New_Role.png)
@@ -59,7 +70,7 @@ Using the [AWS Management Console](https://console.aws.amazon.com/s3/home), crea
5970
9. Select the role and switch to the **Summary** tab. Take note of the **Role ARN**; you'll use it in configuring the sample.
6071
![](images/FB_Role_ARN.png)
6172
62-
### 4. Update sample configuration
73+
### 5. Update sample configuration
6374
6475
1. Open the `S3PersonalFileStore.xcodeproj` in Xcode.
6576
2. Add the AWS SDK for iOS Frameworks to the sample.
@@ -85,7 +96,7 @@ Using the [AWS Management Console](https://console.aws.amazon.com/s3/home), crea
8596
8697
![](images/Update_iOS_Project_Settings.png)
8798
88-
### 5. Run the sample
99+
### 6. Run the sample
89100
90101
1. Run the sample on your simulator or device.
91102
2. You may want to install the Facebook application on your device to see the native login experience.

S3_WIF_PersonalFileStore/S3PersonalFileStore.xcodeproj/project.pbxproj

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@
3333
D09583AB13E878CF009E4171 /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D095836C13E878CF009E4171 /* LoginViewController.m */; };
3434
D09583AC13E878CF009E4171 /* LoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D095836D13E878CF009E4171 /* LoginViewController.xib */; };
3535
D09583FF13E87DBF009E4171 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09583FE13E87DBF009E4171 /* Security.framework */; };
36+
FCB293D118BD5D5600662D35 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293D018BD5D5600662D35 /* AddressBook.framework */; };
37+
FCB293D318BD5D5B00662D35 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293D218BD5D5B00662D35 /* AssetsLibrary.framework */; };
38+
FCB293D518BD5D6800662D35 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293D418BD5D6800662D35 /* CoreLocation.framework */; };
39+
FCB293D718BD5D6E00662D35 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293D618BD5D6E00662D35 /* CoreMotion.framework */; };
40+
FCB293D918BD5D8200662D35 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293D818BD5D8200662D35 /* CoreText.framework */; };
41+
FCB293DB18BD5D8900662D35 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCB293DA18BD5D8900662D35 /* MediaPlayer.framework */; };
3642
/* End PBXBuildFile section */
3743

3844
/* Begin PBXFileReference section */
@@ -74,21 +80,33 @@
7480
D095836C13E878CF009E4171 /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
7581
D095836D13E878CF009E4171 /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; };
7682
D09583FE13E87DBF009E4171 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
83+
FCB293D018BD5D5600662D35 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
84+
FCB293D218BD5D5B00662D35 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
85+
FCB293D418BD5D6800662D35 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
86+
FCB293D618BD5D6E00662D35 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
87+
FCB293D818BD5D8200662D35 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
88+
FCB293DA18BD5D8900662D35 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
7789
/* End PBXFileReference section */
7890

7991
/* Begin PBXFrameworksBuildPhase section */
8092
D02B6C5113E8783D000A4055 /* Frameworks */ = {
8193
isa = PBXFrameworksBuildPhase;
8294
buildActionMask = 2147483647;
8395
files = (
96+
FCB293DB18BD5D8900662D35 /* MediaPlayer.framework in Frameworks */,
97+
FCB293D918BD5D8200662D35 /* CoreText.framework in Frameworks */,
98+
D02B6C5D13E8783D000A4055 /* CoreGraphics.framework in Frameworks */,
99+
FCB293D718BD5D6E00662D35 /* CoreMotion.framework in Frameworks */,
100+
FCB293D518BD5D6800662D35 /* CoreLocation.framework in Frameworks */,
101+
FCB293D318BD5D5B00662D35 /* AssetsLibrary.framework in Frameworks */,
102+
FCB293D118BD5D5600662D35 /* AddressBook.framework in Frameworks */,
84103
3863D34217189F360049D976 /* Social.framework in Frameworks */,
85104
3863D34017189F2E0049D976 /* Accounts.framework in Frameworks */,
86105
3863D33E17189EE00049D976 /* AdSupport.framework in Frameworks */,
87106
3858E55D16A9BEAC00DA7AD0 /* SystemConfiguration.framework in Frameworks */,
88107
D09583FF13E87DBF009E4171 /* Security.framework in Frameworks */,
89108
D02B6C5913E8783D000A4055 /* UIKit.framework in Frameworks */,
90109
D02B6C5B13E8783D000A4055 /* Foundation.framework in Frameworks */,
91-
D02B6C5D13E8783D000A4055 /* CoreGraphics.framework in Frameworks */,
92110
);
93111
runOnlyForDeploymentPostprocessing = 0;
94112
};
@@ -115,6 +133,12 @@
115133
D02B6C5713E8783D000A4055 /* Frameworks */ = {
116134
isa = PBXGroup;
117135
children = (
136+
FCB293DA18BD5D8900662D35 /* MediaPlayer.framework */,
137+
FCB293D818BD5D8200662D35 /* CoreText.framework */,
138+
FCB293D618BD5D6E00662D35 /* CoreMotion.framework */,
139+
FCB293D418BD5D6800662D35 /* CoreLocation.framework */,
140+
FCB293D218BD5D5B00662D35 /* AssetsLibrary.framework */,
141+
FCB293D018BD5D5600662D35 /* AddressBook.framework */,
118142
3863D34117189F360049D976 /* Social.framework */,
119143
3863D33F17189F2E0049D976 /* Accounts.framework */,
120144
3863D33D17189EE00049D976 /* AdSupport.framework */,

0 commit comments

Comments
 (0)