WatchKit XCODE 6.3 ISSUE - ios

I have a problem with WatchKit in XCODE 6.3 i can't build my app.
Xcode tell me
error: WatchKit apps must have a deployment target equal to iOS 8.2 (was 8.3).
Do someone knows something about this issue ?

Your iOS app can target versions less that 8.2, but the WatchKit app and WatchKit extension must target iOS 8.2 (or later I'm assuming). Please make sure you're satisfying those requirements.
See this Apple Developer Forums link for more info.

I also had the same issue. It was actually a bug in Xcode 6.3. For some reason Xcode wanted deployment target of WatchKit App (and Not our app target) to be exactly 8.2
Changing "iOS Deployment Target" field in build settings of Watchkit app target to 8.2 as mentioned here solved the issue.

I suspect it to be a bug of Xcode 6.3, it generally appears if we add a target for watch app in a project which have previously deployment target less than 8.2 . To resolve the issue, you can change your deployment target for all the individual targets of your project (watch kit extension and iOS app) as 8.2, clean the project, restart the Xcode, hope your problem will be resolved.

Related

iOS Watch app fails to install - WatchKit 1.0 apps are no longer installable on this watchOS version

I have added Watch App target for existing iOS app but I have problem to install it on watch simulator. It always fails with this message
This app could not be installed at this time.
Domain: IXUserPresentableErrorDomain
Code: 1
Failure Reason: Could not install at this time.
Recovery Suggestion: WatchKit 1.0 apps are no longer installable on this watchOS version.
--
WatchKit 1.0 apps are no longer installable on this watchOS version.
Domain: MIInstallerErrorDomain
Code: 133
User Info: {
FunctionName = "-[MIInstallableBundle _isValidWatchKitApp:withVersion:installableSigningInfo:error:]";
LegacyErrorString = UnsupportedWatchKitVersion;
SourceFileLine = 683;
}
--
System Information
macOS Version 10.15.4 (Build 19E287)
Xcode 11.4.1 (16137)
I have tried to create new sample app and it works fine. I compared both watch apps settings and they are same. Any idea what can be issue? Thanks
Found solution, which is totally unrelated to error message.
I changed Valid architectures in Build settings to $(ARCHS_STANDARD) for all targets.
In my case it was the different deployment target for the "WatchKit App" & "WatchKit Extension".
EDIT
I finally found a solution by creating the project from scratch. Moved all files into the new project from the old one.
I just realized the WatchOS deployment target is empty after creating the watch target. It is under the project settings, not the target settings.
Nevertheless, setting the target did not help me, maybe will help you.
Updated fix -> Watch App Target
This solution worked for me try this out,
Refer : https://stackoverflow.com/a/74947725/9805273

This iMessage application is missing its required iMessage app extension

Using Xcode 8.0, running stickers app on iPhone (with iOS 10.0.2) gives me this error:
This iMessage application is missing its required iMessage app extension
It runs fine on simulator. What am I doing wrong? I'm using Xcode 8.1 Beta .
Please check if your deployment target is less than your device iOS version. If you are running Xcode Beta with deployment target 10.1, your device must be at least on same beta version. Reduce your deployment target to 10.0 otherwise.
Please make sure that the deployment target in your Xcode 8 is less than or equal to your device iOS version. You need to change the deployment target in both the "Project" and "Targets" in your Xcode to make a successful build.

Add Apple Watch to iOS app that has deployment target IOS 7

When I try to add Apple Watch to my project that support IOS 7+, I get an error that in order to add Apple Watch deployment target should be minimum 8.2 When I checked instagram, it provides Apple Watch support and they support IOS 7 also. How can I add Apple Watch and at the same time run app on IOS 7 devices also.
Your deployment target can be iOS 7.0, but you'll have to build your app using the iOS 8.2 SDK or higher.
I think you are confused between Deployment Target and Build SDK.
You can select the Deployment Target to iOS7 +
And you can also Build it using iOS 8.2 SDK
Just select the Deployment Target like this :
And the Architecture to iOS 8.2 or 8.3
You should have some deprecated warnings.
deployment target must be 8.2 for the apple watch app target and apple watch extention.
And make sure that the Valid Architectures have arm64 for all watch target.
Found solution to the problem. It was actually a bug in Xcode 6.3. For some reason Xcode wanted deployment target of WatchKit App (and Not our app target) to be exactly 8.2
Changing "iOS Deployment Target" field in build settings of Watchkit app target to 8.2 as mentioned here solved the issue.

Apple Watch app installation issue - NSExtensionPointIdentifier

I'm trying to install an app with WatchKit App and WatchKit Extension onto an iOS8.1 phone, from Xcode 6.2.
I have the Deployment Target set at 8.1
and the Base SDK at 8.2.
I get this error:
This app contains an app extension that specifies an extension
point identifier that is not supported on this version of iOS
for the value of the NSExtensionPointIdentifier key in its Info.plist
I've seen some similar questions but not found a solution that works. Is there a way to programmatically handle the lower iOS version?
To answer this (using #LoVo's comment) - I fixed the issue by changing the deployment target to 8.2 in the Extension's Build Settings (not in the main app's build settings).
The main app's deployment target can be set at a lower deployment target, mine is now 7.0.

Ineligible Devices section appeared in Xcode 6.x.x

After installing Xcode 6 my devices moved to greyed-out section Ineligible Devices and I can't select them as deploy target:
Update:
This error occurs in all versions of Xcode 6.x.x.
There are so many different reasons causing this problem
Check this solution list for more details.
With the release of Xcode 6.3.1, check first the Update 5
Verify that "iOS Deployment Target" is <= the version of your iDevice.
You find this option in "Build Settings" tab when you click on a target of your project in Xcode.
Then if does not work, try to restart Xcode. Sometimes we have to restart the Mac and iPhone/iPad. Take a look at the Updates below before restarting Xcode
Update: in Yosemite, Xcode 6.0.1 does not support iOS 8.1, you have to update to Xcode 6.1 if you want to debug on iOS 8.1 device, or you will probably have the same problem as described in the topic
Update 2: Xcode Beta 6.3 does not support iOS 8.2 (and also 8.1 - thanks #steveb). You won't see your device in deploy target list. I don't know if other versions are supported.
Update 3. Use Xcode 6.2 instead of Xcode 6.3 beta in order to debug with a device running iOS 8.2
Updated 4 : for Xcode 6.3 (and eventually 6.3 beta if someone use it :) ), if you have this problem, just go to Product > Destination to select your device. Even though it says your device is ineligible, it will still allow you to select it. If your device version is >= target version, the build should work. It must be a bug for Xcode 6.3 in debug with iOS 8.3 (or maybe other iOS version) (thanks #einfach).
Update 5: Apple released Xcode 6.3.1 that fix the issue of ineligible device. If you have this problem with Xcode 6.3, upgrade to XCode 6.3.1
From Release Notes (Xcode 6.3.1):
Fixed: Devices previously listed as "ineligible for running”
erroneously are listed correctly. (20121178)
There is a lot of options (10 23 29 answers for this question!), that can cause this error. And no one is 100% solve this issue. Here is summarise of all solutions.
First of all:
0. Update to latest Xcode version
Most of the reasons, that cause this problem fixed in Xcode version 6.3.1 (6D1002 published April 21, 2015)
List of solutions in order frequency of occurrence:
The most likely solution::
In Xcode status go to: Menu bar-> Product -> Destination and find your device. It will be listed under Ineligible section
Select your device. After you will be able to build and deploy to device! (thanks, #joshstaiger)
If it doesn't work:
iOS Deployment Target should be <= of the version of your device.
You find this option in Build Settings tab when you click on a target of your project in Xcode.
If version is correct - try to restart Mac and iPhone/iPad simultaneously. It resolve this issue in most cases! (thanks, #HoaParis)
Finally if either doesn't work - try to do this magic actions:
switch iOS Deployment Target to 8.1
restart Xcode
switch back to desired version.
Other problems, that cause this issue:
Xcode Beta 6.3 does not support iOS 8.2 (and also 8.1). You won't see your iDevice in deploy target list.
Use Xcode 6.2 instead of Xcode 6.3 beta in order to debug with an iDevice iOS 8.2
Xcode 6.3 requires Unity 4.6.4
If you're using an older Unity version (e.g. 4.6.3) you'll always get your devices in the Ineligible Devices section (thanks, #d4rk)
Also it appears in case of changing name of Xcode project. The fix it - create a new scheme by selecting Manage Schemes > (+) button. (thanks, #dale-moore)
Beta to Release upgrade of Xcode can require upgrading iOS or watchOS from beta to release version. For example, when switching from Xcode 8 beta 6 to Xcode 8 release, watchOS 3 beta is listed as unsupported.
Everyone should note that there seems to be a bug in XCode 6.3 (Beta and GM) that is aggravating this problem.
I have iOS 8.3 installed on my device. Setting the build target to iOS <= 8.3 did not help. Nor did any of the other solutions posted.
What worked for me:
Go to the Product Menu > Destination and select your device. It will be listed under "Ineligible", but you will still be able to select it. After doing this, I was able to build and deploy to my device.
I had a similar issue and for me I had upgraded to iOS8 and also changed the name of my Xcode project. The fix for me was to create a new scheme by selecting Manage Schemes > (+) button.
After doing this, my list of devices returned.
What worked for me is to install XCode 6.1 (compatible with iOS 8.1)
Besides setting iOS Deployment Target to iOS 8.0, also restart your iOS8 iPhone/iPad. This did the trick for me.
You can try below solutions to run build in your device.
Restart your iOS device (If device is recently updated) and your Xcode.
Make Sure that in build settings "iOS Deployment Target" is <= the version of your iDevice.
Otherwise you can goto - Product > Destination, select your device which would be showing as ineligible device.You will be able to select your device and run your build.
I also came across that if you have the iOS 8.4 then your Xcode doesn't have the SDK for iOS 8.4 due to which devices show as ineligible. To solve this issue
Download Xcode 6.4
My iPhone has updated to iOS8.1. My Xcode version is 6.0.1, and my mac os version is 10.10. When I want to run app in my iPhone, there is a section named Ineligible Devices(OS Version). Then I update Xcode to 6.1 version, solved problem.
Part of Xcode 6.1 release note: Includes SDKS for OS X 10.10 Yosemite, OS X 10.9 Mavericks, and iOS 8.1.
That is, Xcode 6.0.x don't support iOS 8.1.
My solution was that I had recently upgraded my iOS device to 8.3 and Xcode still didn't recognize it. The fix was to simply upgrade Xcode to 6.3 :)
After trying the 2 answers above (changing deployment target and restarting my iOS device), what finally fixed it for me was restarting my Mac.
For iOS 9.1+ devices, the Xcode version should be upgraded to 7.1 (even 7.0x will not work)
I simply restarted my Mac and my iPhone 6 and the problem was solved. I never had to change my deployment target.
Changing your deployment target is not a good idea to solve this problem (it will change which iOS versions you support on the app store).
What I did is restart just Xcode and it was fixed.
I agree with txulu, changing the deployment target is a ridiculous idea. I need to support devices back at least one version, that is non-negotiable to me.
Restarting my iPhone 5 after updating to iOS 8.1 and Xcode to 6.1 worked for me.
Simply deploying to another device and then switching back to the former 'ineligible' device worked here.
(saved the hassle of restarting anything)
In my case I had to reattach device and when it asks press "Trust this computer", then my device appears available again in xCode
make sure the deployment target version in setting is lower or equal than the iphone version
if the deployment target is 7.1 but the iphone is 7.0.3
you will see that error message
Ran into the same issue, using Unity3D
=> Xcode 6.3 requires Unity 4.6.4
If you're using an older Unity version (e.g. 4.6.3) you'll always get your devices in the Ineligible Devices section
Upgrade XCode to ensure that it supports your current iOS version on device.
(In my case, my phone was on iOS 9.1.x) `but XCode version was 7, which supported iOS 9.0 devices)
I changed my deployment target to 7.1 the same as my iphone, and now I can run swift programs on it. It was on 8.0 and showed up as ineligible.
I set my "iOS Deployment Target" in "Project" and "Targets" from 7.1 to 8.0 and restarted Xcode (with "Quit") and it worked.
I can confirm that the answer it to upgrade Xcode to 6.1. If you are using Xcode 6.0.x you will not be able to select a device running 8.1. Your deployment targets and OS version should have nothing to do with this.
If your OS version is greater than 10.9.4 I would recommend this. First, un-attaching all devices. Download Xcode 6.1. After opening the new version of Xcode attach your device. You should be good to go.
Another good thing would be to look at the release notes. It's and easy read and gives you a general idea of what still needs to be fixed.
My iPad was 8.0, but i had deployment target set to 8.1. I changed the deployment target in build settings, and immediately, the ipad moved out of the "ineligible" category. (I am on Yosemite and XCode 6.1)
I'm using the 6.3 Xcode Beta. I had the same issue as above. I restarted my computer and phone but did not work. Simply went to the build target under build settings and changed build target to 8.1. I hope this is fixed in the next released. Make sure that after you change your build setting - you need to restart your device and Xcode!
Please check you device iOS version and your Xcode application build target version. This might be causing the issue.
My answer, perhaps listed already but i did not notice, was simple: I deleted the app in question from the target itself, then fired up Xcode and the target was then available. And yes, i tried most of the other suggestions, and was resorting to activating the target from the Product menu, but that was getting tedious.
If you have a chance to run any project on the 'ineligible' device from other Mac with Xcode, try it and then reconnect the device to your Mac (without restarting Xcode/Mac).
For me, after doing that, the 'ineligible device' section disappears and my device returns to the normal status.
Hope it helps for someone.
Fixed in Xcode version 6.3.1 (6D1002) published April 21, 2015.
At least the problem magically went away for me after installing this Xcode version.
Tried all possible Updates, with Xcode 6.3, iOS 8.3 and OSX 10.10.3, but didn't got a permanent solution.
Kudos to skywinder,the first option worked!
For most people the cause of the problem is probably mismatch between Xcode, device version and app target version.
If versions are not a problem for you, most likely is that the device (iPhone/iPad) has been used with another Mac to copy apps to. This happens particularly more with a team environment where an iDevice can be used between team members. Xcode knows some other developer's Mac has connected to this device, it will show up as "Ineligible". But the previous Mac that connected to it, it will show up as normal.
The quickest work around is as shown by joshstaiger among others:
Go to Xcode ->Product->Destination
Select the ineligible device as target. It should work.

Resources