Trigger.io: iOS 9 iPad Multitasking error - ios

UPDATE: This problem is now solved by using the latest version of Trigger.io
This question is about how to get around the ITMS-90475 error using Trigger.io (and not xcode).
After the release of iOS 9, i get the following error when submitting an app to the App Store that is built using Trigger.io/Forge:
ERROR ITMS-90475: "Invalid Bundle. iPad Multitasking support requires launch story board in bundle
I am developing on linux, and not using xcode to upload my app. From other stackoverflow answers (e.g. this: https://stackoverflow.com/a/32563605/1030104) I see one solution is to disable multitasking support using xcode.
Does anyone know whether this is possible to do using only Trigger.io and not xcode?

According to this answer, your bundle should be valid if you deactivate multitasking for your app. Add this to your Info.plist:
<key>UIRequiresFullScreen</key>
<string>YES</string>
As you're using Trigger.io, this means you have to edit the Info.plist file in between forge build and forge package either programatically (as part of your build process) or by editing the file manually.

For your target, check Requires Full Screen on the General Page:

try adding the bellow code to the info.plist
<key>UIRequiresFullScreen</key>
<true/>

Related

Add a key named FacebookClientToken to your Info.plist, and add your client token as its value while running Flutter app in IOS

I am getting errors while running my app in Xcode / iOS via Android Studio. The app is working on Android devices but on iOS, it's freezing in Splash Screen.
So, I have to try many things to solve this error. Finally, I solve this & the answer is below.
A major change in Xcode & iOS Development in Flutter is that info.plist you have to add some more information for Facebook Authentication. According to Facebook's documentation, I need to add the following to info.plist:
<key>FacebookAppID</key>
<string>3088*******</string>
<key>FacebookClientToken</key>. //You have to add this key
<string>3088986********</string> // And client token value from facebook developer page
This will solve my issue. while running the app in iOS Xcode & Mac. Hope This will solve your issue too.

Flutter iOS 14.0 build error: Failed to register observatory port with mDNS

I am implementing a mobile app using Flutter. When I try to run the app on iOS real device from Xcode, I get this error:
[VERBOSE-2:FlutterObservatoryPublisher.mm(115)] Failed to register observatory port with mDNS.
The app runs fine as long as the device is connected to the Mac and running from Xcode. But when I try to open it from the device Home Screen directly, it crashes.
This issue happens on iOS 14.0 and higher. It works fine on iOS 13.x.
add this property info.plist
<key>NSBonjourServices</key>
<array>
<string>_dartobservatory._tcp</string>
</array>
I was able to fix it. This is how I did it.
For you to fix this error. open the iPhone simulator then run your flutter project. then go to System Preferences > Security & Privacy > General Tab. You need to give permission to iproxy(I can't remember the file name but you need to give that file permission to run). After it has successfully run on your simulator. Plug your iPhone follow the steps again.
I debug an (object-c based) flutter project, I like to launch it in Xcode, I find it more fast launching app in Xcode than 'flutter run' command in terminal. then I like to 'flutter attach' to it for hot reload.
I encountered this error very often.
It seems to touch the AppDelegate.m file forcing it to be re-compiled can fix this problem....
Flutter Official Documentation
According the Flutter official documentation:
On iOS 14 and higher, enable the Dart multicast DNS service in the Debug version of your app...
One way to do this is to maintain a separate copy of your app’s Info.plist per build configuration.
Rename your app’s Info.plist to Info-Debug.plist. Make a copy of it called Info-Release.plist and add it to your Xcode project.
In Info-Debug.plist only add the key NSBonjourServices and set the value to an array with the string _dartobservatory._tcp. Note Xcode will display this as “Bonjour services”.
In your target’s build settings, change the Info.plist File (INFOPLIST_FILE) setting path from path/to/Info.plist to path/to/Info-$(CONFIGURATION).plist.
It's a few days I'm dealing (without a solution) with this problem.
If you have any useful information, here you can share it (or, maybe, find it).
At the moment, I'm working on a workaround, that I will share in that thread ASAP.
Here is the original documentation
On iOS 14 and higher, enable the Dart multicast DNS service in the Debug version of your app to add debugging functionalities such as hot-reload and DevTools via flutter attach.
In Info.plist only add the key NSBonjourServices and set the value to an array with the string _dartobservatory._tcp. Note Xcode will display this as “Bonjour services”.
Optionally, add the key NSLocalNetworkUsageDescription set to your desired customized permission dialog text.
The original documentation mentions that this shouldn't be used in the Release version and also provides some instructions how to enable only for Debug releases.
Warning: This service must not be enabled in the Release version of your app, or you may experience App Store rejections.

How to turn off "Requires Full Screen" option in iOS using Cordova 6?

When you create an application using Cordova 6, then build it for iOS, you will see that if you open the project properties on XCode, the option "Requires full screen" is enabled:
This is very troublesome because it prevents the app from "multitasking" on iOS (you cannot split the screen with your app open), as mentioned in [CB-9161] Support iPad multitasking in iOS 9:
Just want to mention, the fix (2) also needs to update the project's
info plist file to indicate the app does not require the full screen
as shown below
<key>UIRequiresFullScreen</key>
<false/>
In previous versions of Cordova, you were able to control this option using the FullScreen preference. However this no longer has an effect on iOS. The recommended alternative way is to use the cordova-plugin-statusbar plugin. But this does not provide any option to turn off full screen and the other options offered by the plugin do not allow multitasking either.
Question: how do you turn off the "Requires full screen" option from your Cordova 6 project (meaning: without having to manually update the XCode project after building for iOS)?
I would use the Cordova Custom Config plugin
With that plugin, you can pretty much change anything on the plist or manifestfile via the config.xml
So in your case, after installing the plugin, just add:
<config-file parent="UIRequiresFullScreen" platform="ios" target="*-Info.plist">
<false/>
</config-file>
in your config.xml

Error while submitting ipa onto AppStore

I'm working on a libgdx project and using robovm to try and deploy my project on iOS. I've build an ipa using the robovm tool in eclipse.
While submitting the ipa using Application Loader, I get the below error:
Invalid Bundle. iPad Multitasking support requires launch story board in bundle BundleNameHere
Invalid Bundle. iPad Multitasking support requires these orientations: 'UIInterfaceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown...etc
On doing some research I understand these can be done away with by checking an option in Xcode for Requires Full Screen. However, I am unsure how to handle this in libgdx.
I am assuming that I need to do some additional settings in my libgdx/robovm project that I've missed.
Can anyone point out the required settings, please?
Thanks in advance
Since you are using RoboVM you need to edit the info.plist.xml file. As per Bunty Madan's answer you need to set:
<key>UIRequiresFullScreen</key>
<true/>
If this does not work, please supply your full info.plist.xml file (just redact any personal ID's if you use any)
By my experience this issue already . Did you uncheck the unnecessary orientations in plist for iPAD, UIInterfaceOrientationPortraitUpsideDown
This is because you need to specify how your iOS app is supposed to handle multitasking on iPad.
For now if your app is not going to support the multitasking feature just check requireFullScreen option in project setting.
else for making direct entry into plisthere is the ket for that.
<key>UIRequiresFullScreen</key><true/>
And also please validate your LaunchImage storyboard or image whatever you using.
Try this, hope it will help!

WatchKit App won't compile: "error: WatchKit Extension doesn't contain any WatchKit apps"

There are several posts on this issue but none of the proposed solutions work in my case. I am trying to integrate the WatchKit into a simple, sample app (I've tried a couple now) by following the instructions provided by Apple. When I compile I get the following error message:
"error: WatchKit Extension doesn't contain any WatchKit apps. Verify
that the value of WKWatchKitApp in your WatchKit App's Info.plist is
set to YES."
I have successfully compiled and run the Apple Watch "Catalog" example so I know things are working from an iPhone to Watch perspective. It seems like something is not right when I try to integrate with an existing app.
I have seen the posts here on this topic (e.g. WatchKit app wont run on simulator) but none of the fixes work in my case; the bundle IDs all appear to be correct. Note I am trying to compile and run on an iPhone 6 not on the simulator.
Any suggestions?
This error occurred for me when I changed the bundle id of my main iOS App.
This is what I did in the project explorer
Under WatchApp --> plist
WKCompanionAppBundleIdentifier ==> Give the id of the iOS App (com.xxxx.appname)
Under WatchApp Extension --> plist
NSExtension-->NSExtensionAttributes-->WKAppBundleIdentifier ==> Give the id of your watchkit app (eg: com.xxxx.appname.watchkitapp)
this fixed the error for me.
I ran into this problem on XCode Version 10.2 (10E125), i realizes when i changed WatchkitApp Bundle identifier one key in watchkitapp extension did not changed and stayed as old bundle identifier.
the path to plist: /Users/.../YourXcodeProjectFolder/Project/YourWatchkitExtensionFolder/info.plist
the problem occurd here:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>WKAppBundleIdentifier</key>
<string>com.applecode.water.watchkit</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.watchkit</string>
</dict>
the key WKAppBundleIdentifier was made the problem, so i changed it by my self.
I noticed this on Xcode version 8.2.1. Here is how I fixed it.
Go to "WatchKit App" -> Build Settings -> Packaging -> Product Name
Change it so any string different from current string. Agreed that it is a bizarre solution as called in the link below.
Source: https://blogofpuneet.wordpress.com/2015/05/02/xcode-build-error-watchkit-extension-doesnt-contain-any-watchkit-apps-verify-that-the-value-of-wkwatchkitapp-in-your-watchkit-apps-info-plist-is-set-to-yes/
Main reasons to this error,
1 Incorrect watch app bundle id in watchkit extension plist file.
Missing dependancy of watchapp.app in watchkit extension target.
Apple document with catalag example may help
https://developer.apple.com/library/ios/technotes/tn2410/_index.html
Below settings worked for me
In Main App Info.plist
Bundle identifier:com.domain.WatchKit-table
In Watchkit App Info.plist
WKCompanionAppBundleIdentifier:com.domain.WatchKit-table
Bundle identifier:com.domain.WatchKit-table.watchkitapp
WatchKit Extension Info.plist
NSExtension>NSExtensionAttributes>WKAppBundleIdentifier:com.domain.WatchKit-table.watchkitapp
Bundle identifier:com.domain.WatchKit-table.watchkitapp.watchkitextension
Note: my bundle id has * as the third component.
WatchKit-table is my project name
I noticed this with xcode 10.0 after changing the build number.
Cleaning the build folder, closing xcode, and re-opening worked for me.
In my case I had problem with building of the extension library. In fact it was not built and I had two errors:
1. From linker about absense of the extension library.
2. From Xcode about "missing" NSExtensionPointIdentifier key.
Fix of linking error also fixed this message.
I'm using Xamarin and Visual Studio (on the PC). I had this issue, but none of the fixes above worked. Much like the XCode fix, however, restarting Visual Studio turned out to be the answer. /sigh

Resources