Skip to content

Conversation

@AndreyMaslennikov
Copy link
Contributor

After running bin/class-dump/dump.rb, three major errors occurred:

  • XCTSwiftErrorIssue
    We deleted Server/PrivateHeaders/XCTest/XCTSwiftErrorObservation_Overlay-Protocol.h header and dependencies to it

  • XCUIApplicationState
    There were an issue in the XCUIApplicationState type definition. Type wasn't defined due to #ifndef XCT_UI_TESTING_AVAILABLE construction. XCT_UI_TESTING_AVAILABLE was defined, and because of this, XCUIApplicationState was not defined.
    We've removed the check for XCT_UI_TESTING_AVAILABLE is defined. Please, take a look at it.

  • XCUIElementSnapshotRequestResult
    Missing class forward

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.

#ifndef XCT_UI_TESTING_AVAILABLE
Copy link

Choose a reason for hiding this comment

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

@jmoody what do you think about it?

Copy link
Contributor

Choose a reason for hiding this comment

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

It looks like Apple removed this enum. I cannot find it in the private headers.

I recommend you open an XCUITest project in Xcode 11.5 (the Palisade project would be a good choice) - and see if symbols like XCUIApplicationStateRunning are available.

If Apple has removed this, then we will need to make changes to DeviceAgent because values are used in a few places - notably in Application.m

Copy link
Contributor

Choose a reason for hiding this comment

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

We've investigated the issue with the PR in the current state and didn't encounter any particular issues with Enums being deleted from private headers. This whole situation with the Enum is strange because the fact that it's deleted or is due to be deleted can't be found in any changelogs and documentation.

We're using the copy of it in the project, so there shouldn't be any issues.

Regards to the macro XCT_UI_TESTING_AVAILABLE: it is no longer used in the project, so we shouldn't encounter this issue again.

Copy link
Contributor

@jmoody jmoody left a comment

Choose a reason for hiding this comment

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

We need to sort out what happened to the XCUIApplicationState enum. If it is gone, we need to find a replacement.

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.

#ifndef XCT_UI_TESTING_AVAILABLE
Copy link
Contributor

Choose a reason for hiding this comment

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

It looks like Apple removed this enum. I cannot find it in the private headers.

I recommend you open an XCUITest project in Xcode 11.5 (the Palisade project would be a good choice) - and see if symbols like XCUIApplicationStateRunning are available.

If Apple has removed this, then we will need to make changes to DeviceAgent because values are used in a few places - notably in Application.m

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.

#ifndef XCT_UI_TESTING_AVAILABLE
Copy link
Contributor

Choose a reason for hiding this comment

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

We've investigated the issue with the PR in the current state and didn't encounter any particular issues with Enums being deleted from private headers. This whole situation with the Enum is strange because the fact that it's deleted or is due to be deleted can't be found in any changelogs and documentation.

We're using the copy of it in the project, so there shouldn't be any issues.

Regards to the macro XCT_UI_TESTING_AVAILABLE: it is no longer used in the project, so we shouldn't encounter this issue again.

@leffsu leffsu merged commit 99e4204 into develop May 27, 2020
@leffsu leffsu deleted the v-andrem/update-private-headers-xcode-11_5 branch May 27, 2020 11:33
@jmoody
Copy link
Contributor

jmoody commented May 27, 2020

deleted or is due to be deleted can't be found in any changelogs and documentation.

We don't expect Apple to document changes in their private APIs.

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.

6 participants