Skip to content

Commit 307af14

Browse files
Merge pull request #126 from teads/mopub_example
Add a MoPub integration example
2 parents 716497a + b0e90f1 commit 307af14

File tree

6 files changed

+310
-65
lines changed

6 files changed

+310
-65
lines changed

Podfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ target 'TeadsDemoApp' do
99

1010
# Pods for TeadsDemoApp
1111
pod 'GoogleMobileAdsMediationTeads', '4.7.5'
12+
pod 'MoPub-Teads-Adapters', '4.7.6'
1213

1314
end

TeadsDemoApp.xcodeproj/project.pbxproj

Lines changed: 50 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10-
6AFAF671587558D46AE2EAC8 /* Pods_TeadsDemoApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B79512963E77F97E0E9430D /* Pods_TeadsDemoApp.framework */; };
1110
B501EC721F823541002909B9 /* WebViewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B501EC711F823541002909B9 /* WebViewViewController.swift */; };
1211
B501EC791F823F6C002909B9 /* WebViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = B501EC771F823BA8002909B9 /* WebViewHelper.swift */; };
1312
B501EC7C1F823F8A002909B9 /* index.html in Resources */ = {isa = PBXBuildFile; fileRef = B501EC6B1F8232B3002909B9 /* index.html */; };
@@ -37,13 +36,15 @@
3736
B5CCB65F1FB20D8C00BA4B72 /* TeadsAdCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CCB65D1FB1C56D00BA4B72 /* TeadsAdCollectionViewCell.swift */; };
3837
B5CCB6601FB20D8E00BA4B72 /* TestCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CCB65E1FB1C56D00BA4B72 /* TestCollectionViewCell.swift */; };
3938
B5CCB6611FB20D9000BA4B72 /* CollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CCB65B1FB1C51900BA4B72 /* CollectionViewController.swift */; };
39+
B5D8037924E3E6C800C0AAF6 /* MoPubController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D8037824E3E6C800C0AAF6 /* MoPubController.swift */; };
40+
D822AE1F658F3E8B193836D6 /* Pods_TeadsDemoApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A00B2DB925EAF9FCC9B791B /* Pods_TeadsDemoApp.framework */; };
4041
DB4660DC2181B865003A6CF5 /* AdMobController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB4660DB2181B865003A6CF5 /* AdMobController.swift */; };
4142
/* End PBXBuildFile section */
4243

4344
/* Begin PBXFileReference section */
44-
48B8DFE05488E339B96E8286 /* Pods-TeadsDemoApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TeadsDemoApp.release.xcconfig"; path = "Target Support Files/Pods-TeadsDemoApp/Pods-TeadsDemoApp.release.xcconfig"; sourceTree = "<group>"; };
45-
4B79512963E77F97E0E9430D /* Pods_TeadsDemoApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_TeadsDemoApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
46-
91867719F32F3DB45575394B /* Pods-TeadsDemoApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TeadsDemoApp.debug.xcconfig"; path = "Target Support Files/Pods-TeadsDemoApp/Pods-TeadsDemoApp.debug.xcconfig"; sourceTree = "<group>"; };
45+
3A00B2DB925EAF9FCC9B791B /* Pods_TeadsDemoApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_TeadsDemoApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
46+
4F34C10021C20FBD3897D8B9 /* Pods-TeadsDemoApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TeadsDemoApp.release.xcconfig"; path = "Target Support Files/Pods-TeadsDemoApp/Pods-TeadsDemoApp.release.xcconfig"; sourceTree = "<group>"; };
47+
9049E99B853FFD3E844A5506 /* Pods-TeadsDemoApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TeadsDemoApp.debug.xcconfig"; path = "Target Support Files/Pods-TeadsDemoApp/Pods-TeadsDemoApp.debug.xcconfig"; sourceTree = "<group>"; };
4748
B501EC6A1F8232B3002909B9 /* ie10-viewport-bug-workaround.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = "ie10-viewport-bug-workaround.js"; sourceTree = "<group>"; };
4849
B501EC6B1F8232B3002909B9 /* index.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = index.html; sourceTree = "<group>"; };
4950
B501EC6D1F8232B3002909B9 /* bootstrap-theme.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = "bootstrap-theme.css"; sourceTree = "<group>"; };
@@ -80,6 +81,7 @@
8081
B5CCB65B1FB1C51900BA4B72 /* CollectionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionViewController.swift; sourceTree = "<group>"; };
8182
B5CCB65D1FB1C56D00BA4B72 /* TeadsAdCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TeadsAdCollectionViewCell.swift; sourceTree = "<group>"; };
8283
B5CCB65E1FB1C56D00BA4B72 /* TestCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestCollectionViewCell.swift; sourceTree = "<group>"; };
84+
B5D8037824E3E6C800C0AAF6 /* MoPubController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MoPubController.swift; sourceTree = "<group>"; };
8385
DB4660DB2181B865003A6CF5 /* AdMobController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdMobController.swift; sourceTree = "<group>"; };
8486
/* End PBXFileReference section */
8587

@@ -88,26 +90,26 @@
8890
isa = PBXFrameworksBuildPhase;
8991
buildActionMask = 2147483647;
9092
files = (
91-
6AFAF671587558D46AE2EAC8 /* Pods_TeadsDemoApp.framework in Frameworks */,
93+
D822AE1F658F3E8B193836D6 /* Pods_TeadsDemoApp.framework in Frameworks */,
9294
);
9395
runOnlyForDeploymentPostprocessing = 0;
9496
};
9597
/* End PBXFrameworksBuildPhase section */
9698

9799
/* Begin PBXGroup section */
98-
2592708B5E82C5A12C737F0B /* Frameworks */ = {
100+
874FCA9D677F77A0CE9CCE96 /* Frameworks */ = {
99101
isa = PBXGroup;
100102
children = (
101-
4B79512963E77F97E0E9430D /* Pods_TeadsDemoApp.framework */,
103+
3A00B2DB925EAF9FCC9B791B /* Pods_TeadsDemoApp.framework */,
102104
);
103105
name = Frameworks;
104106
sourceTree = "<group>";
105107
};
106108
9C4C2A8CC3AEB01218414AF6 /* Pods */ = {
107109
isa = PBXGroup;
108110
children = (
109-
91867719F32F3DB45575394B /* Pods-TeadsDemoApp.debug.xcconfig */,
110-
48B8DFE05488E339B96E8286 /* Pods-TeadsDemoApp.release.xcconfig */,
111+
9049E99B853FFD3E844A5506 /* Pods-TeadsDemoApp.debug.xcconfig */,
112+
4F34C10021C20FBD3897D8B9 /* Pods-TeadsDemoApp.release.xcconfig */,
111113
);
112114
path = Pods;
113115
sourceTree = "<group>";
@@ -224,8 +226,8 @@
224226
children = (
225227
B5555A341F7CDF80007406D4 /* TeadsDemoApp */,
226228
B5555A331F7CDF80007406D4 /* Products */,
227-
2592708B5E82C5A12C737F0B /* Frameworks */,
228229
9C4C2A8CC3AEB01218414AF6 /* Pods */,
230+
874FCA9D677F77A0CE9CCE96 /* Frameworks */,
229231
);
230232
sourceTree = "<group>";
231233
};
@@ -266,6 +268,7 @@
266268
B5555A4C1F7D3153007406D4 /* Controllers */ = {
267269
isa = PBXGroup;
268270
children = (
271+
B5D8037524E3E51C00C0AAF6 /* mopubController */,
269272
DB4660D82181B718003A6CF5 /* adMobController */,
270273
B50159921FB1B6C6007399A0 /* collectionViewController */,
271274
B50159911FB1B6A0007399A0 /* scrollViewController */,
@@ -339,6 +342,14 @@
339342
path = CollectionViewCell;
340343
sourceTree = "<group>";
341344
};
345+
B5D8037524E3E51C00C0AAF6 /* mopubController */ = {
346+
isa = PBXGroup;
347+
children = (
348+
B5D8037824E3E6C800C0AAF6 /* MoPubController.swift */,
349+
);
350+
path = mopubController;
351+
sourceTree = "<group>";
352+
};
342353
DB4660D82181B718003A6CF5 /* adMobController */ = {
343354
isa = PBXGroup;
344355
children = (
@@ -356,12 +367,12 @@
356367
isa = PBXNativeTarget;
357368
buildConfigurationList = B5555A441F7CDF80007406D4 /* Build configuration list for PBXNativeTarget "TeadsDemoApp" */;
358369
buildPhases = (
359-
4DE9DEBFE2E1DD64624F7CA5 /* [CP] Check Pods Manifest.lock */,
370+
A2D3C8E3E10EE071717EF2F0 /* [CP] Check Pods Manifest.lock */,
360371
B5555A2E1F7CDF80007406D4 /* Sources */,
361372
B5555A2F1F7CDF80007406D4 /* Frameworks */,
362373
B5555A301F7CDF80007406D4 /* Resources */,
363374
913FE1D31FEC291B003C6E5E /* ShellScript */,
364-
FBFB355C3083F93449930B2F /* [CP] Embed Pods Frameworks */,
375+
3EC69DF198424DA10DD39A97 /* [CP] Embed Pods Frameworks */,
365376
);
366377
buildRules = (
367378
);
@@ -423,26 +434,30 @@
423434
/* End PBXResourcesBuildPhase section */
424435

425436
/* Begin PBXShellScriptBuildPhase section */
426-
4DE9DEBFE2E1DD64624F7CA5 /* [CP] Check Pods Manifest.lock */ = {
437+
3EC69DF198424DA10DD39A97 /* [CP] Embed Pods Frameworks */ = {
427438
isa = PBXShellScriptBuildPhase;
428439
buildActionMask = 2147483647;
429440
files = (
430441
);
431-
inputFileListPaths = (
432-
);
433442
inputPaths = (
434-
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
435-
"${PODS_ROOT}/Manifest.lock",
436-
);
437-
name = "[CP] Check Pods Manifest.lock";
438-
outputFileListPaths = (
443+
"${PODS_ROOT}/Target Support Files/Pods-TeadsDemoApp/Pods-TeadsDemoApp-frameworks.sh",
444+
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
445+
"${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework",
446+
"${PODS_ROOT}/TeadsSDK/TeadsSDK.framework",
447+
"${BUILT_PRODUCTS_DIR}/mopub-ios-sdk/MoPub.framework",
448+
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
439449
);
450+
name = "[CP] Embed Pods Frameworks";
440451
outputPaths = (
441-
"$(DERIVED_FILE_DIR)/Pods-TeadsDemoApp-checkManifestLockResult.txt",
452+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
453+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework",
454+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TeadsSDK.framework",
455+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MoPub.framework",
456+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
442457
);
443458
runOnlyForDeploymentPostprocessing = 0;
444459
shellPath = /bin/sh;
445-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
460+
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TeadsDemoApp/Pods-TeadsDemoApp-frameworks.sh\"\n";
446461
showEnvVarsInLog = 0;
447462
};
448463
913FE1D31FEC291B003C6E5E /* ShellScript */ = {
@@ -458,28 +473,26 @@
458473
shellPath = /bin/sh;
459474
shellScript = "echo \"Target architectures: $ARCHS\"\n\nAPP_PATH=\"${TARGET_BUILD_DIR}/${WRAPPER_NAME}\"\n\necho \"$APP_PATH\"\n\nfind \"$APP_PATH\" -name '*.framework' -type d | while read -r FRAMEWORK\ndo\nFRAMEWORK_EXECUTABLE_NAME=$(defaults read \"$FRAMEWORK/Info.plist\" CFBundleExecutable)\nFRAMEWORK_EXECUTABLE_PATH=\"$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME\"\necho \"Executable is $FRAMEWORK_EXECUTABLE_PATH\"\necho $(lipo -info \"$FRAMEWORK_EXECUTABLE_PATH\")\n\nFRAMEWORK_TMP_PATH=\"$FRAMEWORK_EXECUTABLE_PATH-tmp\"\n\n# remove simulator's archs if location is not simulator's directory\ncase \"${TARGET_BUILD_DIR}\" in\n*\"iphonesimulator\")\necho \"No need to remove archs\"\n;;\n*)\nif $(lipo \"$FRAMEWORK_EXECUTABLE_PATH\" -verify_arch \"i386\") ; then\nlipo -output \"$FRAMEWORK_TMP_PATH\" -remove \"i386\" \"$FRAMEWORK_EXECUTABLE_PATH\"\necho \"i386 architecture removed\"\nrm \"$FRAMEWORK_EXECUTABLE_PATH\"\nmv \"$FRAMEWORK_TMP_PATH\" \"$FRAMEWORK_EXECUTABLE_PATH\"\nfi\nif $(lipo \"$FRAMEWORK_EXECUTABLE_PATH\" -verify_arch \"x86_64\") ; then\nlipo -output \"$FRAMEWORK_TMP_PATH\" -remove \"x86_64\" \"$FRAMEWORK_EXECUTABLE_PATH\"\necho \"x86_64 architecture removed\"\nrm \"$FRAMEWORK_EXECUTABLE_PATH\"\nmv \"$FRAMEWORK_TMP_PATH\" \"$FRAMEWORK_EXECUTABLE_PATH\"\nfi\n;;\nesac\n\necho \"Completed for executable $FRAMEWORK_EXECUTABLE_PATH\"\necho $(lipo -info \"$FRAMEWORK_EXECUTABLE_PATH\")\n\ndone\n";
460475
};
461-
FBFB355C3083F93449930B2F /* [CP] Embed Pods Frameworks */ = {
476+
A2D3C8E3E10EE071717EF2F0 /* [CP] Check Pods Manifest.lock */ = {
462477
isa = PBXShellScriptBuildPhase;
463478
buildActionMask = 2147483647;
464479
files = (
465480
);
481+
inputFileListPaths = (
482+
);
466483
inputPaths = (
467-
"${PODS_ROOT}/Target Support Files/Pods-TeadsDemoApp/Pods-TeadsDemoApp-frameworks.sh",
468-
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
469-
"${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework",
470-
"${PODS_ROOT}/TeadsSDK/TeadsSDK.framework",
471-
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
484+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
485+
"${PODS_ROOT}/Manifest.lock",
486+
);
487+
name = "[CP] Check Pods Manifest.lock";
488+
outputFileListPaths = (
472489
);
473-
name = "[CP] Embed Pods Frameworks";
474490
outputPaths = (
475-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
476-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework",
477-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TeadsSDK.framework",
478-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
491+
"$(DERIVED_FILE_DIR)/Pods-TeadsDemoApp-checkManifestLockResult.txt",
479492
);
480493
runOnlyForDeploymentPostprocessing = 0;
481494
shellPath = /bin/sh;
482-
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TeadsDemoApp/Pods-TeadsDemoApp-frameworks.sh\"\n";
495+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
483496
showEnvVarsInLog = 0;
484497
};
485498
/* End PBXShellScriptBuildPhase section */
@@ -503,6 +516,7 @@
503516
B50C184D22CCDF49004F2360 /* SyncWebViewAdView.swift in Sources */,
504517
B502BA131F827D5C008257EC /* TableViewController.swift in Sources */,
505518
B502BA171F8282DB008257EC /* TeadsAdTableViewCell.swift in Sources */,
519+
B5D8037924E3E6C800C0AAF6 /* MoPubController.swift in Sources */,
506520
B57FB1F11FC5E21F00609036 /* PidTableViewCell.swift in Sources */,
507521
B5CCB6611FB20D9000BA4B72 /* CollectionViewController.swift in Sources */,
508522
B52842262213284A00025E97 /* SyncWebViewTFInReadAdView.swift in Sources */,
@@ -653,7 +667,7 @@
653667
};
654668
B5555A451F7CDF80007406D4 /* Debug */ = {
655669
isa = XCBuildConfiguration;
656-
baseConfigurationReference = 91867719F32F3DB45575394B /* Pods-TeadsDemoApp.debug.xcconfig */;
670+
baseConfigurationReference = 9049E99B853FFD3E844A5506 /* Pods-TeadsDemoApp.debug.xcconfig */;
657671
buildSettings = {
658672
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
659673
BUNDLE_LOADER = "";
@@ -677,7 +691,7 @@
677691
};
678692
B5555A461F7CDF80007406D4 /* Release */ = {
679693
isa = XCBuildConfiguration;
680-
baseConfigurationReference = 48B8DFE05488E339B96E8286 /* Pods-TeadsDemoApp.release.xcconfig */;
694+
baseConfigurationReference = 4F34C10021C20FBD3897D8B9 /* Pods-TeadsDemoApp.release.xcconfig */;
681695
buildSettings = {
682696
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
683697
BUNDLE_LOADER = "";

TeadsDemoApp/Assets.xcassets/AppIcon.appiconset/Contents.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
{
22
"images" : [
3+
{
4+
"idiom" : "iphone",
5+
"size" : "20x20",
6+
"scale" : "2x"
7+
},
8+
{
9+
"idiom" : "iphone",
10+
"size" : "20x20",
11+
"scale" : "3x"
12+
},
313
{
414
"size" : "29x29",
515
"idiom" : "iphone",
@@ -52,6 +62,16 @@
5262
"filename" : "icon_180x180_sdk.png",
5363
"scale" : "3x"
5464
},
65+
{
66+
"idiom" : "ipad",
67+
"size" : "20x20",
68+
"scale" : "1x"
69+
},
70+
{
71+
"idiom" : "ipad",
72+
"size" : "20x20",
73+
"scale" : "2x"
74+
},
5575
{
5676
"size" : "29x29",
5777
"idiom" : "ipad",
@@ -116,6 +136,11 @@
116136
"idiom" : "ipad",
117137
"size" : "83.5x83.5",
118138
"scale" : "2x"
139+
},
140+
{
141+
"idiom" : "ios-marketing",
142+
"size" : "1024x1024",
143+
"scale" : "1x"
119144
}
120145
],
121146
"info" : {

0 commit comments

Comments
 (0)