Tried to submit my app to iTunes build using Visual Studio for Mac (version 7.3.2), iOS native (not Xamarin.Form). App got rejected with the following message:
Where can the user find the Call Kit features within your app. If you do not intend to use the Call Kit API in your app, please remove it and re-upload your app for review.
I know there is another post talking about a similar issue, but the solution doesn't help my case since I have configured the linker to "Link Framework SDKs Only". Yes, I rebuild the same app twice using this setting and got rejected with the same message.
Then I use otool to check my app package and realize there are a bunch of frameworks / APIs still remain in the app, here are the list:
/System/Library/Frameworks/Security.framework/Security (compatibility version 1.0.0, current version 58286.32.2)
/System/Library/Frameworks/AVFoundation.framework/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3698.33.6)
/System/Library/Frameworks/WebKit.framework/WebKit (compatibility version 1.0.0, current version 604.4.7)
/System/Library/Frameworks/HomeKit.framework/HomeKit (compatibility version 1.0.0, current version 475.2.40)
/System/Library/Frameworks/AVKit.framework/AVKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/PassKit.framework/PassKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CoreBluetooth.framework/CoreBluetooth (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CoreSpotlight.framework/CoreSpotlight (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/MediaPlayer.framework/MediaPlayer (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1450.14.0)
/System/Library/Frameworks/CoreVideo.framework/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
/System/Library/Frameworks/MessageUI.framework/MessageUI (compatibility version 1.0.0, current version 3445.5.17)
/System/Library/Frameworks/SceneKit.framework/SceneKit (compatibility version 1.0.0, current version 432.3.0)
/System/Library/Frameworks/Metal.framework/Metal (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/GameKit.framework/GameKit (compatibility version 1.0.0, current version 559.3.0)
/System/Library/Frameworks/EventKit.framework/EventKit (compatibility version 1.0.0, current version 100.0.0)
/System/Library/Frameworks/SpriteKit.framework/SpriteKit (compatibility version 1.0.0, current version 2.0.0)
/System/Library/Frameworks/AddressBook.framework/AddressBook (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AddressBookUI.framework/AddressBookUI (compatibility version 1.0.0, current version 33.0.0)
/System/Library/Frameworks/iAd.framework/iAd (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CloudKit.framework/CloudKit (compatibility version 1.0.0, current version 735.0.0)
/System/Library/Frameworks/EventKitUI.framework/EventKitUI (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Contacts.framework/Contacts (compatibility version 0.0.0, current version 0.0.0)
/System/Library/Frameworks/ExternalAccessory.framework/ExternalAccessory (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/QuartzCore.framework/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics (compatibility version 64.0.0, current version 1129.2.1)
/System/Library/Frameworks/CoreLocation.framework/CoreLocation (compatibility version 1.0.0, current version 2237.0.22)
/System/Library/Frameworks/PhotosUI.framework/PhotosUI (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/PushKit.framework/PushKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/QuickLook.framework/QuickLook (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/ReplayKit.framework/ReplayKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/ContactsUI.framework/ContactsUI (compatibility version 1.0.0, current version 33.0.0)
/System/Library/Frameworks/SafariServices.framework/SafariServices (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/MapKit.framework/MapKit (compatibility version 1.0.0, current version 14.0.0)
/System/Library/Frameworks/CoreMedia.framework/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/OpenGLES.framework/OpenGLES (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/MultipeerConnectivity.framework/MultipeerConnectivity (compatibility version 1.0.0, current version 150.0.0)
/System/Library/Frameworks/NetworkExtension.framework/NetworkExtension (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration (compatibility version 1.0.0, current version 963.30.1)
/System/Library/Frameworks/WatchConnectivity.framework/WatchConnectivity (compatibility version 1.0.0, current version 159.0.0)
/System/Library/Frameworks/MetalKit.framework/MetalKit (compatibility version 1.0.0, current version 98.3.0)
/System/Library/Frameworks/CoreData.framework/CoreData (compatibility version 1.0.0, current version 849.2.0)
/System/Library/Frameworks/GameplayKit.framework/GameplayKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/GLKit.framework/GLKit (compatibility version 1.0.0, current version 92.0.0)
/System/Library/Frameworks/StoreKit.framework/StoreKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CallKit.framework/CallKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/IOSurface.framework/IOSurface (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/VideoSubscriberAccount.framework/VideoSubscriberAccount (compatibility version 1.0.0, current version 238.1.0)
/System/Library/Frameworks/Intents.framework/Intents (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Speech.framework/Speech (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/UserNotifications.framework/UserNotifications (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1450.14.0)
/System/Library/Frameworks/CFNetwork.framework/CFNetwork (compatibility version 1.0.0, current version 893.14.0)
/usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 274.6.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.1)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony (compatibility version 1.0.0, current version 0.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
Anyone have any idea how I can resolve this? I tried "Link All", the result is similar, unused framework still shown when listed using the otool.
Thanks.
Edit #1
I have make sure the linker setting is passed to the back-end. Here are a part of the output file:
MtouchArch = ARMv7, ARM64
MtouchDebug = False
MtouchEnableBitcode = False
MtouchEnableGenericValueTypeSharing = True
MtouchEnableSGenConc = False
MtouchExtraArgs =
MtouchFastDev = False
MtouchFloat32 = False
MtouchHttpClientHandler = HttpClientHandler
MtouchLink = SdkOnly
MtouchLinkerDumpDependencies = False
MtouchNoSymbolStrip = False
MtouchProfiling = False
MtouchProjectDirectory = /Volumes/BOOTCAMP/Shared/Projects/Bugko/Source/Bugko/Bugko.XIOS
MtouchTargetsEnabled = true
MtouchUseLlvm = true
MtouchUseThumb = False
MtouchVerbosity = 4
Edit #2
I have run the same build with linker off and compare with linker set to SDK only. Then run the otool. They show exactly the same list.