How to NOT deliver AppleWatch part of iOS app - ios

We have a client using our source code. This project includes Apple Watch, but they do not want to build that into their app yet. They removed the Embed App Extensions. They were able to submit to the App Store, but then received an email:
We have discovered one or more issues with your recent delivery for
"XXX". To process your delivery, the following issues must be
corrected: Invalid WatchKit Support - The bundle contains an invalid
implementation of WatchKit. The app may have been built or signed with
non-compliant or pre-release tools. Visit developer.apple.com for more
information. Once these issues have been corrected, you can then
redeliver the corrected binary. Regards, The App Store team
What is the minimum modifications to do to a project that will not include the Apple Watch component, so that it is there for when they want to add it later?

I haven't seen a setting that could be added to info.plist.
Build just the iPhone app and not the watch app by using the correct Scheme in Xcode. Schemes are how you can control which targets to build in Xcode.
When the watch kit target was added, a scheme was created for building both the watch app and the mobile app.
When exporting app for release use just the mobile app scheme that is there and does not include the watch os target.
Scheme editor doc from apple:
https://developer.apple.com/library/mac/recipes/xcode_help-scheme_editor/Articles/SchemeDialog.html

Related

Deep linking for IOS in Xamarin From

I'm a xamarin developer who isn't very familiar with the xamarin framework. I have a project where I want to use deep linking for a single payment gateway application (MobilePay). I finished the Android version, but I'm not sure how to apply it to the iOS version. Could you please provide me some advice?
For this ,you can check document Application Indexing and Deep Linking.
On the iOS platform, ensure that your iOS platform project sets the Entitlements.plist file as the custom entitlements file for signing the bundle.
To use iOS Universal Links:
Add an Associated Domains entitlement to your app, with the applinks
key, including all the domains your app will support.
Add an Apple App Site Association file to your website.
Add the applinks key to the Apple App Site Association file.
For more information, see Allowing Apps and Websites to Link to Your Content
on developer.apple.com.
Note:
Xamarin.Forms application indexing and deep linking functionality is only available on the iOS and Android platforms, and requires a minimum of iOS 9 and API 23 respectively.

macOS Catalyst Application not showing up in iTunes/App Store Connect Build Options

I have created a macOS application from an already existing iOS application. I checked the checkbox to enable macOS support and it added the sandbox entitlement just like the documentation said.
In the developer's page I also see that macOS support is enabled.
My iOS app appears in iTunes Connect and passes reviews. So far everything seems to be great.
My Catalyst app isn't so lucky. No builds show up under Activity.
How do I get my build to show up in iTunes Connect? Do I have to submit the macOS app differently than my regular iOS/iPad app in Xcode Organizer? I am happy to provide any other information to help solve this.
You have to make a separate archive for the macOS version and then upload that separate archive from the Organizer. To create the archive, make sure you select My Mac as the destination. The Organizer will show your iOS app and your Mac apps separately.
This is covered in part in the WWDC 2019 #235 session.

Unable to upload app to iTunes connect. WatchKit 1 issue?

I have just tried to submit a build of my app to iTunes connect and I am unable to via Xcode. Via Application loader the app will upload but then I receive an email stating the binary is invalid due to invalid watchkit support.
Invalid WatchKit Support - The WatchKitSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.
The application contains a watch os1 app which has been in the app for over a year without much update. The application has been updated several times since the watch app was added without any issues.
I have a strong feeling this is related to the upcoming requirement for watchOS Apps.
Starting June 1, 2016, all new watchOS apps submitted to the App Store must be native apps built with the watchOS 2 SDK or later.
However it is more than one day early... Is anyone else experiencing this?

WatchKit - iOS App Bundle Contains 2 WatchKit App Binaries

When I build my iOS app for the app store and run the validation, I see that the embedded binaries and entitlements section contains two instances of my watchkit app. How is this happening? Has anyone else faced this problem?
The entitlements I use are for keychain sharing and app group sharing.
If any more information is needed, I'll be glad to provide it. When I build an enterprise version of this app and distribute it to my team, only one WatchKit app is installed. Should this be OK to submit to Apple then?

Device specific build settings for "app store release" and "development/debug release"?

I am currently developing an app that makes use of the String Augmented Reality SDK demo release (License Description), and I have merged the SDK with my own code and running on my own iPad (4th Gen).
The weird problem I am having is that whenever I get to the section of the app where the SDK is being used, it complains my app is an app store release and my SDK's license doesn't support it. But I am only testing on my own device and I am not building the app for the app store at all. In fact, I belong to an enterprise license group that does not support app store releases and only for on device testing.
If I use another iOS device (iPad Mini) provisioned with the same profile/license connected to the same computer. The app works completely fine.
Is there a setting either in Xcode build settings or on a specific device itself that states whether an app is for app store release or not?
UPDATE: Figured this out, the provisioning profile will need to be imported to both the Xcode resource library and imported specifically to the device itself. The SDK must be checking some special setting where it cannot detect the library provisioning profile.
Make sure to sign the debug settings of the target with your development provisioning profile and not your distribution. One other thing you might try - don't code sign the release settings:

Resources