iPhone ad hoc distribution results in wrong orientation - iphone

When I created an ad-hoc provision to test my app remotely, the landscape setting malfunctions. The app is supposed to be landscape with the home button on the right. When I create an adhoc provision for one of my devices here, it works fine. One of my devices a coworker is using remotely, however, shows the app in portrait mode (so the right half is cut off). I suspected my plist info file wasn't carrying over but that wasn't it as I set the orientation value outright through code and it still didn't work. I'm a bit befuddled why it breaks on one device and not another. Any suggestions?

I discovered the cause!
Apparently, the misbehaving ipod touch had not been setup for mail. My app had invoked some in-app email functionality and induced the system dialog asking the user to setup mail. This in turn caused some trouble that apparently resulted in subviews being automatically rotated to the orientation of the app. I do not know if this is a problem specific to the foundation code of my engine, but hopefully if this trips up someone in the future, this can help.

Related

WKExtension.sharedExtension().openSystemURL() prompting when it shouldn't

I am developing an extension of an iPhone App for Apple Watch (written in Swift running WatchOS2.2, Xcode 7.3, testing on a physical device)
I am running into an issue where I expect no prompt/confirmation on the Apple Watch when calling the tel schema for the following function:
WKExtension.sharedExtension().openSystemURL(NSURL(string:"tel:1231231234"))
I am not calling the telprompt function as my understanding is that this is not supported directly by Apple however it seems to be behaving as if it is telprompt. Interestingly enough, telprompt doesn't work.
I am expecting this to directly call the phone number without the prompt on the Apple Watch, however it is first prompting the user displaying a Cancel button on the top left, the number in the middle of the screen, and a Call button at the bottom. This also doesn't appear to be picking up the localization on the system (french for example) so it is always displaying Cancel and Call in English.
Image of Cancel, Number, and Call being prompted when French in the system language
Has anyone else encountered this issue? I haven't found much talk about it on the web. Or is this a known issues? Again, I don't see any bugs reported for it.
Fix Found for the Localization - See Below
Interestingly enough I was able to get the localization working.
The fix for it was that my Target for my Watch and WatchExtension needed to be checked off for my Launch Images (or splash screen images, or commonly left as "default.png"). Previously my Launch Images were for the app Target only.
I have no idea why the localization seemed to be require my launch images be added to the Watch and WatchExtension targets.
This did not resolve the prompting as it still took place - however since it was at least presenting the correct language this was good for us.

Sandbox Game Center Turn Event Notifications Not Consistent

I'm making a turn-based game, using the Game Center Turn-Based Gaming functionality. I'm using the simulator and my iPhone to test notifications of turn events. The results are very inconsistent. About 75% of the time when I make a move on the simulator and pass the turn I don't get any notifications on my iPhone. It seems that this function doesn't get called:
handleTurnEventForMatch:didBecomeActive:
I set the GKEventHandlerDelegate in the code that authenticates the local user and it seems to be set correctly. The fact that I get notifications once in a while suggests that this isn't where the problem lies.
Does anyone have any idea what could be the problem here? Could this be a problem with the Sandbox Game Center Server? Do they limit the amount of notifications you can send in a short amount of time or something like that?
Edit: I just found some posts of people experiencing the same problem, but no solution. No very recent posts though. Any updates?
Edit2: I also find that after a move, when I open the GKTurnBasedMatchmakerViewController on the other device it still says that it's the turn of the other player. When I close and reopen it the information is correct. Also, when I open the game GKTurnBasedMatchmakerViewController when it's still showing incorrect information, it does gives me the correct match object with the updated information. Could this be related in any way?
I thought I would share my solution with you, in the hopes that it is the same problem you are experiencing. As you can see from my comment to your question, I was having the same issue as you. It turned out that my settings in iTunes Connect were the culprit, unbeknownst to me. What you should check for is that you still have Game Center enabled in BOTH places that iTunes Connect requires. First, after going into "Manage my Apps" in iTunes Connect, select your app and on the right menu, and click "Manage Game Center". Make sure this is currently enabled. I would even recommend disabling it, and re-enabling it again for good measure.
In addition (and this is what I was missing), you must enable it in one more place. Go back to the previous screen when you first select the app. The top right is where you can select Manage Game Center, but we are looking on the bottom in the "Versions" section. Click the View Details button for your app, and make sure the Game Center button is enabled near the bottom. Again, I would disable and re-enable it here as well. Give it about 10 minutes, clear all your open turns and matches from the Game Center app (this might be an optional step), and build & run again. Hopefully, you will receive turn notifications properly again.
I got the same problem. However when i tested it on multiple devices it was working fine... May be some problem with the simulator

iPad/iPhone Screen Mirror

I'm trying to figure out a way to mirror an iPad screen to other iPads. This doesn't seem to be supported on the platform though.
Basically, a teacher would have an iPad, then the students would have iPads and see everything that is happening on the teachers screen, but on their screens.
Thoughts?
I have been attempting to find a solution to this problem myself. I have not found any apps that can mirror exactly what is happening on another IPAD, but some come close.
RabbleBrowser and Ideaflight both had potential. Ideaflight appears to be more for business. RabbleBrowser appears to allow the mirroring, except it only works as a browser and a file/picture mirroring.
Both iPads are linked to the same wifi and when you join a session, they will mirror the iPad that started session. Also allows chat (controlled by session starter).
It does NOT continue to mirror if you move out of browser and into another app however. I had dreams of leading a class through a a lesson on google earth, but no go .:(
Another option is attaching a laptop to a projector. Then you download Airserver on the laptop. Go to the menu bar at bottom of iPad and turn on AirPlay. The laptop will mirror the iPad perfectly and project it! It's wireless and works well. I tried the HDMI connector to laptop but it gives a poor quality, shaky image.
Hope they allow mirroring in future updates. The capability is there, don't know why they don't! Guess trying to sell more appletv!
A similar question was asked on the Apple forum (https://discussions.apple.com/thread/3118281?start=0&tstart=0), and the following app seemed to help them or answer their question.
Have a look at Replicate Pro on the app store:
http://itunes.apple.com/us/app/replicate-pro-for-ipad/id363286515?mt=8
One feature listed in the notes:
Share files between two iPads/iPhones that are running this app. (Pro
version only)
I'm not sure if this will cover multiple devices or simply between two, but it may be worth a look. Sadly, the only way to try would be to spend $5.99.
You'll need to create an application for the student iPad that emulates the screen of the teachers iPad. I would suggest that, although i dont know if its possible, the teacher somehow starts up and app that emulates their entire iPad. Meaning, from within the app named "teacher share" (or whatever it is), they can access the music, settings, notes and other apps found on their ipad. Then that information could be sent over a network to the students.
Nearpod is an app that will allow you to mirror a presentation on several iPads. I have had up to 9 at one time. Through the Nearpod program you can make a presentation similar to PowerPoint, and also incorporate interactive questions, which can be multiple choice, short answer, and even drawings. The only drawback is the full version costs $10/month. The free version is still good, you are just limited on the size of the presentation.
After doing lots of research, I found one app which shares iPhone device into another iPhone device. Really great logic they have applied for screen mirroring.
No idea about detailed how they have implemented but after installing and checking the app I came to know that I think they have used iPhone Screen Recording and broadcasting it on to their server and then on another device they are syncing from the same URL.
OliOli a free and simple screen sharing app for iOS.
iOS App: https://itunes.apple.com/us/app/olioli-screen-sharing/id1382253993?mt=8
WebSite: https://olioli.io/

iPhone locked in portrait mode

My question is similar to this thread
which says to lock the iPhone in portrait mode and doesnot allow it to go to landscape mode.
This can be done easily but my concern is I want to lock all the applications running to the portrait mode in iOS 4.
That is if I have locked the orientation mode and has minimised my application then the none of the application in iPhone shall go to landscape mode.
So my question is
Is it possible
if yes then how? Any ideas or link will be really appreciated.
Edit: I know this is already available in iOs 4.0 but its hard to find also this is just for information purpose.
For those who disagree: check out the link
Thanks in advance...
Edit: Finally as per everyones suggestion I think it is not at all possible to lock other applications orientation through our application.
How would you feel if any 3rd application is accesing the orientation of your application and that of device.
So Its all handled out by Apple itself. Also as told no application is allowed to effect the system variable..
So in case you succeed in finding out the hack for this thing... Then also your application is gonna rejected by apple...
Still all the best for ur research :P
Sorry, but you can't lock the orientation via public APIs, and if you are going to use private APIs, Apple will never approve your app.
An iPhone app cant affect system wide variables such as screen lock. If you could, then there would be nothing keeping you from accessing all the other data on the device as well. Sorry, but if you want your app approved by Apple, you'll have to give up on this feature.

iAd error "Ad inventory unavailable" (Apple Sample code also not working)

I tried to include an ADBannerView into my application. But the ADBannerView always ends up in bannerView:didFailToReceiveAdWithError:. I'm not able to see any test ad.
I've also downloaded the iAd Sample Code from Apples DevCenter but I end up with the same error.
11/5/10 5:46:33 PM BasicAdBanner[12072] {
ADInternalErrorCode = 3;
NSLocalizedFailureReason = "Ad inventory unavailable";
}
Can someone please explain to me how I can get iAd to work in the Simulator and on my testing device?
No, I believe it was generated by Apple's server so that developers can make correction for the error.
Here is the reference from Apple.
Same here, using sdk 4.1 and unable to launch any iAd test app for the past couple of days.
I tried many things but nothing worked. Guess it's wrong on Apple side this time.
I had this problem too - an iPad would serve test iAds fine, but an iPhone would not. After a bit of investigation it seems to be related to the clock settings on the device, which sounds implausible I know! The automatic time on the iPhone was a few minutes slow, and the iPad a few minutes fast, as compared with the real time (as determined from the automatic time setting on the Mac).
Manually setting the time on the iPhone caused test iAds to start working - but only if the clock was correct to within a few seconds. So make sure to scroll the minutes wheel and exit the time picker just as the true time ticks over to the next minute. Actually it seems that it could be out by a few minutes as long as the seconds were about right, which is probably why the iPad worked ok despite being 5 minutes fast.
As to why the automatic time setting on the iPhone and iPad are so far out from the real time, that's another problem to solve. For now I'll leave my iPhone on manual time setting, at least while testing iAds.
This happened to me once - and then another time - it all worked properly. My app is released now, and works fine. So in short - maybe it a transient problem on Apple's side - or a local network problem on yours. Try again - see if it ever works. BTW - at one point I was able to get the sample iAd on my simulator but nothing on the iPhone - I released it anyway and never hand an issue.
I was testing out the iAdInterstialSuite sample project from Apple's developer site and I encountered this same error message on my iPhone 6 Plus.
I discovered how to fix it in this instance though. Apparently since that sample project hasn't been updated for the iPhone 6 / 6 Plus screen sizes, it fails because of the subsequent screen scaling the device is doing to the app. (I'm guessing the ad server knows the type of device is requesting the ad, and thus would expect the target view dimensions to be a very specific size.)
When I set a launch screen XIB for the project, so the app was then rendered at the proper scale on the screen, the test ads started working straight away. :)