What does the iOS Simulator’s “Motion Control” menu item do? - ios

In the iOS Simulator that ships with Xcode 5, there is a menu item Window → Motion Control. Clicking it seems to have no effect. Does anyone know what it does? Is it related to either the M7 coprocessor on recent iOS devices, or the “Switch Control” accessibility feature?

I can’t be sure what it does, but I disassembled the iOS Simulator MainMenu.nib using NibUnlocker, and that menu item sends a method called -showMotionControl: to the GuiController class. My best guess is that it is related to an Apple internal feature that never shipped. Perhaps a way to simulate gyro and/or accelerometer values?

This menu item was only visible in early beta versions of Xcode 5.1 and has been dropped in Xcode 5.1 beta 4.
So I presume that this feature won't be shipped with the final version of Xcode 5.1 and that's why we never got to use it.

Related

iOS Simulator 8.1 and 8.2 Translucency Bug with UITabBar?

Is there any known Bug regarding the iOS Simulator and UITabBar for iOS 8.1 and 8.2? Today I noticed during testing that text heavily shines through the UITabBar when running in the 8.1 and 8.2 Simulators, while other iOS versions work flawlessly.
I want to make sure there's no additional work needed, as the iOS 8 UINavigationBar translucent color drawing issues immediately came to my mind.
Demo Setup
Create fresh Tabbed App (using ObjC or Swift)
Delete the First View and add a UITableViewContoller with dummy Static Cells
Results
Run the application, on iOS 8.1 and 8.2 Simulators the text shines through, on iOS 8.3 and above everything is working as expected.
Not related to Simulator Scaling, tested. Using a late 2013 rMBP with discrete GPU, El Capitan 10.11.2 and Xcode 7.2 (7C68). Working fine on device running iOS 9.
Question: I don't have any iOS 8.x devices around anymore, can somebody please confirm (i.e. from memory) if that's simulator only or an OS bug? Or point to a rdar?
Edit: Verified that it's not related to Swift, also happens with ObjC.
#maddy: Thanks for fixing the Tags!
Edit: Probably a regression related to this Bug with iOS 7.1: Tab bar background is missing on iOS 7.1 after presenting and dismissing a view controller
Cheers,
Frederik
Many issues that are seen in the simulator are not simulator bugs but rather OS bugs that the simulator is revealing.
In this particular case, I think the issue is that there should be a blur getting applied to that layer behind the tab bar. It may be the case that you have turned on the "Low Quality" option in the "Graphics Quality Override" (Debug menu). Try turning that back to "Default" as that should cause all effects to be applied.

different, visual appearances of same binary app installed on same iOS version

Recently, I have released a new version iPhone app, but as the following pictures, the back button of pages and the general button respectively have difference appearances in spite of the same iOS version(v8.4)
I must admit that I do not have deep understanding about iPhone app, and my iPhone app has been built on the Xamarin platform.
Does anyone know why this is occurred?
Back button
general button
Seems like the one device has button shapes turned on. This is an accessibility feature. If you can, check Settings → Accessibility → Button Shapes on that device.

Xcode 7 Beta warnings: Interface Orientations and Launch Storyboard

I opened my project in Xcode 7 beta and I am getting the following warnings which I do not get in Xcode 6:
All interface orientations must be supported unless the app requires
full screen.
A launch storyboard or xib must be provided unless the app requires
full screen.
The app uses Portrait orientation for devices only, and I have it set that way. I also have storyboards for both iphone and ipad interfaces. I can't determine why I am getting these warnings. Is this an Xcode 7 beta bug?
This warning is new for iOS 9 since it supports resizable apps with multi-window support. Previously, apps would be auto-scaled to new devices which had different hardware display resolutions to those in the launch image (which is basically how iOS detects the supported interface resolutions). Now, apps which support multi-window must define the resolutions they support by including a launch image or storyboard for all device screen types.
Unless you are re-writing your app to support multi-window, you will be requiring 'Full screen'. This is a hint to iOS that you do not support multi-window, and basically makes iOS 9 work like previous versions in this regard.
So, if you are submitting an app update for iOS 9, and you do not support multi-window, all you have to do is to go to your Project Target settings, select General, and under 'Deployment Info' look for the tick box called 'Requires Full Screen'. Tick this and the warnings will disappear.
It is certainly not a bug. If this warning is present, then your app may have trouble during submission. Not sure about that, because I haven't submitted an app with iOS 9 GM Seed yet, but I'm certainly going to tick the box :-)
Just go to your target,click "General" tab,find the "Deployment Info" section,check the "Requires full screen". :)
It's so easy,right?
BTW, this is not the best solution. There will be more and more better solutions. But when I answer this question, I only thought how to kill the warnings. I didn't explain why do this but how to solve this. Xcode beta version might change it's features, so I just provide a "workaround" at that early time. So if you think my solution is a workaround, please vote up for other better answers. But this is not the reason for voting down. Thanks :)
This is because Apple has added multi task ability in iOS 9. All you need to tell Xcode is that your app require full screen.
Add the UIRequiresFullScreen key to your Xcode project’s Info.plist file and apply the Boolean value YES.
To read more about it in general.
https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html
I just saw this error and after reading the comments, I surely want to support iPad and multi-window use. This is as simple as checking Device Orientation options "Landscape Left" and "Landscape Right" and making sure that my UI supports these.
Best way I found to test for good multi-window support is to use the resizable simulators, or better in my opinion, use the iPad Pro in XCode 7.1 and actually activate the multi-window feature by dragging from the right. After taking these steps, I my app supports these features and I'm able to quickly see what I need to update or optimize to fully support them.
By default the Device Orientation only enables Portrait, Landscape Left, and Landscape Right. You need to enable the Upside Down as well.
“Clean Build Folder” and build again
I got the All interface orientations must be supported unless the app requires full screen. message today in Xcode 7.3.1, seemingly for no reason, no related change that I made.
I do have a LaunchScreen.storyboard
I have not checked Requires full screen.
I tried the usual maneuver when Xcode leaves me puzzled about some-new-error-for-no-good-reason:
Hold down Option key while clicking the Product menu.
Choose Clean Build Folder (not Clean).
Choose Product > Build.
No more problem. After a few more build-and-run sessions, the error message has yet to re-appear.
Have you provided a "Launch Storyboard" for your app? Or have you just provided static images for the various sizes.
Check here:
https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html
Set UIRequiresFullScreen to YES in Info.plist. And tick Requires full screen.

keep the look of my ios app like it is in ios6 rather than ios7

I have an ios app which was developed during ios5 to ios6
after updating my iPhone to ios7, there's something wrong with it.
For example, I had a textfield in an alertView which was supposed to input some password of the users, but in ios7 the interactors change a lot and the textfield is gone.
Also lots of other UI elements change greatly including switches, buttons, etc.
The UI of my app is not really flat style and it does not fit ios7 looks.
I'm gonna update my app to fix the problem of alertView,
but is there anyway that I can keep the interactors(buttons, switches, alertView, etc.) as the same as ios6?
Thanks a lot!
If you build your app with pre-Xcode 5, then it will retain the look and feel of iOS 6, even on iOS 7. But if you build your app with Xcode 5, then it will have the new iOS 7 look and feel when run on iOS 7.
However, you specifically mention UIAlertView, which is an exception. Even for existing apps that haven't been rebuilt with Xcode 5, the UIAlertView will always appear with the iOS 7 look when run on iOS 7. There's nothing you can do to have the old UIAlertView when on iOS 7.
From the sound of your question, it sounds like you're manually adding your own text field to a UIAlertView. You should never manually add views to a UIAlertView. Apple does not support this, and it appears that it is broken with iOS 7 anyway. If you look at the documentation for UIAlertView, you'll see that you can make it display a text field, including one for password input, that should fit your needs. So I would suggest updating your app to properly use the built-in text field functionality of UIAlertView.
As for keeping your app with the old look and feel, starting February 1st, Apple will stop accepting apps into the app store that are built with an Xcode version earlier than Xcode 5. So all new app submissions at that point will have the new iOS 7 look and feel when run on iOS 7. So whether you like it or not, you're going to have to deal with revising your UI to fit in with the look and feel of iOS 7.
You can do it through setting the Base SDK of your project target as iOS 6.1.
To do this , first go to Xcode 4 (Xcode.app), right click->Show Package Contents -> Contents->Developer->Platforms->iPhoneOS.platform->Developer->SDKs and copy the iPhoneOS6.1.sdk
Then go to Xcode5(Xcode.app),right click->Show Package Contents -> Contents->Developer->Platforms->iPhoneOS.platform->Developer->SDKs and paste the copied iPhoneOS6.1.sdk
So its looks like as below,
Then Quit Xcode5 and re-open Xcode5 ->Project Target->Build Settings->Base SDK and set it as iOS6.1
You can select the desired simulators from Xcode.
If its not availble, go to Xcode->Preferences->Downloads and download the simulators

How can I choose an iOS simulator as the destination in Xcode?

I am an iOS noob. I had a project running on the iPhone simulator in Xcode 4.4. To resolve a different issue, I un-installed 4.4 and then installed 4.5.1. Now when I try to run my project on the simulator I get an error "Xcode cannot run using the selected device: No provisioned iOS devices are available with a compatible iOS version. Connect an iOS device with a recent enough version of iOS to run your application or choose an iOS simulator as the destination."
How do I choose an iOS simulator as the destination?
Where do I click?
There should be a menu in the top left region of the toolbar section of the IDE. It should have a run button, a stop button, and then the name of your app and a label saying IOS Device. Click view-->show toolbar if you don't see it. Click on IOS Device and you should get a drop down menu of devices. The simulator should be in that list.
This should do it, its very simple actually
Just in case anyone finds this helpful --
Sometimes your version of xCode doesn't support the deployment targets.
My iOS simulator did not show up as a destination until I set the deployment target down to 7.0 (it seems like 7.1 may not be supported by xCode 5.0, but only 5.1 [not confirmed]).
Hope that helps if anyone stumbles across it.
For me the problem was that the selection in the toolbar only shows up for a certain width of the XCode window
I was able to add devices to the Simulators list by clicking on Window->Devices (Shift+Command+2), and clicking on the + at the bottom left to add Simulators.
After you click on Create, the device(s) will show up
Make sure to set Supported Platforms correctly
I had the same issue. The simulator would run a different device than chosen in the size field under "Simulated Matrix".
I dug around and found in Xcode's menu: Product/Destination. screenshot I was then able to run the simulator for the correct size.
Hope this helps !!

Resources