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

[Release Tooling] Validation workaround for Xcode 15.3b3 #12439

Merged
merged 3 commits into from
Feb 28, 2024
Merged

Conversation

ncooke3
Copy link
Member

@ncooke3 ncooke3 commented Feb 27, 2024

context in b/327020913

Validated locally by building one xcframework. It's possible this could blow up when building all of the xcframeworks, but hopefully not.

@google-oss-bot
Copy link

1 Warning
⚠️ Did you forget to add a changelog entry? (Add #no-changelog to the PR description to silence this warning.)

Generated by 🚫 Danger

Copy link
Member

@paulb777 paulb777 left a comment

Choose a reason for hiding this comment

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

LGTM after comment, green CI and confirm that we don't do something strange on catalyst and macos like writing a one-line plist file.

@ncooke3
Copy link
Member Author

ncooke3 commented Feb 28, 2024

Framework-level Info.plists are missing for catalyst and macOS. I verified that the app validates with such a layout on macOS and catalyst.

/private/var/folders/6h/fgkrlkjs0ygdzpbhyr9l4k1c0000gn/T/ZipRelease/Binaries 26/FirebaseCoreExtension.xcframework
├── Info.plist
├── ios-arm64
│   └── FirebaseCoreExtension.framework
│       ├── FirebaseCoreExtension
│       ├── FirebaseCoreExtension_Privacy.bundle
│       │   ├── Info.plist
│       │   └── PrivacyInfo.xcprivacy
│       ├── Headers
│       │   ├── FIRAppInternal.h
│       │   ├── FIRComponent.h
│       │   ├── FIRComponentContainer.h
│       │   ├── FIRComponentType.h
│       │   ├── FIRDependency.h
│       │   ├── FIRHeartbeatLogger.h
│       │   ├── FIRLibrary.h
│       │   ├── FIRLogger.h
│       │   ├── FIROptionsInternal.h
│       │   ├── FirebaseCoreExtension-umbrella.h
│       │   └── FirebaseCoreInternal.h
│       ├── Info.plist
│       └── Modules
│           └── module.modulemap
├── ios-arm64_x86_64-maccatalyst
│   └── FirebaseCoreExtension.framework
│       ├── FirebaseCoreExtension
│       ├── FirebaseCoreExtension_Privacy.bundle
│       │   └── Contents
│       │       ├── Info.plist
│       │       └── Resources
│       │           └── PrivacyInfo.xcprivacy
│       ├── Headers
│       │   ├── FIRAppInternal.h
│       │   ├── FIRComponent.h
│       │   ├── FIRComponentContainer.h
│       │   ├── FIRComponentType.h
│       │   ├── FIRDependency.h
│       │   ├── FIRHeartbeatLogger.h
│       │   ├── FIRLibrary.h
│       │   ├── FIRLogger.h
│       │   ├── FIROptionsInternal.h
│       │   ├── FirebaseCoreExtension-umbrella.h
│       │   └── FirebaseCoreInternal.h
│       └── Modules
│           └── module.modulemap
├── ios-arm64_x86_64-simulator
│   └── FirebaseCoreExtension.framework
│       ├── FirebaseCoreExtension
│       ├── FirebaseCoreExtension_Privacy.bundle
│       │   ├── Info.plist
│       │   └── PrivacyInfo.xcprivacy
│       ├── Headers
│       │   ├── FIRAppInternal.h
│       │   ├── FIRComponent.h
│       │   ├── FIRComponentContainer.h
│       │   ├── FIRComponentType.h
│       │   ├── FIRDependency.h
│       │   ├── FIRHeartbeatLogger.h
│       │   ├── FIRLibrary.h
│       │   ├── FIRLogger.h
│       │   ├── FIROptionsInternal.h
│       │   ├── FirebaseCoreExtension-umbrella.h
│       │   └── FirebaseCoreInternal.h
│       ├── Info.plist
│       └── Modules
│           └── module.modulemap
└── macos-arm64_x86_64
    └── FirebaseCoreExtension.framework
        ├── FirebaseCoreExtension
        ├── FirebaseCoreExtension_Privacy.bundle
        │   └── Contents
        │       ├── Info.plist
        │       └── Resources
        │           └── PrivacyInfo.xcprivacy
        ├── Headers
        │   ├── FIRAppInternal.h
        │   ├── FIRComponent.h
        │   ├── FIRComponentContainer.h
        │   ├── FIRComponentType.h
        │   ├── FIRDependency.h
        │   ├── FIRHeartbeatLogger.h
        │   ├── FIRLibrary.h
        │   ├── FIRLogger.h
        │   ├── FIROptionsInternal.h
        │   ├── FirebaseCoreExtension-umbrella.h
        │   └── FirebaseCoreInternal.h
        └── Modules
            └── module.modulemap

25 directories, 63 files

@ncooke3 ncooke3 merged commit 4065853 into main Feb 28, 2024
59 checks passed
@ncooke3 ncooke3 deleted the nc/rt-plists branch February 28, 2024 15:17

let updatedPlistData = try PropertyListSerialization.data(
fromPropertyList: plistDictionary,
format: .binary,
Copy link
Member Author

Choose a reason for hiding this comment

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

I may want to make this .xml in the future. The binary format is harder to diff from the command line. I'll change it if there is more plist related work down the road.

@guppy-jpf
Copy link

@ncooke3

sorry to bother you if you're busy, but quick question:

you say above:

context in b/327020913

and also in the code:

// The minimum OS version is set to 100.0 to work around b/327020913.

i'm just curious what "b/327020913" is ... is that some internal google bug tracker reference?

the reason i ask is, i'm in the process of trying to work through a similar issue with a 3rd-party library vendor (best available ref here; sorry, the actual vendor doesn't track issues on github), and their contention is that the issue is caused by an apple bug ... so i'm curious if you guys also consider this to be an apple bug that you're trying to work around, or do you feel it's just stricter (but not erroneous) checking on the part of xcode 15.3?

if you have time for a quick reply, i'd appreciate it.
thanks!

@paulb777
Copy link
Member

Yes. The "b" reference is an internal bug tracker and yes we consider it an Apple bug: Apple should allow SDKs to support a lower minimum OS version than the app and it's very strange that setting the version higher than any available OS is a workaround.

@guppy-jpf
Copy link

@paulb777

thanks for the response! surely someone somewhere has filed a radar on this (although how would one ever know?).
it also seems odd that this issue would not have been reported and fixed during the long xcode 15.3 beta cycle,
but then again, maybe not, given the state of apple's software quality over the past few years ...

@paulb777
Copy link
Member

We have an open Apple Feedback about the issue and still waiting for a response.

@paulb777
Copy link
Member

Feedback (Radar) ID: FB13657402

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants