Monday, June 25, 2018

how do regular users can install iOS 12 development beta

Public betas for regular users follow the developer betas.

if you are a regular user and want to join the beta test , head to on the device you want to run the beta on.

you can enrol there, and download a  specific profile that will allow your device to download the beta releases 

after that , new beta releases will be delivered just a regular iOS updates are: You will get a notification when one is ready and can check manually by going to Settings -> General -> Software Update

Monday, May 7, 2018

how to restrict mobile app access to only wifi

In enterprise application , the need for apps to use only wifi comes to picture sometimes as they can access intranet through wifi.

But with the advent of wifi-assist.It's possible sometimes Mobile data will be used for internet connectivity simultaneously along with wifi.

so how to stop this from happening so that app can use only wifi not mobile data.

allowscellularaccess property of NSMutableURLRequest solves the issue.

so if set this value to NO then if there is no wifi then it'll ignore the mobile data and return internet connect offline error message

Here is sample code to test

    NSMutableURLRequest *request=[[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:@""]];    [request setAllowsCellularAccess:NO];    NSError *error;
        NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];        [request setHTTPMethod:@"GET"];
        NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        [postDataTask resume];

Here is the sample error message we get

Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={NSUnderlyingError=0x1c004b700 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=, NSErrorFailingURLKey=, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, NSLocalizedDescription=The Internet connection appears to be offline.}

Thursday, March 8, 2018

Multipath tcp in iOS

Multipath TCP enables iOS to use both wifi and data connection simultaneously which increases the user experience and works around common problem network latency,network connection drop out,etc.

It was introduced in iOS 7 itself and it was used by only Siri but it is released for developers.
since iOS 11.

This can be lot more useful when it comes to streaming of audio and video.

One can opt multipath tcp in NSURLSession

var multipathserviceType:URLSessionConfiguration.MultipathServiceType
none =0
handover = 1


It never used multipath acts as usual


acts more like how wifi assit works i.e only when wifi is weak it uses data and if wifi signal gets stronger then it uses wifi


It uses both wifi and data at a same time but it will not be very aggressive on data network.
Siri uses interactive mode


Same as interactive but it'll use data network aggressively

Wednesday, January 31, 2018

Easy to use java decompiler

Recently I had to get java class files out of JAR that was provided to me.

I could get easily class files from JAR by renaming the file from myLib.jar to

But I couldn't find a easy way to decompile .class file (byte code ) back to java.

I found some online services to do that but its not safe and most of them are blocked due to firewall in corporate network.

and doing this manually with javap which is part of JDK is not good as it displays other information than original source code which makes kind of hard to copy and save as java file.

so I thought like I would use a stand alone desktop program.

I found JD GUI good

because it provides good UI(Tree view explorer) for us to see and shows the actuall source code and easy to export as java file

I tried couple of other Stand along programs but it wouldn't support latest mac.

Thursday, January 25, 2018

Ever wanted to run your windows apps on Android device, now its possible with Wine 3.0

With the introduction of Wine 3.0 now you can run windows 7 apps on Android.

It works better with X86 based processor and with ARM based phone you are limited to programs that runs with Windows RT.

One more thing is it even allows you to run some windows application on mac.

Even though this application is not bugfree,Its still worth a try.

Thursday, November 30, 2017

How to make ipa using terminal

Here to script to do that.
xcodebuild -exportArchive -archivePath myproject.xcarchive -exportPath IPA -exportOptionsPlist options.plist
Here is sample options.plist

Monday, November 20, 2017

Date and time issues with Mobile app and API

Most of the times while we develop mobile apps ,we run into date and time issues with respect to timezones and summer time.

so easy solution is to make sure API supports ISO-8601 date and time format  and its already a internet standard.

so basically when we submit the date and time we can submit the date and time in ISO-8601 date and time format.API developers will be storing it as UTC in DB and they will be returning the date and time format in UTC format.