Post

Replies

Boosts

Views

Activity

Reply to Auto-renewable subscriptions: 'is_in_intro_offer_period' in the local receipt with free trial period
is_in_intro_offer_period is not work anymore and the verifyReceipt endpoint is also deprecated. https://developer.apple.com/documentation/appstorereceipts/requestbody and, If you need to determine whether the current subscription is within the free trial period, you can call check if (expires_date_ms - purchase_date_ms) is less than the specified period. https://developer.apple.com/documentation/appstoreserverapi/jwstransactiondecodedpayload let purchase_date_ms = parseInt(latest_transcation.purchaseDate) let expires_date_ms = parseInt(latest_transcation.expiresDate) let duration = expires_date_ms - purchase_date_ms var isInIntroOfferPeriod = false // free period in your introoffer // for example: 3 days free trial in my yearly subscription if (duration > 0 && duration <= 3*86400000) { isInIntroOfferPeriod = true }
Topic: App & System Services SubTopic: StoreKit Tags:
Jul ’23
Reply to Use a HTTP Proxy with WkWebView
any update? i found that you can use in WKURLSchemeHandler your cases. 1. add hook for webview @implementation WKWebView (Hook) + (void)load { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ Method origin = class_getClassMethod(self, @selector(handlesURLScheme:)); Method hook = class_getClassMethod(self, @selector(cdz_handlesURLScheme:)); method_exchangeImplementations(origin, hook); }); } + (BOOL)cdz_handlesURLScheme:(NSString *)urlScheme { if ([urlScheme isEqualToString:@"http"] || [urlScheme isEqualToString:@"https"]) { return NO; } return [self cdz_handlesURLScheme:urlScheme]; } @end 2. set url schemehandler extension WKWebViewConfiguration{ class func proxyConifg() -> WKWebViewConfiguration{ let config = WKWebViewConfiguration() let handler = HttpProxyHandler() config.setURLSchemeHandler(handler, forURLScheme: "http") config.setURLSchemeHandler(handler, forURLScheme: "https") return config } } 3. write proxy logic in your WKURLSchemeHandler func webView(_ webView: WKWebView, start urlSchemeTask: WKURLSchemeTask) { let proxy_server = "YourProxyServer" // proxy server let proxy_port = 1234 // your port let hostKey = kCFNetworkProxiesHTTPProxy as String let portKey = kCFNetworkProxiesHTTPPort as String let proxyDict:[String:Any] = [kCFNetworkProxiesHTTPEnable as String: true, hostKey:proxy_server, portKey: proxy_port] let config = URLSessionConfiguration.ephemeral config.connectionProxyDictionary = proxyDict let defaultSession = URLSession(configuration: config) dataTask = defaultSession.dataTask(with: urlSchemeTask.request, completionHandler: {[weak urlSchemeTask] (data, response, error) in /// fix crash error guard let urlSchemeTask = urlSchemeTask else { return } if let error = error { urlSchemeTask.didFailWithError(error) } else { if let response = response { urlSchemeTask.didReceive(response) } if let data = data { urlSchemeTask.didReceive(data) } urlSchemeTask.didFinish() } }) dataTask?.resume() } :)
May ’23
Reply to Auto-renewable subscriptions: 'is_in_intro_offer_period' in the local receipt with free trial period
is_in_intro_offer_period is not work anymore and the verifyReceipt endpoint is also deprecated. https://developer.apple.com/documentation/appstorereceipts/requestbody and, If you need to determine whether the current subscription is within the free trial period, you can call check if (expires_date_ms - purchase_date_ms) is less than the specified period. https://developer.apple.com/documentation/appstoreserverapi/jwstransactiondecodedpayload let purchase_date_ms = parseInt(latest_transcation.purchaseDate) let expires_date_ms = parseInt(latest_transcation.expiresDate) let duration = expires_date_ms - purchase_date_ms var isInIntroOfferPeriod = false // free period in your introoffer // for example: 3 days free trial in my yearly subscription if (duration > 0 && duration <= 3*86400000) { isInIntroOfferPeriod = true }
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Jul ’23
Reply to Use a HTTP Proxy with WkWebView
any update? i found that you can use in WKURLSchemeHandler your cases. 1. add hook for webview @implementation WKWebView (Hook) + (void)load { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ Method origin = class_getClassMethod(self, @selector(handlesURLScheme:)); Method hook = class_getClassMethod(self, @selector(cdz_handlesURLScheme:)); method_exchangeImplementations(origin, hook); }); } + (BOOL)cdz_handlesURLScheme:(NSString *)urlScheme { if ([urlScheme isEqualToString:@"http"] || [urlScheme isEqualToString:@"https"]) { return NO; } return [self cdz_handlesURLScheme:urlScheme]; } @end 2. set url schemehandler extension WKWebViewConfiguration{ class func proxyConifg() -> WKWebViewConfiguration{ let config = WKWebViewConfiguration() let handler = HttpProxyHandler() config.setURLSchemeHandler(handler, forURLScheme: "http") config.setURLSchemeHandler(handler, forURLScheme: "https") return config } } 3. write proxy logic in your WKURLSchemeHandler func webView(_ webView: WKWebView, start urlSchemeTask: WKURLSchemeTask) { let proxy_server = "YourProxyServer" // proxy server let proxy_port = 1234 // your port let hostKey = kCFNetworkProxiesHTTPProxy as String let portKey = kCFNetworkProxiesHTTPPort as String let proxyDict:[String:Any] = [kCFNetworkProxiesHTTPEnable as String: true, hostKey:proxy_server, portKey: proxy_port] let config = URLSessionConfiguration.ephemeral config.connectionProxyDictionary = proxyDict let defaultSession = URLSession(configuration: config) dataTask = defaultSession.dataTask(with: urlSchemeTask.request, completionHandler: {[weak urlSchemeTask] (data, response, error) in /// fix crash error guard let urlSchemeTask = urlSchemeTask else { return } if let error = error { urlSchemeTask.didFailWithError(error) } else { if let response = response { urlSchemeTask.didReceive(response) } if let data = data { urlSchemeTask.didReceive(data) } urlSchemeTask.didFinish() } }) dataTask?.resume() } :)
Replies
Boosts
Views
Activity
May ’23
Reply to Subscription Waiting for Review
I have the same problem, how did you solve it.
Replies
Boosts
Views
Activity
Dec ’22
Reply to Can not install TestFlight version: "This app cannot be installed because its integrity could not be verified."
+1 same issue
Replies
Boosts
Views
Activity
Dec ’22
Reply to How to resolve the "this application is not recognized by Game Center" error
I've found that many other developers are experiencing the same problem. Maybe there are really few games developed with Apple's GameKit, or else the engineers wouldn't have been serious about solving this problem.
Topic: Programming Languages SubTopic: Swift Tags:
Replies
Boosts
Views
Activity
Oct ’22