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

xCode 15.3 build for macOS results in invalid binary #12505

Closed
ndreca opened this issue Mar 9, 2024 · 14 comments · Fixed by #12517
Closed

xCode 15.3 build for macOS results in invalid binary #12505

ndreca opened this issue Mar 9, 2024 · 14 comments · Fixed by #12517
Assignees
Labels
api: analytics Catalyst macOS Issues or feature requests for macOS. zip Issues related to binary distribution (zip file)

Comments

@ndreca
Copy link

ndreca commented Mar 9, 2024

Description

With xCode 15.3 builds my app targeting macCatalyst results in invalid binary after many hours of processing in App Store connect, there is no log detail showing the failure reason but I was contacted by Apple engineering team with the reason of the invalid binary, mentioning a dependency coming from Firebase - GoogleAppMeasurementIdentitySupport.framework:

To resolve this issue, please refer the developer to the following message from engineering:

Reproducing the issue

No response

Firebase SDK Version

10.22.1

Xcode Version

15.3

Installation Method

Swift Package Manager

Firebase Product(s)

All

Targeted Platforms

macCatalyst

Relevant Log Output

No response

If using Swift Package Manager, the project's Package.resolved

{
"originHash" : "26a0c0b404ae08db8282f2c5bc0ad8fd95fe9781b485207956b2df644dabb2d6",
"pins" : [
{
"identity" : "abseil-cpp-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/abseil-cpp-binary.git",
"state" : {
"revision" : "df308b8b46607675f2b9ec8e569109008f9155ce",
"version" : "1.2022062300.1"
}
},
{
"identity" : "app-check",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/app-check.git",
"state" : {
"revision" : "3e464dad87dad2d29bb29a97836789bf0f8f67d2",
"version" : "10.18.1"
}
},
{
"identity" : "brightfutures",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Thomvis/BrightFutures.git",
"state" : {
"revision" : "fa66fa183dce7196d431244d0215748cd14c5758",
"version" : "8.2.0"
}
},
{
"identity" : "colorpalettecodable",
"kind" : "remoteSourceControl",
"location" : "https://github.com/ndreca/ColorPaletteCodable",
"state" : {
"revision" : "674f027811eaf2cf90b0a1eda5bbf5ad1fa25b11",
"version" : "2.3.4"
}
},
{
"identity" : "cstb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/troughton/Cstb",
"state" : {
"revision" : "a47f4ecf3a139ac2f53ed27a984853c9f98097f1",
"version" : "1.0.6"
}
},
{
"identity" : "dsfregex",
"kind" : "remoteSourceControl",
"location" : "https://github.com/dagronf/DSFRegex",
"state" : {
"revision" : "f1ce5c208384bb238b07905d140c2e60182e3601",
"version" : "3.3.1"
}
},
{
"identity" : "dynamic",
"kind" : "remoteSourceControl",
"location" : "https://github.com/mhdhejazi/Dynamic.git",
"state" : {
"revision" : "ab9a2570862d54aed2663691bb767f881226a12f",
"version" : "1.2.0"
}
},
{
"identity" : "erik",
"kind" : "remoteSourceControl",
"location" : "https://github.com/phimage/Erik.git",
"state" : {
"revision" : "109a130e9cdb00789a43a7a625293eeb12d22989",
"version" : "5.1.0"
}
},
{
"identity" : "filekit",
"kind" : "remoteSourceControl",
"location" : "https://github.com/nvzqz/FileKit.git",
"state" : {
"revision" : "9006d2888025fbe893c3c396327b2fe45a8c177b",
"version" : "6.1.0"
}
},
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk",
"state" : {
"revision" : "be49849dcba96f2b5ee550d4eceb2c0fa27dade4",
"version" : "10.22.1"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "482cfa4e5880f0a29f66ecfd60c5a62af28bd1f0",
"version" : "10.22.1"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "a637d318ae7ae246b02d7305121275bc75ed5565",
"version" : "9.4.0"
}
},
{
"identity" : "googleutilities",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleUtilities.git",
"state" : {
"revision" : "26c898aed8bed13b8a63057ee26500abbbcb8d55",
"version" : "7.13.1"
}
},
{
"identity" : "grpc-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/grpc-binary.git",
"state" : {
"revision" : "ea4cb5cc0c39c732b85386263116d2e2fdbbdc61",
"version" : "1.49.2"
}
},
{
"identity" : "gtm-session-fetcher",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/gtm-session-fetcher.git",
"state" : {
"revision" : "76135c9f4e1ac85459d5fec61b6f76ac47ab3a4c",
"version" : "3.3.1"
}
},
{
"identity" : "inappsettingskit",
"kind" : "remoteSourceControl",
"location" : "https://github.com/futuretap/InAppSettingsKit.git",
"state" : {
"revision" : "d52dbe42f4714802dedb38ed1b42a70971d1210b",
"version" : "3.7.0"
}
},
{
"identity" : "interop-ios-for-google-sdks",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/interop-ios-for-google-sdks.git",
"state" : {
"revision" : "2d12673670417654f08f5f90fdd62926dc3a2648",
"version" : "100.0.0"
}
},
{
"identity" : "kanna",
"kind" : "remoteSourceControl",
"location" : "https://github.com/tid-kijyun/Kanna.git",
"state" : {
"revision" : "41c3d28ea0eac07e4551b28def9de1ede702e739",
"version" : "5.3.0"
}
},
{
"identity" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "43aaef65e0c665daadf848761d560e446d350d3d",
"version" : "1.22.4"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1",
"version" : "2.30910.0"
}
},
{
"identity" : "oauthswift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/OAuthSwift/OAuthSwift",
"state" : {
"revision" : "d85964b96dbce94df961f28b996187c835089903",
"version" : "2.2.0"
}
},
{
"identity" : "promisekit",
"kind" : "remoteSourceControl",
"location" : "https://github.com/mxcl/PromiseKit",
"state" : {
"revision" : "cb70b070cde06837cd10a1febdf6105c1a3bb348",
"version" : "8.1.1"
}
},
{
"identity" : "promises",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/promises.git",
"state" : {
"revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac",
"version" : "2.4.0"
}
},
{
"identity" : "swift-protobuf",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
"revision" : "65e8f29b2d63c4e38e736b25c27b83e012159be8",
"version" : "1.25.2"
}
},
{
"identity" : "swifter",
"kind" : "remoteSourceControl",
"location" : "https://github.com/httpswift/swifter.git",
"state" : {
"revision" : "9483a5d459b45c3ffd059f7b55f9638e268632fd",
"version" : "1.5.0"
}
},
{
"identity" : "swiftimagereadwrite",
"kind" : "remoteSourceControl",
"location" : "https://github.com/dagronf/SwiftImageReadWrite",
"state" : {
"revision" : "96361ba7f9dce5184d95aba8ea90d9faa4acabb2",
"version" : "1.6.1"
}
},
{
"identity" : "swiftrichstring",
"kind" : "remoteSourceControl",
"location" : "https://github.com/ndreca/SwiftRichString",
"state" : {
"revision" : "092189737f7084e48dc767106453e86549ceb45d",
"version" : "3.7.4"
}
},
{
"identity" : "zipfoundation",
"kind" : "remoteSourceControl",
"location" : "https://github.com/weichsel/ZIPFoundation.git",
"state" : {
"revision" : "b979e8b52c7ae7f3f39fa0182e738e9e7257eb78",
"version" : "0.9.18"
}
}
],
"version" : 3
}

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
Replace this line with the contents of your Podfile.lock!
@google-oss-bot
Copy link

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

@paulb777
Copy link
Member

paulb777 commented Mar 9, 2024

Thanks for the report. We'll investigate.

@mansbernhardt
Copy link

We have a similar problem where our iOS and AppleTV apps passes, but where our macOS app got stuck in TestFlight processing that could continue for several days, and finally end up in an invalid binary. We have retried multiple times, however by removing the firebase dependency, the macOS app works properly. Our macOS app is not a catalyst app but a regular macOS app.

@ncooke3
Copy link
Member

ncooke3 commented Mar 11, 2024

however by removing the firebase dependency, the macOS app works properly.

@mansbernhardt, by "firebase dependency", are you referring to Firebase as a whole or the GoogleAppMeasurementIdentitySupport.framework mentioned in the OP?

@ndreca
Copy link
Author

ndreca commented Mar 11, 2024

Xcode_2024 03 11_19 39 59@2x
@ncooke3 I've temporarily fixed it in a similar way by removing the FirebaseAnalytics dependency for osx

GoogleAppMeasurementIdentitySupport.framework seems to come from that

@thearusable
Copy link

I have a similar problem with only the macOS app, other platforms works fine. I received the same message as @ndreca.

After adding FirebaseAnalyticsWithoutAdIdSupport I have an additional Frameworks directory in my macOS app.

Zrzut ekranu 2024-03-11 o 17 43 41

After removing it the Frameworks directory disappears.

Zrzut ekranu 2024-03-11 o 17 46 37

Hope that helps!

@ndreca
Copy link
Author

ndreca commented Mar 11, 2024

Btw, there is a faster way to test for the invalid binary outcome without waiting for app store connect to timeout(takes 12+ hours).

From local archive, notarize fails instantly, though there is also no relevant log information coming back.

Xcode_2024 03 11_21 02 26@2x

CleanShot_2024 03 11_21 04 35@2x

@mansatgigset
Copy link

however by removing the firebase dependency, the macOS app works properly.

@mansbernhardt, by "firebase dependency", are you referring to Firebase as a whole or the GoogleAppMeasurementIdentitySupport.framework mentioned in the OP?

@ncooke3 We only use the FirebaseAnalytics dependency product(name: "FirebaseAnalytics", package: "firebase-ios-sdk"), and by removing that dependency we got it working. Of course that dependency seems to bring a lot of other dependencies with it, including `GoogleAppMeasurementIdentitySupport.framework``

@ncooke3
Copy link
Member

ncooke3 commented Mar 11, 2024

Thanks everyone for the info! The upcoming Firebase 10.23.0 (planned for week March 19) release should resolve this issue.

@emperinter
Copy link

May I ask which was the last available version? I'm in a hurry to get it on the shelf now, but I'm always stuck at this step, and would like to try to go back first without interfering with the normal process of getting it on the shelf.
图片

@CristianMoisei
Copy link

You can download Xcode 15.2 from here and use Firebase 10.21. I was able to get my binaries approved for Catalyst this way.

@emperinter
Copy link

Thank you very much for the suggestion! I tried several versions of FireBase with Xcode 15.3 not long ago and it didn't work, so I removed FireBase for the time being to submit a version. It looks like the problem should be caused by a combination of Xcode and Firebase, so I'll see what happens on my end and decide how to handle it.

@ghb101
Copy link

ghb101 commented Mar 20, 2024

I updated to Firebase 10.23.0 and submitted a new binary to App Store Connect, and there is still an issue. Here is the email I received.

Please correct the following issues and upload a new binary to App Store Connect.

ITMS-90291: Malformed Framework - The framework bundle FirebaseAnalytics (TeacherAide2.app/Contents/Frameworks/FirebaseAnalytics.framework) must contain a symbolic link 'FirebaseAnalytics' -> 'Versions/Current/FirebaseAnalytics'. Refer to the Anatomy of Framework Bundles for more information.

ITMS-90291: Malformed Framework - The framework bundle FirebaseAnalytics (TeacherAide2.app/Contents/Frameworks/FirebaseAnalytics.framework) must contain a symbolic link 'Resources' -> 'Versions/Current/Resources'. Refer to the Anatomy of Framework Bundles for more information.

ITMS-90292: Malformed Framework - The framework bundle FirebaseAnalytics (TeacherAide2.app/Contents/Frameworks/FirebaseAnalytics.framework) 'Versions' directory must contain a symbolic link 'Current' resolving to a specific version directory. Resolved link target: '${linkTarget}'. Refer to the Anatomy of Framework Bundles for more information.

ITMS-90291: Malformed Framework - The framework bundle GoogleAppMeasurement (TeacherAide2.app/Contents/Frameworks/GoogleAppMeasurement.framework) must contain a symbolic link 'GoogleAppMeasurement' -> 'Versions/Current/GoogleAppMeasurement'. Refer to the Anatomy of Framework Bundles for more information.

ITMS-90291: Malformed Framework - The framework bundle GoogleAppMeasurement (TeacherAide2.app/Contents/Frameworks/GoogleAppMeasurement.framework) must contain a symbolic link 'Resources' -> 'Versions/Current/Resources'. Refer to the Anatomy of Framework Bundles for more information.

ITMS-90292: Malformed Framework - The framework bundle GoogleAppMeasurement (TeacherAide2.app/Contents/Frameworks/GoogleAppMeasurement.framework) 'Versions' directory must contain a symbolic link 'Current' resolving to a specific version directory. Resolved link target: '${linkTarget}'. Refer to the Anatomy of Framework Bundles for more information.

Apple Developer Relations

@paulb777
Copy link
Member

@ghb101 See #12587

@firebase firebase locked and limited conversation to collaborators Apr 11, 2024
@paulb777 paulb777 added macOS Issues or feature requests for macOS. zip Issues related to binary distribution (zip file) labels Apr 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
api: analytics Catalyst macOS Issues or feature requests for macOS. zip Issues related to binary distribution (zip file)
Projects
None yet
Development

Successfully merging a pull request may close this issue.