Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Submission] Fix all the selectors that apple warns about. #9268

Merged
merged 7 commits into from
Aug 14, 2020

Conversation

mandel-macaque
Copy link
Member

We have noticed the following message from Apple when performing
submissions with Xamarin.iOS:

ITMS-90338: Non-public API usage - The app references non-public
selectors in WcBc.iOS: behaviorTypes, convolutionState,
discoverAllContactUserInfosWithCompletionHandler:,
discoverAllContactsCompletionBlock,
discoverUserInfoWithEmailAddress:completionHandler:,
discoverUserInfoWithUserRecordID:completionHandler:,
discoverUserInfosCompletionBlock, displayContact, drawableResizesAsynchronously,
encodeToCommandBuffer:sourceImage:convolutionState:,
encodeToCommandBuffer:sourceImage:destinationImage:state:,
getProperty:onChannel:responseHandler:, hasProperty:onChannel:responseHandler:,
initWithEmailAddresses:userRecordIDs:, initWithMIDIEntity:dataReadyHandler:,
initWithZoneID:options:, initWithZoneID:subscriptionID:options:,
isPublicDatabase, mouseUpAction, newDrawable, propertyChangedCallback,
removeAllAppearanceStreams, replaceTextStorage:, retrieveConnectedPeripherals,
retrievePeripherals:, setDiscoverAllContactsCompletionBlock:,
setDiscoverUserInfosCompletionBlock:, setDrawableResizesAsynchronously:,
setEditedMask:, setMouseUpAction:, setMovieControlMode:,
setProperty:onChannel:responseHandler:, setPropertyChangedCallback:,
setSocketFamily:, setTemporaryAttributes:forCharacterRange:, setUserRecordIDs:,
sourceOffset, subscriptionOptions, takeBackgroundColorFrom:, takePasswordFrom:,
temporalAntialiasingEnabled, userRecordIDs. If method names in your source code
match the private Apple APIs listed above, altering your method names will help
prevent this app from being flagged in future submissions. In addition, note
that one or more of the above APIs may be located in a static library that was
included with your app. If so, they must be removed. For further information,
visit the Technical Support Information at http://developer.apple.com/support/technical/

All of them have been removed but without a break in the API excep
"initWithMIDIEntity:dataReadyHandler:" wich does look like an error on
Apples side.

Empty stubs are used as much as possible except on those cases in which
a handler is called or an output variable should be modified (buffer,
out param) to minimize the users surprise at runtime.

We have noticed the following message from Apple when performing
submissions with Xamarin.iOS:

> ITMS-90338: Non-public API usage - The app references non-public
> selectors in WcBc.iOS: behaviorTypes, convolutionState,
> discoverAllContactUserInfosWithCompletionHandler:,
> discoverAllContactsCompletionBlock,
> discoverUserInfoWithEmailAddress:completionHandler:,
> discoverUserInfoWithUserRecordID:completionHandler:,
> discoverUserInfosCompletionBlock, displayContact, drawableResizesAsynchronously,
> encodeToCommandBuffer:sourceImage:convolutionState:,
> encodeToCommandBuffer:sourceImage:destinationImage:state:,
> getProperty:onChannel:responseHandler:, hasProperty:onChannel:responseHandler:,
> initWithEmailAddresses:userRecordIDs:, initWithMIDIEntity:dataReadyHandler:,
> initWithZoneID:options:, initWithZoneID:subscriptionID:options:,
> isPublicDatabase, mouseUpAction, newDrawable, propertyChangedCallback,
> removeAllAppearanceStreams, replaceTextStorage:, retrieveConnectedPeripherals,
> retrievePeripherals:, setDiscoverAllContactsCompletionBlock:,
> setDiscoverUserInfosCompletionBlock:, setDrawableResizesAsynchronously:,
> setEditedMask:, setMouseUpAction:, setMovieControlMode:,
> setProperty:onChannel:responseHandler:, setPropertyChangedCallback:,
> setSocketFamily:, setTemporaryAttributes:forCharacterRange:, setUserRecordIDs:,
> sourceOffset, subscriptionOptions, takeBackgroundColorFrom:, takePasswordFrom:,
> temporalAntialiasingEnabled, userRecordIDs. If method names in your source code
> match the private Apple APIs listed above, altering your method names will help
> prevent this app from being flagged in future submissions. In addition, note
> that one or more of the above APIs may be located in a static library that was
> included with your app. If so, they must be removed. For further information,
> visit the Technical Support Information at http://developer.apple.com/support/technical/

All of them have been removed but without a break in the API excep
"initWithMIDIEntity:dataReadyHandler:" wich does look like an error on
Apples side.

Empty stubs are used as much as possible except on those cases in which
a handler is called or an output variable should be modified (buffer,
out param) to minimize the users surprise at runtime.
@mandel-macaque
Copy link
Member Author

I'm getting the following xtro issues:

/Applications/Xcode_11.6.0.app/Contents/Developer/usr/bin/make -j4 classify-ios classify-tvos classify-watchos classify-macos
mono64 --debug bin/Debug/xtro-sharpie.exe iphoneos13.6-arm64.pch ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/64bits/Xamarin.iOS.dll ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/OpenTK-1.0.dll
mono64 --debug bin/Debug/xtro-sharpie.exe appletvos13.4-arm64.pch ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.TVOS/Xamarin.TVOS.dll ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.TVOS/OpenTK-1.0.dll
mono64 --debug bin/Debug/xtro-sharpie.exe watchos6.2-armv7.pch ../../_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/32bits/Xamarin.WatchOS.dll
mono64 --debug bin/Debug/xtro-sharpie.exe macosx10.15-x86_64.pch ../../_mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/x86_64/mobile/Xamarin.Mac.dll
mono64 --debug xtro-sanity/bin/Debug/xtro-sanity.exe .
?unknown-entry? !incorrect-protocol-member! SCNSceneRenderer::isTemporalAntialiasingEnabled is REQUIRED and should be abstract in 'common-SceneKit.ignore'
?unknown-entry? !incorrect-protocol-member! SCNSceneRenderer::setTemporalAntialiasingEnabled: is REQUIRED and should be abstract in 'common-SceneKit.ignore'
?unknown-entry? !missing-null-allowed! 'System.Void PdfKit.PdfAnnotation::set_MouseUpAction(PdfKit.PdfAction)' is missing an [NullAllowed] on parameter #0 in 'macOS-PDFKit.ignore'
?unknown-entry? !missing-release-attribute-on-return-value! CoreAnimation.ICAMetalDrawable CoreAnimation.CAMetalLayer::CreateDrawable()'s selector's ('newDrawable') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. in 'macOS-CoreAnimation.ignore'
?unknown-entry? !missing-release-attribute-on-return-value! CoreAnimation.ICAMetalDrawable CoreAnimation.CAMetalLayer::CreateDrawable()'s selector's ('newDrawable') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. in 'tvOS-CoreAnimation.ignore'
?unknown-entry? !missing-release-attribute-on-return-value! CoreAnimation.ICAMetalDrawable CoreAnimation.CAMetalLayer::CreateDrawable()'s selector's ('newDrawable') Objective-C method family ('new') indicates that the native method returns a retained object, and as such a '[return: Release]' attribute is required. in 'iOS-CoreAnimation.ignore'
Sanity check failed (6)
make: *** [classify] Error 6

@mandel-macaque
Copy link
Member Author

Looks that we did not have any issues with submissions: https://gist.github.com/mandel-macaque/1da51e922bd75e4340a0491a1ea3b3e0

=> throw new NotSupportedException ();


[Obsolete ("Always throws NotSupportedException (). (not a public API).")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This hasn't been fixed.

src/scenekit.cs Show resolved Hide resolved
src/scenekit.cs Outdated
[Abstract] // this protocol existed before iOS 9 (or OSX 10.11) and we cannot add abstract members to it (breaking changes)
#endif
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[Export ("temporalAntialiasingEnabled")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src/pdfkit.cs Show resolved Hide resolved
src/metalperformanceshaders.cs Show resolved Hide resolved
@@ -216,17 +214,5 @@ interface MidiCISession

[NullAllowed, Export ("profileChangedCallback", ArgumentSemantic.Assign)]
MidiCIProfileChangedHandler ProfileChangedCallback { get; set; }

[Export ("hasProperty:onChannel:responseHandler:")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These show up in the headers.

Copy link
Member Author

@mandel-macaque mandel-macaque Aug 12, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yet submissions complain.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only ref I can find is when it was added. But nothing else.

src/coreanimation.cs Show resolved Hide resolved
[NoWatch]
[Deprecated (PlatformName.iOS, 10,0, message: "Use 'CKQuerySubscriptionOptions'.")]
[Deprecated (PlatformName.MacOSX, 10,12, message: "Use 'CKQuerySubscriptionOptions'.")]
[Export ("subscriptionOptions", ArgumentSemantic.UnsafeUnretained)]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still seems valid if you're targeting iOS 8 - 9.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The submission was complaining about this. Was not deleted due to the deprecation warning.

src/cloudkit.cs Show resolved Hide resolved
Copy link
Member

@rolfbjarne rolfbjarne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.

@monojenkins
Copy link
Collaborator

Build failure
Provisioning succeeded
Build succeeded
API Diff (from stable)
⚠️ API Diff (from PR only) (🔥 breaking changes 🔥)
ℹ️ Generator Diff (please review changes)
🔥 Test run failed 🔥

Test results

18 tests failed, 70 tests passed.

Failed tests

  • introspection/Mac Modern/Debug: Failed (Test run failed.)
  • xammac tests/Mac Modern/Debug: Failed (Test run failed.)
  • xammac tests/Mac Modern/Release: Failed (Test run failed.)
  • xammac tests/Mac Modern/Release (all optimizations): Failed (Test run failed.)
  • Xtro/Mac: BuildFailure
  • monotouch-test/iOS Unified 32-bits - simulator/Debug: Failed
  • monotouch-test/iOS Unified 32-bits - simulator/Debug (LinkSdk): Failed
  • monotouch-test/iOS Unified 32-bits - simulator/Debug (static registrar): Failed
  • monotouch-test/iOS Unified 32-bits - simulator/Release (all optimizations): Failed
  • monotouch-test/iOS Unified 64-bits - simulator/Debug: Failed
  • monotouch-test/iOS Unified 64-bits - simulator/Debug (LinkSdk): Failed
  • monotouch-test/iOS Unified 64-bits - simulator/Debug (static registrar): Failed
  • monotouch-test/iOS Unified 64-bits - simulator/Release (all optimizations): Failed
  • monotouch-test/tvOS - simulator/Debug: Failed
  • monotouch-test/tvOS - simulator/Debug (LinkSdk): Failed
  • monotouch-test/tvOS - simulator/Debug (static registrar): Failed
  • monotouch-test/tvOS - simulator/Release (all optimizations): Failed
  • monotouch-test/watchOS 32-bits - simulator/Debug: Failed Known issue: HE0038)

@dalexsoto
Copy link
Member

Hard to tell if everything is alright, push to origin I guess so it builds packages in case someone is on a hurry and maybe try again submission tests with this branch

Copy link
Contributor

@spouliot spouliot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

String content are minor.
However API Diff is reporting breaking changes. It should not for this type of change. Please review that.

public partial class CKContainer {

[iOS (8, 0), Mac (10, 10)]
[Obsolete ("Use 'DiscoverAllIdentities' instead. NotSupportedException'")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

too many different patterns in the PR

Use "Always throw a 'NotSupportedException'. Use 'X' instead."

i.e. start with the fact it won't work, then suggest alternative.

Starting with a suggestion might be discarded before reaching the not-working part, e.g. horizontal scrolling build warnings inside an IDE.

}

public partial class CKDiscoverUserInfosOperation {
[Obsolete ("Always throws NotSupportedException (). (not a public API).")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is close to an existing string "Always throw a 'NotSupportedException' (not a public API)." and this pattern is unlike others.

Having different string is bad since they can't be shared inside the assembly, leading to larger size apps. The linker can remove some but it's not always enabled (e.g. interpreter). I'll file an issue on this.


public partial class CAMetalLayer {

[Obsolete ("Always throw a 'NotSupportedException' (not a public API).")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that one is better 😸

@@ -33,6 +33,12 @@ public partial class CBMutableService {
}
}

public partial class CBCentralManager {

[Obsolete ("Empty stub. (not a public API).")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same, close but not identical to "Empty stub (not a public API)." (extra .)

@@ -30,28 +30,13 @@ public void ConnectPeripheral (CBPeripheral peripheral, PeripheralConnectionOpti
}

#if !TVOS && !WATCH
[Deprecated (PlatformName.iOS, 7, 0)]
[Obsoleted (PlatformName.iOS, 9, 0, message : "Use 'RetrievePeripheralsWithIdentifiers' instead.")]
[Obsolete ("Always throws NotSupportedException (). (not a public API).")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Obsolete code should be under #if !XAMCORE_4_0 so we don't carry those over when a breaking change happens

[Obsolete ("Empty stub. (not a public API).")]
public virtual MidiCIPropertyChangedHandler PropertyChangedCallback { get; set; }

[Obsolete ("Always throws NotSupportedException (). (not a public API).")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see comments above, they don't match existing strings


public partial class MPSCnnConvolutionState {

[Obsolete ("Empty stub. (not a public API).")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same (all above)

@mandel-macaque mandel-macaque marked this pull request as ready for review August 12, 2020 21:44
@mandel-macaque
Copy link
Member Author

@monojenkins
Copy link
Collaborator

Build failure
Provisioning succeeded
Build succeeded
API Diff (from stable)
⚠️ API Diff (from PR only) (🔥 breaking changes 🔥)
ℹ️ Generator Diff (please review changes)
🔥 Test run failed 🔥

Test results

17 tests failed, 71 tests passed.

Failed tests

  • xammac tests/Mac Modern/Debug: Failed
  • xammac tests/Mac Modern/Release: Failed
  • xammac tests/Mac Modern/Release (all optimizations): Failed
  • Xtro/Mac: BuildFailure
  • monotouch-test/iOS Unified 32-bits - simulator/Debug: Failed
  • monotouch-test/iOS Unified 32-bits - simulator/Debug (LinkSdk): Failed
  • monotouch-test/iOS Unified 32-bits - simulator/Debug (static registrar): Failed
  • monotouch-test/iOS Unified 32-bits - simulator/Release (all optimizations): Failed
  • monotouch-test/iOS Unified 64-bits - simulator/Debug: Failed
  • monotouch-test/iOS Unified 64-bits - simulator/Debug (LinkSdk): Failed
  • monotouch-test/iOS Unified 64-bits - simulator/Debug (static registrar): Failed
  • monotouch-test/iOS Unified 64-bits - simulator/Release (all optimizations): Failed
  • monotouch-test/tvOS - simulator/Debug: Failed
  • monotouch-test/tvOS - simulator/Debug (LinkSdk): Failed
  • monotouch-test/tvOS - simulator/Debug (static registrar): Failed
  • monotouch-test/tvOS - simulator/Release (all optimizations): Failed
  • monotouch-test/watchOS 32-bits - simulator/Debug: Failed Known issue: HE0038)

@spouliot
Copy link
Contributor

@mandel-macaque there are still breaking changes in API diff

@mandel-macaque
Copy link
Member Author

@spouliot ill take a second look, I should have ran them locally

@monojenkins
Copy link
Collaborator

Build failure
Provisioning succeeded
Build succeeded
API Diff (from stable)
⚠️ API Diff (from PR only) (🔥 breaking changes 🔥)
ℹ️ Generator Diff (please review changes)
🔥 Test run failed 🔥

Test results

1 tests failed, 87 tests passed.

Failed tests

  • Xtro/Mac: BuildFailure

src/pdfkit.cs Show resolved Hide resolved
=> throw new NotSupportedException ();


[Obsolete ("Always throws NotSupportedException (). (not a public API).")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This hasn't been fixed.

@monojenkins
Copy link
Collaborator

Build failure
Provisioning succeeded
Build succeeded
API Diff (from stable)
ℹ️ API Diff (from PR only) (please review changes)
ℹ️ Generator Diff (please review changes)
🔥 Test run failed 🔥

Test results

2 tests failed, 86 tests passed.

Failed tests

  • Xtro/Mac: BuildFailure
  • monotouch-test/watchOS 32-bits - simulator/Debug: Failed Known issue: HE0038)

@spouliot
Copy link
Contributor

@mandel-macaque please double check those. There should not be any addition of obsolete members

iOS

Added constructors:


	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLResource resource);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLResource[] resources);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLDevice device, Metal.MTLTextureDescriptor descriptor);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLDevice device, MPSStateResourceList resourceList);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLDevice device, nuint bufferSize);

tvOS

Added methods:


	[Obsolete ("Always throw a 'NotSupportedException' (not a public API). Use 'DiscoverAllIdentities' instead.")]
public virtual void DiscoverAllContactUserInfos (System.Action<CKDiscoveredUserInfo[],Foundation.NSError> completionHandler);

	[Obsolete ("Always throw a 'NotSupportedException' (not a public API). Use 'DiscoverAllIdentities' instead.")]
public virtual System.Threading.Tasks.Task<CKDiscoveredUserInfo[]> DiscoverAllContactUserInfosAsync ();
New Type CloudKit.CKDiscoverAllContactsOperation

public class CKDiscoverAllContactsOperation {
	// constructors
	public CKDiscoverAllContactsOperation ();
	// properties

	[Obsolete ("Empty stub (not a public API).")]
public virtual System.Action<CKDiscoveredUserInfo[],Foundation.NSError> DiscoverAllContactsHandler { get; set; }
}
Added constructors:


	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLResource resource);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLResource[] resources);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLDevice device, Metal.MTLTextureDescriptor descriptor);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLDevice device, MPSStateResourceList resourceList);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLDevice device, nuint bufferSize);

watchOS

New Type SceneKit.SCNView

public class SCNView {
	// constructors
	public SCNView ();
	// properties

	[Obsolete ("Empty stub. (not a public API).")]
public virtual bool DrawableResizesAsynchronously { get; set; }
}

macOS

Added constructors:


	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLResource resource);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLResource[] resources);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLDevice device, Metal.MTLTextureDescriptor descriptor);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLDevice device, MPSStateResourceList resourceList);

	[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public MPSCnnConvolutionState (Metal.IMTLDevice device, nuint bufferSize);

@monojenkins
Copy link
Collaborator

Build success
Provisioning succeeded
Build succeeded
API Diff (from stable)
ℹ️ API Diff (from PR only) (please review changes)
ℹ️ Generator Diff (please review changes)
Test run succeeded

src/pdfkit.cs Show resolved Hide resolved
src/pdfkit.cs Show resolved Hide resolved
src/xkit.cs Show resolved Hide resolved
@mandel-macaque
Copy link
Member Author

@spouliot @rolfbjarne results for the submission tests for dd1ed58 are here.

@monojenkins
Copy link
Collaborator

Build success
Provisioning succeeded
Build succeeded
API Diff (from stable)
ℹ️ API Diff (from PR only) (please review changes)
ℹ️ Generator Diff (please review changes)
Test run succeeded

@mandel-macaque mandel-macaque merged commit 7e7caa0 into xamarin:main Aug 14, 2020
@mandel-macaque mandel-macaque deleted the fix-submission-tests branch August 14, 2020 18:53
@mandel-macaque
Copy link
Member Author

@monojenkins backport d16-8
@monojenkins backport d16-7

@spouliot
Copy link
Contributor

@monojenkins backport to xcode12

@monojenkins
Copy link
Collaborator

@spouliot backporting to xcode12 failed, the patch results in conflicts:

Applying: [Submission] Fix all the selectors that apple warns about.
Using index info to reconstruct a base tree...
M	src/cloudkit.cs
M	src/corebluetooth.cs
M	src/coremidi.cs
M	src/frameworks.sources
M	src/scenekit.cs
M	src/uikit.cs
.git/rebase-apply/patch:56: trailing whitespace.
		public virtual void DiscoverAllContactUserInfos (Action<CKDiscoveredUserInfo[], NSError> completionHandler) 
.git/rebase-apply/patch:94: trailing whitespace.
	
.git/rebase-apply/patch:95: trailing whitespace.
	public partial class CKDiscoverUserInfosOperation { 
.git/rebase-apply/patch:251: trailing whitespace.
	} 
.git/rebase-apply/patch:283: trailing whitespace.
		public virtual MPSImage EncodeToCommandBuffer (IMTLCommandBuffer commandBuffer, MPSImage sourceImage, MPSCnnConvolutionState convolutionState) 
warning: squelched 2 whitespace errors
warning: 7 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging src/uikit.cs
Auto-merging src/scenekit.cs
Auto-merging src/frameworks.sources
Auto-merging src/coremidi.cs
CONFLICT (content): Merge conflict in src/coremidi.cs
Auto-merging src/corebluetooth.cs
Auto-merging src/cloudkit.cs
CONFLICT (content): Merge conflict in src/cloudkit.cs
error: Failed to merge in the changes.
Patch failed at 0001 [Submission] Fix all the selectors that apple warns about.

Please backport manually!

mandel-macaque added a commit to mandel-macaque/xamarin-macios that referenced this pull request Aug 19, 2020
)

We have noticed the following message from Apple when performing
submissions with Xamarin.iOS:

> ITMS-90338: Non-public API usage - The app references non-public
> selectors in WcBc.iOS: behaviorTypes, convolutionState,
> discoverAllContactUserInfosWithCompletionHandler:,
> discoverAllContactsCompletionBlock,
> discoverUserInfoWithEmailAddress:completionHandler:,
> discoverUserInfoWithUserRecordID:completionHandler:,
> discoverUserInfosCompletionBlock, displayContact, drawableResizesAsynchronously,
> encodeToCommandBuffer:sourceImage:convolutionState:,
> encodeToCommandBuffer:sourceImage:destinationImage:state:,
> getProperty:onChannel:responseHandler:, hasProperty:onChannel:responseHandler:,
> initWithEmailAddresses:userRecordIDs:, initWithMIDIEntity:dataReadyHandler:,
> initWithZoneID:options:, initWithZoneID:subscriptionID:options:,
> isPublicDatabase, mouseUpAction, newDrawable, propertyChangedCallback,
> removeAllAppearanceStreams, replaceTextStorage:, retrieveConnectedPeripherals,
> retrievePeripherals:, setDiscoverAllContactsCompletionBlock:,
> setDiscoverUserInfosCompletionBlock:, setDrawableResizesAsynchronously:,
> setEditedMask:, setMouseUpAction:, setMovieControlMode:,
> setProperty:onChannel:responseHandler:, setPropertyChangedCallback:,
> setSocketFamily:, setTemporaryAttributes:forCharacterRange:, setUserRecordIDs:,
> sourceOffset, subscriptionOptions, takeBackgroundColorFrom:, takePasswordFrom:,
> temporalAntialiasingEnabled, userRecordIDs. If method names in your source code
> match the private Apple APIs listed above, altering your method names will help
> prevent this app from being flagged in future submissions. In addition, note
> that one or more of the above APIs may be located in a static library that was
> included with your app. If so, they must be removed. For further information,
> visit the Technical Support Information at http://developer.apple.com/support/technical/

All of them have been removed but without a break in the API excep
"initWithMIDIEntity:dataReadyHandler:" wich does look like an error on
Apples side.

Empty stubs are used as much as possible except on those cases in which
a handler is called or an output variable should be modified (buffer,
out param) to minimize the users surprise at runtime.
mandel-macaque added a commit that referenced this pull request Aug 21, 2020
…9408)

* [Submission] Fix all the selectors that apple warns about. (#9268)

We have noticed the following message from Apple when performing
submissions with Xamarin.iOS:

> ITMS-90338: Non-public API usage - The app references non-public
> selectors in WcBc.iOS: behaviorTypes, convolutionState,
> discoverAllContactUserInfosWithCompletionHandler:,
> discoverAllContactsCompletionBlock,
> discoverUserInfoWithEmailAddress:completionHandler:,
> discoverUserInfoWithUserRecordID:completionHandler:,
> discoverUserInfosCompletionBlock, displayContact, drawableResizesAsynchronously,
> encodeToCommandBuffer:sourceImage:convolutionState:,
> encodeToCommandBuffer:sourceImage:destinationImage:state:,
> getProperty:onChannel:responseHandler:, hasProperty:onChannel:responseHandler:,
> initWithEmailAddresses:userRecordIDs:, initWithMIDIEntity:dataReadyHandler:,
> initWithZoneID:options:, initWithZoneID:subscriptionID:options:,
> isPublicDatabase, mouseUpAction, newDrawable, propertyChangedCallback,
> removeAllAppearanceStreams, replaceTextStorage:, retrieveConnectedPeripherals,
> retrievePeripherals:, setDiscoverAllContactsCompletionBlock:,
> setDiscoverUserInfosCompletionBlock:, setDrawableResizesAsynchronously:,
> setEditedMask:, setMouseUpAction:, setMovieControlMode:,
> setProperty:onChannel:responseHandler:, setPropertyChangedCallback:,
> setSocketFamily:, setTemporaryAttributes:forCharacterRange:, setUserRecordIDs:,
> sourceOffset, subscriptionOptions, takeBackgroundColorFrom:, takePasswordFrom:,
> temporalAntialiasingEnabled, userRecordIDs. If method names in your source code
> match the private Apple APIs listed above, altering your method names will help
> prevent this app from being flagged in future submissions. In addition, note
> that one or more of the above APIs may be located in a static library that was
> included with your app. If so, they must be removed. For further information,
> visit the Technical Support Information at http://developer.apple.com/support/technical/

All of them have been removed but without a break in the API excep
"initWithMIDIEntity:dataReadyHandler:" wich does look like an error on
Apples side.

Empty stubs are used as much as possible except on those cases in which
a handler is called or an output variable should be modified (buffer,
out param) to minimize the users surprise at runtime.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants