tvOS support for iBeacons - uikit

Does tvOS support all of the same iBeacon functionalities as iOS? My biggest concern is CoreLocation related functionality.

Not all of the same functionality is supported, CoreLocation Changes for Objective-C.
Removed CLBeacon
Removed CLBeacon.accuracy
Removed CLBeacon.major
Removed CLBeacon.minor
Removed CLBeacon.proximity
Removed CLBeacon.proximityUUID
Removed CLBeacon.rssi
Removed CLBeaconRegion
Removed -[CLBeaconRegion initWithProximityUUID:identifier:]
Removed -[CLBeaconRegion initWithProximityUUID:major:identifier:]
Removed -[CLBeaconRegion initWithProximityUUID:major:minor:identifier:]
Removed CLBeaconRegion.major
Removed CLBeaconRegion.minor
Removed CLBeaconRegion.notifyEntryStateOnDisplay
Removed -[CLBeaconRegion peripheralDataWithMeasuredPower:]
Removed CLBeaconRegion.proximityUUID
For a complete list of iOS API's that are available for tvOS refer to: iOS 9.0 to tvOS 9.0 API Differences

Related

WARNING ITMS-90901: "Missing full-screen support for the latest iPad mini display

WARNING ITMS-90901: "Missing full-screen support for the latest iPad mini display. The “ExpoKitApp.app” bundle includes UIRequiresFullScreen=YES in the Info.plist or supports only a subset of UISupportedInterfaceOrientations, and is built with the 14.1 SDK. To take advantage of the full screen size, recompile with Xcode 13 and the SDK for iPadOS 15 or later."
We have two options here
UIRequiresFullScreen=YES to your app’s Info.plist in order to keep your app full screen during multitasking, you’ll need to recompile with Xcode 13 and the SDK for iPadOS 15
Don’t include this key in your Info.plist file if your app supports iPad multitasking and is capable of running alongside other apps. If this key is absent, or is present and set to NO, the system lets your app share the screen with other apps. Can work with Xcode 12.
You've to recompile your code in XCode 13+
and for further details please visit Apple's News and Update
i had the same issue, i sorted by upgrading to latest expo sdk and including this in the app.json expo.ios.infoPlist {"UIRequiresFullScreen": true}
I was completely upgrading my macOS(12.2) and Xcode. Currently, no warning message showing.
As the message says, recompile with Xcode 13.

iOS app upgraded from iOS8 SDK to 9, doesn't receive notifications

I recently updated an app from iOS8 (swift 1.2) to iOS9, swift 2.2 on Xcode 7.3.
The app works fine, except that notifications are no longer received.
If I use Xcode 6.3 to build my iOS8 branch (master), the app when deployed to my phone receives notifications just fine.
If I use Xcode 7.3 to build my iOS9 branch, the app does not receive notifications.
I've gone over the usual suspects. I'm not getting any errors when registering for notifications, and my code signing and provisioning profiles all seem to be in order.
My registration is standard boilerplate:
UIApplication.sharedApplication().registerForRemoteNotifications()
let userNotificationSettings = UIUserNotificationSettings(forTypes: .Alert, categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(userNotificationSettings)
Is there some difference in notification registration on iOS9? I can't seem to find any differences when googling, but I'm open to any pointers.
Thanks,
SO: THE PLOT THICKENS
For sanity checking, I switched back to my master branch, which uses swift 1.2 and iOS8 SDK, and built and redeployed to an older iPhone running iOS8. And, horrifyingly, notifications are not being received anymore
Meanwhile, if I re-install the last TestFlight build I made, using the same codebase, notifications work.
I'm beginning to wonder if there's some issue here from my having Xcode 6.3 and Xcode 7.3 running on the same machine, maybe mucking up some aspect of code-signing? Is that plausible?

Xcode 7 supporting watch OS2 with iOS8 and iOS9 support

Can I provide support with only watchOS2 app having iOS8 support ?
I am supporting iOS8 and iOS9 both in my iOS app.
I need to add watch app with WatchOS2.
User who installs in iOS9 devices are able to use watchOS2 app, but people who are using iOS8 app can't use my watch app, is this possible ?
I am confused at this point because I have to provide support for iOS8 and iOS9.
I need to take a decision quickly, any help is appreciated.
You will need to have iOS 9 for WatchOS 2 to work.
Once you update OS of your watch to Watch OS 2.0 and after it, if you try it to pair with iOS 8 version iPhone, then it will not work and Apple Watch app would advise you that your version of iOS is out of date. It would not allow you to proceed with pairing until you had updated your iPhone software to iOS 9 (Whatever latest version of iOS 9.0).
If you want to support Watch OS 1 and Watch OS 2 then you have to set separate target for both of them.

Not able to turn on HealthKit capability

I'm trying to experiment with HealthKit on both iOS 9 and WatchOs 2.0, but when I try to turn on HealthKit in the project's Capabilities page, I get the following error message:
Link HealthKit.framework
The framework 'HealthKit.framework' was not found in the SDK for this
target.
The same happens for both the iOS App and the WatchKit App Extension.
I tried to manually find the framework in Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library, but it's not there either.
I'm using XCode 7.0 Beta 4.
Any tips?
Thanks!
So, I excluded Xcode and re-downloaded it.
HealthKit was suddenly there again.
Go figures..

iOS 3.x support in Xcode 4

Is it possible to write apps that support iOS 3.x versions using Xcode 4? If so, how? And does Apple have any official recommendations on app backwards-compatibility?
To get your app successfully run in iOS 3.x device, follow these steps (Xcode 4.2):
Click on your project name, select your Target and under "Build Settings"
a) Set "iOS development target" (under "Deployment") to 3.0
b). Add "armv6" to list of "Architectures" (under "Architectures").
c) Set "Other Linker Flags" (under "Linking") to "-weak-lSystem".
In your Info.plist file remove value of "armv7" from "Required device capabilities" (UIRequiredDeviceCapabilities).
In your code:
a). Do not use userInterfaceIdiom. If you need to know, what device is it (iPhone or iPad), see How does one get UI_USER_INTERFACE_IDIOM() to work with iPhone OS SDK < 3.2.
b) Do not use window.rootViewController. Instead use [window addSubview: self.mainViewController.view]; to add your main controller's view to window.
Click on your project name, select your Target and under "Build Phases" / "Link Binary With Libraries" set "UIKit.framework" to "Optional". Also set to optional any extra framework, which is not available in iOS 3. For example, if you're using iAd or Twitter frameworks they should be set to optional. Check availability of extra framework in your code before use.
When run on real device, compile app against last version of SDK. To do so, select second item from "Scheme" drop down (otherwise you'll get compile error related to your optional SDKs):
Yes, you can develop apps that support previous iOS versions with the current iOS SDK.
For official recommendations, see Apple's SDK Compatibility Guide.
The version of Xcode that you use isn't related to the version of iOS that your app can support. To choose the version of iOS that your app supports, simply change the iOS deployment target in your project settings. Then just be sure not to use any APIs from versions later than that.
to be sure, you can use Xcode 4 for targeting iOS 3.x as a deployment target, but you will not be able to simulate your program on a iOS 3.x SDK simulator. So you are pretty on your own (i.e., if you use any iOS 4.x-only feature, you will not find out it until you test on a physical device).
You need an older version of Xcode to debug against an older simulated SDK.

Resources