앱스플라이어 SDK 추가
This commit is contained in:
		| @@ -5,6 +5,8 @@ | ||||
| 	<key>aps-environment</key> | ||||
| 	<string>development</string> | ||||
| 	<key>com.apple.developer.associated-domains</key> | ||||
| 	<array/> | ||||
| 	<array> | ||||
| 		<string>applinks:voiceon-test.onelink.me</string> | ||||
| 	</array> | ||||
| </dict> | ||||
| </plist> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| { | ||||
|   "originHash" : "7e8c8a802e9b50376703e11841c54f22c1f47d510e9210bd5c4a9d52ea36c5db", | ||||
|   "originHash" : "e2b266c250e8dfef68a5b39f94cb7106349e1dc72b7b5f653706ce88e5d8bba3", | ||||
|   "pins" : [ | ||||
|     { | ||||
|       "identity" : "abseil-cpp-binary", | ||||
| @@ -46,6 +46,15 @@ | ||||
|         "version" : "10.19.1" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "identity" : "appsflyerframework-static", | ||||
|       "kind" : "remoteSourceControl", | ||||
|       "location" : "https://github.com/AppsFlyerSDK/AppsFlyerFramework-Static", | ||||
|       "state" : { | ||||
|         "revision" : "2369fd501848792ec268dd47d3105bc42f9203da", | ||||
|         "version" : "6.16.1" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "identity" : "facebook-ios-sdk", | ||||
|       "kind" : "remoteSourceControl", | ||||
|   | ||||
| @@ -2,6 +2,33 @@ | ||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||||
| <plist version="1.0"> | ||||
| <dict> | ||||
|     <key>NSAdvertisingAttributionReportEndpoint</key> | ||||
|     <string>https://appsflyer-skadnetwork.com/</string> | ||||
| 	<key>CFBundleURLTypes</key> | ||||
| 	<array> | ||||
| 		<dict> | ||||
| 			<key>CFBundleURLSchemes</key> | ||||
| 			<array> | ||||
| 				<string>fb608674328645232</string> | ||||
| 			</array> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>CFBundleTypeRole</key> | ||||
| 			<string>Editor</string> | ||||
| 			<key>CFBundleURLSchemes</key> | ||||
| 			<array> | ||||
| 				<string>voiceon-test</string> | ||||
| 			</array> | ||||
| 		</dict> | ||||
| 	</array> | ||||
| 	<key>FacebookAppID</key> | ||||
| 	<string>608674328645232</string> | ||||
| 	<key>FacebookAutoLogAppEventsEnabled</key> | ||||
| 	<true/> | ||||
| 	<key>FacebookClientToken</key> | ||||
| 	<string>3775e6ea83236a685d264b6c5a1bbb4d</string> | ||||
| 	<key>FacebookDisplayName</key> | ||||
| 	<string>보이스온 - Test1</string> | ||||
| 	<key>FirebaseAppDelegateProxyEnabled</key> | ||||
| 	<false/> | ||||
| 	<key>GADApplicationIdentifier</key> | ||||
| @@ -222,22 +249,5 @@ | ||||
| 		<string>fetch</string> | ||||
| 		<string>remote-notification</string> | ||||
| 	</array> | ||||
|     <key>CFBundleURLTypes</key> | ||||
|     <array> | ||||
|       <dict> | ||||
|       <key>CFBundleURLSchemes</key> | ||||
|       <array> | ||||
|         <string>fb608674328645232</string> | ||||
|       </array> | ||||
|       </dict> | ||||
|     </array> | ||||
|     <key>FacebookAppID</key> | ||||
|     <string>608674328645232</string> | ||||
|     <key>FacebookClientToken</key> | ||||
|     <string>3775e6ea83236a685d264b6c5a1bbb4d</string> | ||||
|     <key>FacebookDisplayName</key> | ||||
|     <string>보이스온 - Test1</string> | ||||
|     <key>FacebookAutoLogAppEventsEnabled</key> | ||||
|     <true/> | ||||
| </dict> | ||||
| </plist> | ||||
|   | ||||
| @@ -2,6 +2,33 @@ | ||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||||
| <plist version="1.0"> | ||||
| <dict> | ||||
|     <key>NSAdvertisingAttributionReportEndpoint</key> | ||||
|     <string>https://appsflyer-skadnetwork.com/</string> | ||||
| 	<key>CFBundleURLTypes</key> | ||||
| 	<array> | ||||
| 		<dict> | ||||
| 			<key>CFBundleURLSchemes</key> | ||||
| 			<array> | ||||
| 				<string>fb612448298237287</string> | ||||
| 			</array> | ||||
| 		</dict> | ||||
| 		<dict> | ||||
| 			<key>CFBundleTypeRole</key> | ||||
| 			<string>Editor</string> | ||||
| 			<key>CFBundleURLSchemes</key> | ||||
| 			<array> | ||||
| 				<string>voiceon</string> | ||||
| 			</array> | ||||
| 		</dict> | ||||
| 	</array> | ||||
| 	<key>FacebookAppID</key> | ||||
| 	<string>612448298237287</string> | ||||
| 	<key>FacebookAutoLogAppEventsEnabled</key> | ||||
| 	<true/> | ||||
| 	<key>FacebookClientToken</key> | ||||
| 	<string>32af760f4a7b7cb7e3b1e7ffd0b0da70</string> | ||||
| 	<key>FacebookDisplayName</key> | ||||
| 	<string>보이스온</string> | ||||
| 	<key>FirebaseAppDelegateProxyEnabled</key> | ||||
| 	<false/> | ||||
| 	<key>GADApplicationIdentifier</key> | ||||
| @@ -222,22 +249,5 @@ | ||||
| 		<string>fetch</string> | ||||
| 		<string>remote-notification</string> | ||||
| 	</array> | ||||
|     <key>CFBundleURLTypes</key> | ||||
|     <array> | ||||
|       <dict> | ||||
|       <key>CFBundleURLSchemes</key> | ||||
|       <array> | ||||
|         <string>fb612448298237287</string> | ||||
|       </array> | ||||
|       </dict> | ||||
|     </array> | ||||
|     <key>FacebookAppID</key> | ||||
|     <string>612448298237287</string> | ||||
|     <key>FacebookClientToken</key> | ||||
|     <string>32af760f4a7b7cb7e3b1e7ffd0b0da70</string> | ||||
|     <key>FacebookDisplayName</key> | ||||
|     <string>보이스온</string> | ||||
|     <key>FacebookAutoLogAppEventsEnabled</key> | ||||
|     <true/> | ||||
| </dict> | ||||
| </plist> | ||||
|   | ||||
| @@ -6,7 +6,7 @@ | ||||
| 	<string>development</string> | ||||
| 	<key>com.apple.developer.associated-domains</key> | ||||
| 	<array> | ||||
| 		<string>applinks:sodalive.page.link</string> | ||||
| 		<string>applinks:voiceon.onelink.me</string> | ||||
| 	</array> | ||||
| </dict> | ||||
| </plist> | ||||
|   | ||||
| @@ -7,6 +7,7 @@ | ||||
|  | ||||
| import UIKit | ||||
|  | ||||
| import AppsFlyerLib | ||||
| import FBSDKCoreKit | ||||
| import FirebaseCore | ||||
| import FirebaseMessaging | ||||
| @@ -33,6 +34,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | ||||
|         ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions) | ||||
|         AppEvents.shared.activateApp() | ||||
|          | ||||
|         setupAppsFlyer() | ||||
|          | ||||
|         return true | ||||
|     } | ||||
|      | ||||
| @@ -56,6 +59,65 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | ||||
|      | ||||
|     func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) { | ||||
|     } | ||||
|      | ||||
|     func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([any UIUserActivityRestoring]?) -> Void) -> Bool { | ||||
|         AppsFlyerLib.shared().continue(userActivity, restorationHandler: nil) | ||||
|         return true | ||||
|     } | ||||
|      | ||||
|     private func setupAppsFlyer() { | ||||
|         if let infoDic = Bundle.main.infoDictionary, let devKey = infoDic["AppsFlyerDevKey"] as? String, let appId = infoDic["AppsFlyerAppID"] as? String { | ||||
|             AppsFlyerLib.shared().appsFlyerDevKey = devKey | ||||
|             AppsFlyerLib.shared().appleAppID = appId | ||||
|         } else { | ||||
|             AppsFlyerLib.shared().appsFlyerDevKey = "tWF2wbJ5nSkya5Ru9mGcPU" | ||||
|             AppsFlyerLib.shared().appleAppID = "6461721697" | ||||
|         } | ||||
|          | ||||
|         AppsFlyerLib.shared().waitForATTUserAuthorization(timeoutInterval: 60) | ||||
|          | ||||
|         AppsFlyerLib.shared().delegate = self | ||||
|         AppsFlyerLib.shared().deepLinkDelegate = self | ||||
|     } | ||||
| } | ||||
|  | ||||
| extension AppDelegate: AppsFlyerLibDelegate { | ||||
|     func onConversionDataSuccess(_ conversionInfo: [AnyHashable : Any]) { | ||||
|         DEBUG_LOG("AppsFlyer Conversion Data: \(conversionInfo)") | ||||
|     } | ||||
|      | ||||
|     func onConversionDataFail(_ error: any Error) { | ||||
|         DEBUG_LOG("AppsFlyer Conversion Data Failed: \(error.localizedDescription)") | ||||
|     } | ||||
| } | ||||
|  | ||||
| extension AppDelegate: DeepLinkDelegate { | ||||
|     func didResolveDeepLink(_ result: DeepLinkResult) { | ||||
|         switch result.status { | ||||
|         case .notFound: | ||||
|             DEBUG_LOG("[AFSDK] Deep link not found") | ||||
|             return | ||||
|         case .failure: | ||||
|             DEBUG_LOG("Error \(result.error!)") | ||||
|             return | ||||
|         case .found: | ||||
|             DEBUG_LOG("[AFSDK] Deep link found") | ||||
|         } | ||||
|          | ||||
|         guard let deepLinkObj:DeepLink = result.deepLink else { | ||||
|             DEBUG_LOG("[AFSDK] Could not extract deep link object") | ||||
|             return | ||||
|         } | ||||
|          | ||||
|         if(deepLinkObj.isDeferred == true) { | ||||
|             DEBUG_LOG("[AFSDK] This is a deferred deep link") | ||||
|         } | ||||
|         else { | ||||
|             DEBUG_LOG("[AFSDK] This is a direct deep link") | ||||
|         } | ||||
|          | ||||
|         DEBUG_LOG("deepLinkValue: \(deepLinkObj.deeplinkValue ?? "")") | ||||
|     } | ||||
| } | ||||
|  | ||||
| extension AppDelegate: MessagingDelegate { | ||||
|   | ||||
| @@ -9,6 +9,7 @@ import SwiftUI | ||||
| import AppTrackingTransparency | ||||
|  | ||||
| import FBSDKCoreKit | ||||
| import AppsFlyerLib | ||||
|  | ||||
| @main | ||||
| struct SodaLiveApp: App { | ||||
| @@ -24,11 +25,13 @@ struct SodaLiveApp: App { | ||||
|                 .onReceive(NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification)) { _ in | ||||
|                     UIApplication.shared.applicationIconBadgeNumber = 0 | ||||
|                      | ||||
|                     AppsFlyerLib.shared().start() | ||||
|                     ATTrackingManager.requestTrackingAuthorization { _ in } | ||||
|                 } | ||||
|                 .onOpenURL { url in | ||||
|                     DEBUG_LOG("I have received a URL through a custom scheme! \(url.absoluteString)") | ||||
|                     ApplicationDelegate.shared.application(UIApplication.shared, open: url, options: [:]) | ||||
|                     AppsFlyerLib.shared().handleOpen(url) | ||||
|                 } | ||||
|         } | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung