While developing with all my tools up to date, I noticed that on 8.3 and lower devices my extension seems to have disappeared and not show at all in the list from which users can enable it. I extracted the contents of the app file and the extension does get compiled and packaged.
On a few devices we decided to update, the extension immediately started showing up on iOS 8.4 devices (post update with no app reinstall required).
What's up with this? Has anyone else run into this issue? Is there anything I can do to fix it?
NB: I have to mention, the only thing that changed was updating our dev tools. The extension project was untouched. Dev environment is using Xamarin.
Make sure that the CFBundleDisplayName and CFBundleName values are both set in your Info.plist for the Share Extension. If my memory serves correctly, I've run into the same issue before and that's how I managed solved it.
After checking with Xamarin, the project template does not set the deployment target in the info.plist by default (or it might have gotten lost with updates to the tooling).
If the "Deployment Target" is not set, the extension will only show on devices running the latest os version that was supported at the time the app was packaged.
Related
I am wondering how to handle running two versions of xcode on a mac, or if it is even possible.
I currently have a number of production apps that I service with the release xcode7. I must have this available for uploading app versions to the app store.
I also have a ipod touch device I have the ios9.1 beta running, and want to test and write code for the new os.
However, xcode7 says I can't test ios 9.1 beta, that I have to install xcode beta. Also, I've read that you can't push apps to the app store with the beta. So how can you maintain current apps, as well as, build new functionality?
Maybe I have missed something? some setting that allows me to toggle between these xcodes? or will the mac allow me to have two different versions of XCode installed? I assumed it would just override the other.
I don't want to buy another mac, or to partition the one I have, or keep downloading and installing different versions on all the devices, if I don't have to.
Any information would be helpful, how does everyone else handle this?
You simply need to rename them in /Applications; for example:
Xcode 6.4: /Applications/Xcode6.app
Xcode 7.0: /Applications/Xcode7.app
Xcode 7.1 beta: /Application/Xcode-beta.app (the default anyway).
They will co-exist perfectly happily, however if you do command line builds, you'll want to use xcode-select to select the version you want to use when using xcodebuild or clang, etc.
The betas generally come with the name Xcode-beta.app (this is true for the iOS 9.1 beta), so you can just download it and copy it to the /Applications folder as usual.
In the rare cases where that's not true, you can just rename Xcode.
You can install both versions. They will happily co-exist in your /Applications folder. One will be called Xcode, the other will be called Xcode-Beta
I recently submitted an app to the app store and it was approved, however it appears that I'm almost the only one that can download it. I've asked family and friends to download it on their devices but they just get a message saying something along the lines of
"iOS version 8.3 or later is required."
This is clearly a problem because it limits the amount of downloads, is there a way around this to allow users with almost any version of iOS to download the app?
I really appreciate any help, thank you!
You can change the iOS deployment target in your project build settings
Or set the deployment target of each target (general settings).
You should be able to lower down to 7.X with a Swift-written application.
Make sure you don't any API specific to iOS 8.X or that you handle those correctly.
In Xcode, click on your Xcode project and navigate to the General tab. Under Deployment Info, change your Deployment Target to the oldest OS version you would like to support. You must recompile and make sure to test on different OS versions, as you won't be able to call newer APIs if they don't exist yet in that iOS version.
I'm interested in adding a Watchkit Extension to my existing app already in the app store. I've done my research, followed some tutorials, and now am ready to actually implement.
The problem I'm having is, I can't seem to add a Watchkit App to my existing project and get it to run in the simulator. If I start a new project and do some tutorials or whatever, the Watchkit App runs fine. Adding to my existing project, I just get a black screen in the simulator window. Not even the status bar is present. http://i.imgur.com/kG7H06i.png
Only lead I have so far is: In the debug navigator, I get "Waiting to Attach" every time I try and launch the app. http://i.imgur.com/vYLfJN8.png
Any help on this would be appreciated. I reseting my simulators, tried deleting my simulators and then reinstalling. Double checked that bundle identifiers and versions match. Target for the WatchKit App and Extension are both set to 8.2 (I was getting an error setting to 8.3). Target on the main app is 6.0, but I tried bumping this up to 8.2 and had the same results.
Thanks!
EDIT: Before this is marked as a duplicate of How to run a WatchKit App, I do want to mention that I'm running the "Watchkit App" Scheme, and I do not have a status bar like in the window like he does.
Are you using iOS 8.2 simulator ?
I had similar error, switching to simulator with iOS 8.3 fixed it for me.
Check that your build target is the Watchkit App. I had it set to the main app so the main app was launching in the sim, but the watch app was blank.
referenced here.
How to run a WatchKit App
I am also running into a similar problem but not on the simulator but on the Apple Watch device. Try setting Skip Install to NO in the WatchKit App target settings
After working with Apple, it appears as if this was an issue with Xcode creating the target. Our app is several years old, and for some reason when creating any new target, the Wrapper Extension is set to "app" every time. This has caused us issues in the past with trying to add testing targets as well.
We were able to fix the issue by going to the Watchkit Extension target, and changing the Wrapper Extension from "app" to "appex". Make sure you leave the Watchkit App target to "app". We asked why Xcode wasn't doing this automatically for this particular project, and it's because the overall project target has the Wrapper Extension set. If you create a new project, you'll notice that Xcode now leaves this blank.
Hope this helps someone else.
Sometimes, restarting Xcode solves the problem.
Even if everything is configured correctly, it may take 20 seconds to attach the process to the debugger.
I tried everything but nothing helped. Then I backed up the watch app and watch extension folders. After that I removed the watch app and watch extension targets and created new targets. Then I restored the files from the backup. It's an awkward approach but it solved the "waiting to attach" problem.
Xcode 10.0; Swift 4.2; iOS 12.0
I had the same issue with Apple Watch simulator. What actually solved it was deleting the default Siri watch face from the Watch App on the iPhone simulator.
How do you correctly use Application Data bundles in Xcode 6? I exported a .xcappdata file from a device, added it to my workspace, and selected it in the Run Options of a scheme.
Whenever I try to run the simulator with iOS 8.0, I get the following error, even on repeated launches, manual launches, etc:
Application data package not copied to the Simulator
It appears you are running 'REDACTED.app' on the iPad Air Simulator for
the first time, and therefore do not yet have a data folder created.
The application data package will be installed the next time you run
your app in the Simulator.
Trying to use the simulator with iOS 7.1 crashes Xcode.
Does this feature just not work anymore with the changes made to the filesystem?
Tried again on Xcode Version 6.1.1 (6A2008a) and it (sometimes) crashes Xcode now, hopefully that means it will be get fixed soon...
I'm using Xcode 8.1 and when I tried to add the .xcappdata file Xcode crashed.
I solved it by cleaning the app and then I tried to add it in another target and it worked. Afterwards I tried to put it again in the target I wanted it in and it worked as well.
Unfortunately I'm not sure about which of these steps fixed it but I hope it to be useful to someone!
You can try to clean the Derived Data which contains all the intermediate build information like debug- and release-built targets. And you probably can select the Simulator, choose the iOS Simulator from the menu. Then, choose Reset Content and Setting.
Sometimes, it's just some bugs in the XCode. And I think Apple is handling that when your issue is marked by duplicate by them.
I have an iOS project that has several targets. Each target also has an embedded Today Extension.
All my build schemes have been created automatically, and recently refreshed.
However, when I try to Debug/Run my Today Extension on the actual device, Xcode deploys multiple apps/extensions to the device, not just the one in the selected Scheme.
For example, if I select this scheme:
...then not only is BusCheckerTodayExtension, and its containing app installed to the device and run, but also BusCheckerUKTodayExtension, BusCheckerWESTTodayExtension and both of their containing apps too.
Is this a bug to be reported in XCode or is this some obscure build/dependency setting that I've missed?
This was almost certainly a bug in Xcode and seems to be fixed in newer releases.