"AirLocate" sample code calibrate's option does not work - ios

I'm an iBeacon feature newbie and I'm running the AirLocate sample code here to configure an iOS device as an iBeacon device for learning and testing. As the "readme" file in the project says, I've launched the app on an iPhone 5 and an iPad 4, both running iOS 8. I've set one of them as target device by switching on the "Enable" switch in the "Configuration" option of the app, and I've chosen the "Calibration" option in the app in the other device. The target device is supposed to be displayed in the table of the calibration device, but I'm isplayed nothing.
I've swept the roles of both devices (target-calibration), but none of them seems to detect the other one.
What could I be missing?
Thanks

Here is a possible answer. I had developed my own app to configure iBeacons, but when I updated to iOS 8 I had to add this line of code to get it working
[self.locationManager requestWhenInUseAuthorization];
Now you can try add this line to AirLocate (if it does not have) and answer yes when asking to access your resources. Place this in a ViewController you access, otherwise won't get fired.
Another way could be to build your own app to handle iBeacons following tutorials or Apple's Doc, actually it's not such an effort.
There are for sure anyway other free apps, but I don't know, try to google.

Now it is working for iOS 8 after applying the changes described in this post

Related

Jailbroken detection failed with liberty lite

Recently faced a issue securing iOS Application with Jailbreak detection on OS 12.1 with Liberty Lite enabled
I have jailbreak detection in AppDelegate and initial ViewController where I test following
File existence for below paths
/Applications/Cydia.app
/private/var/stash
/private/var/stash
/private/var/tmr/stash
/private/var/lib/cydiar/stash
/private/var/mobile/Library/SBr/stash
/Library/MobileSubstratr/stash
/Library/MobileSubstrate/DynamicLibrr/stash
/Library/MobileSubstrate/DynamicLibrarr/stash
/System/Library/LaunchDaemonr/stash
/System/Library/LaunchDaemons/com.sar/stash
/var/car/stash
/var/lir/stash
/var/lir/stash
/var/lor/stash
/var/tmr/stash
/bin/bashr/stash
/bin/shr/stash
/usr/sr/stash
/usr/liber/stash
/usr/bir/stash
/usr/libexer/stash
/etc/ssr/stash
/etr/stash
I test if application canOpenURL Schema "cydia://package/com.example.package"
Write file to stringToWrite.write(toFile:"/private/photos.txt"
Liberty Lite is able to bypass all 3 checks and let run the application on a Jailbroken device, is there any other way I can detect such by passing tweaks(Liberty Lite) and stop the application from running on a Jailbroken device
Essentially, no.
Any form of jailbreak check can be relatively easily worked around and a motivated user can always make another tweak for whatever check you might be using at the time. Consider it similar to attempts to prevent cracks for different software, it's just a game of whack-a-mole where the developing side is losing.
I wrote an article about this some time ago if you're interested into details of why this can't work.
Checkout this library here. Liberty detection is managed to be detected with the method isInjectedWithDynamicLibrary().
I have personally tested, and it works with my app on iOS 12.1.2 (iPhone 7).

iOS app wake up with BLE not working as before on iOS9.3?

There are previous topics about waking up an application from the background with BLE advertisement (e.g. How to wake up iOS app with bluetooth signal (BLE), Android / iOS - BLE - wake up a terminated application when a BLE device connects).
However my question is not about that since we had this feature working fine up to iOS 9.2 included.
Coming iOS 9.3 the feature doesn't work as it used to work before, it seems that the terminated by user swiping off the application is not woken up. Nothing changed on the BLE advertisement originator.
After a recheck of various parameters and reading of Apple documentation, nothing springs to our minds. Neither Apple documentation mention any change, unless we missed something.
Have other people notice this issue? Are you aware of a solution?
We wrote to Apple and we are pending on an answer but maybe somebody here has the correct tip.
Many thanks in advance for the attention.
UPDATE: After more testing, it seems that only when the user swipes the application out the wake up doesn't work like it used to in iOS 9.2
Initial testing were more manual and gave us the impression that there was an underlying issue. However not sure why this change took place without any notification from Apple. - Above text was amended based on the update -
UPDATE 2: This issue is not present anymore in iOS 10.
It turns out after a reply from Apple that this is a (new) intended behaviour.
didEnterRegion/didExitRegion events stopped working from the background after update to 9.3
I have an app that has been working almost perfectly for the last 6 months, and after the update these events are no longer getting called. I started this app over last year when I heard about iOS9 coming out, and when I couldn't get the old one working, I started a new one using Swift instead.
After some time and a LOT of driving in and out of my Region, I got the app to work more reliably than it ever had before. I have several devices using the app, and when all of them updated to iOS9.3/9.3.1, the app stopped calling didEnterRegion/didExitRegion events completely.
I have a ticket open with Apple, but I am getting a lot of push back about the service, and that 9.3 didn't change background location at all.
My devices use AT&T of Verizon, we have tried wi-fi assist on and off, I even wiped a system, formatted the HD, installed El Capitan, and XCode 7.3, and it's hasn't helped.
I also found an issue with the Devices Tool, and when you download the Container, and open package, the Documents folder is empty. I'm not getting a warm fuzzy feeling for Apple right now, and I am sure someone is feeling my MEGA MIND WEDGIE at this moment.
Help....

Worklight - Geo location not working in background in iOS

I have implemented the Location services in android and it can continually get the device's position even when the application is in the background. However, when I tried it running in an iOS Simulator and iOS device, the device stops retrieving its location when I place the application in the background. I don't think this should be the behavior. Is there other settings needed to be configured for iOS? thank you very much in advance.
Per the discussion in the comments:
Make sure to also set the Geolocation permissions in the *-info.plist file in Xcode per the instructions in the training module (slides 21-22) and/or the user documentation.

iOS 8 and iBeacon - kCLErrorRegionMonitoringDenied

I have been working with iBeacons for the last few months. I have just recently updated to iOS8 Beta 1 and have found that region monitoring and ranging no longer works on my beacon apps.
It is being caused by permissions. I now get a kCLErrorRegionMonitoringDenied error returned when attempting to start region monitoring. This error corresponds to a user deselecting the location permissions for the app.
If I go into Settings>Privacy>Location Services I get some weird behaviour. Sometimes my app appears on this list with no setting chosen, and other times it doesn't appear on the list at all. If I manually change the setting to 'Allow' and then close Settings, then go back to Settings>Privacy>Location Services I have the same problem - the app might not appear on the list or the settings are not set.
This is obviously a bug in iOS8 beta, just wondering if anyone else has this problem and/or found a workaround?
For iBeacons in iOS8, you must use requestAlwaysAuthorization, not requestWhenInUseAuthorization
(via: http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/)
I don't know what the issue is, but I was having the same problem, I found that going back to Xcode before the beta solved my issue. I wish I could give a better answer than that, but I guess the problem might be somewhere in Xcode and not ios 8.
I actually did more research into this and it seems ios 8 requires some authorization setup before trying to use location services. This might help answer your question further. Here are some links to direct documentation that you might find useful.check out the requestWhenInUseAuthorization documentation on info plist key This should help keep you in Xcode 6 with ios 8. sorry if I wasn't more helpful I'm fairly new to ios development.

Lock iOS app in single app mode programmatically

Note : I don't want to submit this app to app store.
What i want to achieve :
I want simple app with one view having two button Lock and Unlock.
Lock - This button will lock device. Only this app's screen will show nothing else will be accessible even after restart same screen will show up. Home button, gestures will get disabled similar to single app mode.
Unlock - This will unlock device and switch to normal behaviour of device.
iOS :
I want this for iOS 4.3 and above.
I have checked following solutions, but these don't match my requirements
Configuration profile
Lock-down iPhone/iPod/iPad so it can only run one app
But it is manual (reboot device, open app which you want to run in single app mode). I want to do it programmatically the way i mentioned above through my app.
Guided access (iOS 6 and above)
How to lock down user to Single App mode in iOS 6, Programmatically?
I want it do for all os and programatically.
Is there any way to do this ? As i don't wan't to submit it to app store is there any private api, some hack for springboard to achieve this ?
Thanks in advance !!
As I know in iOS 7 there is a new feature which allow to do exactly what you want.
However, it's only applicable for iOS 7 (and I believe it's only applicable to a supervised devices).
1) You will need to install restriction configuration profile with autonomousSingleAppModePermittedAppIDs key (take a look here)
This is one time step and a user will need to manually accept this configuration profile.
There is another option to use MDM to install it silently, but it could be an overkill for you.
2) You should use API:
UIAccessibilityRequestGuidedAccessSession (to lock/unlock)
It is defined here
3) And most beautility part. All of it is officially document. So, you can even submit it to AppStore.
P.S. Why do you care about 4.3 or 5? They have tiny market share by now. Most likely even iOS 6 has below 20% market share already.
Update 1
Potentially, you can try to use API which sends clicks and keys (search for GSEvent in iPhone-privateapi tag). May be using these API's you can do triple home to toggle accessibility on and off.
If this work, I think you should be able to cover iOS 6. I am not sure whether both this API and triple home click were available prior that.
It looks like this private API is unaccessible anymore in iOS 7. So, probably you can ignore this idea.
Just wanted to write on this even though this is old as i needed to implement a similar solution and i got it working. The steps for me as follows and a note here is that this involves MDM and other specific steps.
My requirement was as follows. Each of the iPad at different locations has a set of apps installed.For ease of it lets assume each Dept. has their own apps. Participants open a app related to their dept. to take a test, the APP automatically Locks the iPad to single-app Mode and at the end of the test, it will unlock it self.
Supervise the iPad/iphone using the Apple Configurator.
Install the MDM related files ( Each MDM has its own set of instructions, usually involves downloading a profile).
Every MDM has a option of Single APP Mode or MultipleAppMode. Select the second option and add the app IDs to the list. (A single APP mode works pretty well with MDM's but i did not want the app to be locked to a single APP all the time).
I used the UIAccessibilityRequestGuidedAccessSession api to lock unlock the device from single app mode.
http://bobxcode.blogspot.com/2015/12/programmatically-implement-single-app.html
Thanks,
Bob
In MDM configuration, There is an option
autonomousSingleAppModePermittedAppIDs
Optional. Supervised only. If present, allows apps
identified by the bundle IDs listed in the array to
autonomously enter Single App Mode.
Availability: Available only in iOS 7.0 and later.
But this needs Supervised Device mode.

Resources