release build

This commit is contained in:
Bilal
2024-09-30 08:44:18 +05:30
parent e925ec085e
commit de88732b07
8 changed files with 84 additions and 53 deletions

View File

@@ -2917,7 +2917,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 25.1.8;
MARKETING_VERSION = 25.1.9;
PRODUCT_BUNDLE_IDENTIFIER = com.app.woka;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@@ -2960,7 +2960,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 25.1.8;
MARKETING_VERSION = 25.1.9;
PRODUCT_BUNDLE_IDENTIFIER = com.app.woka;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@@ -3054,7 +3054,8 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 6;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 4S9A74ZB6H;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
@@ -3067,13 +3068,17 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 25.1.6;
MARKETING_VERSION = 25.1.9;
PRODUCT_BUNDLE_IDENTIFIER = com.app.woka.OneSignalNotificationServiceExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TARGETED_DEVICE_FAMILY = 1;
};
name = Debug;
};
@@ -3082,7 +3087,7 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 6;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 4S9A74ZB6H;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
@@ -3095,13 +3100,17 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 25.1.6;
MARKETING_VERSION = 25.1.9;
PRODUCT_BUNDLE_IDENTIFIER = com.app.woka.OneSignalNotificationServiceExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TARGETED_DEVICE_FAMILY = 1;
};
name = Release;
};

View File

@@ -36,7 +36,8 @@ class JWKaraokePlayerVC: JWPlayerViewController, JWPlayerViewControllerDelegate
var videoID = Int()
var vm = JWKaraokePlayerVM()
var errorCount = 0
deinit{
NotificationCenter.default.removeObserver(self,name: UIApplication.didEnterBackgroundNotification, object: nil)
NotificationCenter.default.removeObserver(self,name: UIApplication.willEnterForegroundNotification, object: nil)
@@ -228,6 +229,31 @@ class JWKaraokePlayerVC: JWPlayerViewController, JWPlayerViewControllerDelegate
override func jwplayer(_ player: JWPlayer, failedWithError code: UInt, message: String) {
super.jwplayer(player, failedWithError: code, message: message)
// if no internet then add network observer
// try reconnect 3 times else show retry
if errorCount < 4{
errorCount += 1
self.player.configurePlayer(with: config)
self.player.play()
return
}
DispatchQueue.main.async {
Utilities.alertWithBtnCancelCompletion(title: "Error", msgBody: message, okBtnStr: "Connect", vc: self) { [weak self] isDone in
guard let self else{
self?.player.stop()
self?.dismiss(animated: true)
return
}
errorCount = 0
if isDone{ // retry
self.player.configurePlayer(with: config)
self.player.play()
}else{ // cancel
self.player.stop()
self.dismiss(animated: true)
}
}
}
print("Error: \(code) - \(message)")
}

View File

@@ -28,6 +28,9 @@ enum AdsEnum : String{
case gameWebView = "game-web-view"
case gameInterestial = "game-interestial"
case fm = "fm"
case liveTvAd = "live-tv-ad"
case webSeriesVideoAd = "web-series-video-ad"
case more = "more"
}
class AuthFunc{

View File

@@ -76,6 +76,7 @@ class JWPlayerManager {
print("Invalid live stream URL")
return
}
let item = try JWPlayerItemBuilder()
.file(URL(string: liveStreamItem.url)!)
.title(liveStreamItem.titles ?? "Trailer")
@@ -183,16 +184,20 @@ class JWPlayerManager {
.build()
case .webSeries:
//https://pubads.g.doubleclick.net/gampad/ads?iu=/23204950200/VideoAd&description_url=https%3A%2F%2Fwokaland.com%2F&tfcd=0&npa=0&sz=480x320%7C640x480&ciu_szs=480x320&min_ad_duration=5000&max_ad_duration=20000&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&impl=s&correlator=
let adConfigs = JWAdsBuilder.shareInstace.createAds(adsData: [AdBreakItemStruct(adUrl: URL(string: "https://pubads.g.doubleclick.net/gampad/ads?iu=/23204950200/VideoAd&description_url=https%3A%2F%2Fwokaland.com%2F&tfcd=0&npa=0&ad_type=audio_video&sz=640x480%7C1280x720&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&impl=s&correlator=")!, offset: .midroll(percent: 40)),
AdBreakItemStruct(adUrl: URL(string: "https://pubads.g.doubleclick.net/gampad/live/ads?iu=/23204950200/VideoAd&description_url=https%3A%2F%2Fwokaland.com%2F&tfcd=0&npa=0&ad_type=audio_video&sz=640x480%7C1280x720&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&impl=s&correlator=&nofb=1")!, offset: .midroll(percent: 80)),
AdBreakItemStruct(adUrl: URL(string: "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=90")!, offset: .midroll(percent: 90))
])
finalConfig = try JWPlayerConfigurationBuilder()
.playlist(items: items)
.autostart(false)
.advertising(adConfigs!)
.build()
if let adsData = AuthFunc.shareInstance.adsData, let webSeriesVideoAd = adsData.result?.filter({$0.slug == AdsEnum.webSeriesVideoAd.rawValue}).first, webSeriesVideoAd.googleAd != nil, let adConfigs = JWAdsBuilder.shareInstace.createAds(adsData: [AdBreakItemStruct(adUrl: URL(string: "https://pubads.g.doubleclick.net/gampad/ads?iu=/23204950200/testingvideo&description_url=https%3A%2F%2Fwokaland.com&tfcd=0&npa=0&sz=640x180%7C1280x720%7C1280x720&min_ad_duration=0&max_ad_duration=30000&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&impl=s&correlator=&vad_type=linear")!, offset: .midroll(percent: 40)),
AdBreakItemStruct(adUrl: URL(string: "https://pubads.g.doubleclick.net/gampad/ads?iu=/23204950200/VideoAd&description_ss url=https%3A%2F%2Fwokaland.com&tfcd=0&npa=0&sz=640x480%7C1280x720&min_ad_duration=5000&max_ad_duration=30000&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&impl=s&correlator=")!, offset: .midroll(percent: 80)),
AdBreakItemStruct(adUrl: URL(string: "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=90")!, offset: .midroll(percent: 90))]){
finalConfig = try JWPlayerConfigurationBuilder()
.playlist(items: items)
.autostart(false)
.advertising(adConfigs)
.build()
}else{
finalConfig = try JWPlayerConfigurationBuilder()
.playlist(items: items)
.autostart(false)
.build()
}
case .masilaSongs:
let adConfigs = JWAdsBuilder.shareInstace.createAds(adsData: [AdBreakItemStruct(adUrl: URL(string: "https://pubads.g.doubleclick.net/gampad/ads?iu=/23204950200/VideoAd&description_url=https%3A%2F%2Fwokaland.com%2F&tfcd=0&npa=0&ad_type=audio_video&sz=640x480%7C1280x720&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&impl=s&correlator=")!, offset: .preroll())])

View File

@@ -21,7 +21,6 @@ class SplashVM{
func initView(){
if AuthFunc.shareInstance.staticURLs == nil{
AuthFunc.shareInstance.getStaticURLs()
}

View File

@@ -98,7 +98,9 @@ class ThemeOneVC: UIViewController {
}
override func viewDidAppear(_ animated: Bool) {
// OFF In Production
// AuthFunc.shareInstance.getAds()
K.GVar.topView = .theme1
vm.shouldAnimate = true

View File

@@ -53,8 +53,9 @@ class MoreVM{
}
}
AdReusable.sharedInstance.setupBannerAd(bannerView: headerBannerView, in: vc.trailerTask, adUnitID: K.GoogleAdIDs.splashBanner2, viewController: self.vc, height: 5, width: 15)
if let adsData = AuthFunc.shareInstance.adsData, let moreAd = adsData.result?.filter({$0.slug == AdsEnum.more.rawValue}).first, moreAd.googleAd != nil{
AdReusable.sharedInstance.setupBannerAd(bannerView: headerBannerView, in: vc.trailerTask, adUnitID: K.GoogleAdIDs.splashBanner2, viewController: self.vc, height: 5, width: 15)
}
}
func setupAudioSession() {

View File

@@ -533,49 +533,35 @@ class ThemeOneVM{
}
let videoSourceBuilder = try JWVideoSourceBuilder()
// .defaultVideo(true)
.file(liveStreamURL)
.label(title)
.build()
// Create a JWPlayerItem
let item = try JWPlayerItemBuilder()
// .file(liveStreamURL)
.videoSources([videoSourceBuilder])
.title(title)
.build()
// Create the ad break
let adBreakBuilder = JWAdBreakBuilder()
.offset(.preroll())
.tags([URL(string: "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=")!])
guard let adBreak = try? adBreakBuilder.build() else {
print("Ad error")
// Handle build error
return
// Create a JWPlayerConfiguration.
if let adsData = AuthFunc.shareInstance.adsData, let liveTVAd = adsData.result?.filter({$0.slug == AdsEnum.liveTvAd.rawValue}).first, liveTVAd.googleAd != nil, let adConfig = JWAdsBuilder.shareInstace.createAds(adsData: [AdBreakItemStruct(adUrl: URL(string: "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=90")!, offset: .preroll())]){
let config = try JWPlayerConfigurationBuilder()
.playlist(items: [item])
.autostart(true)
.advertising(adConfig)
.build()
vc.config = config
}else{
let config = try JWPlayerConfigurationBuilder()
.playlist(items: [item])
.autostart(true)
.build()
vc.config = config
}
// Create the ad config
let adConfigBuilder = JWImaAdvertisingConfigBuilder()
.schedule([adBreak])
guard let adConfig = try? adConfigBuilder.build() else {
// Handle build error
return
}
// Create a JWPlayerConfiguration
let config = try JWPlayerConfigurationBuilder()
.playlist(items: [item])
// .preload(JWPreload(rawValue: 20) ?? .none)
.autostart(true)
.advertising(adConfig)
// .playerId("X57dFDmV")
.build()
vc.config = config
vc.dismissTapped = self.tapped
vc.contentType = .liveStream
if let streamID = AuthFunc.shareInstance.staticURLs?.liveData?.first?.id{