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

Apps built with the dynamic framework can't be submitted to App store #1163

Closed
pietbrauer opened this Issue Nov 29, 2014 · 16 comments

Comments

Projects
None yet
7 participants
@pietbrauer
Contributor

pietbrauer commented Nov 29, 2014

Hey,

I tried to submit my beta app to the iTunes Store today but unfortunately a dialogue appeared that the Realm.framework contains non-public API usage.

Did you see that before or have an idea on how to deal with it?

screen shot 2014-11-29 at 16 17 59

@pietbrauer

This comment has been minimized.

Contributor

pietbrauer commented Nov 29, 2014

Sorry, I am using @Carthage and v0.87.4 of realm. Can it be that I was linking the Mac Framework?

@tgoyne

This comment has been minimized.

Member

tgoyne commented Dec 1, 2014

Assuming Carthage built the framework correctly, using the OS X framework should fail to compile unless you've managed to compile against the iOS framework and link against the OS X framework (which is hard to get Xcode to do even when actively trying).

We don't have any direct calls to bzero, but calls to memset(..., 0, ...) sometimes get optimized to calls to platform-specific versions of bzero. I suspect it's just a mistake on Apple's part and they marked symbols that shouldn't be private as private, but I'll see if I can reproduce it and if so try to find a workaround.

@tgoyne

This comment has been minimized.

Member

tgoyne commented Dec 1, 2014

Carthage doesn't handle the fact that we support building both static and dynamic frameworks with the same name very well, but it does seem to build things correctly.

@pietbrauer

This comment has been minimized.

Contributor

pietbrauer commented Dec 1, 2014

Thanks for the research! Unfortunately Carthage 0.2.2 doesn't fix the issue.

@tgoyne

This comment has been minimized.

Member

tgoyne commented Dec 1, 2014

I've poked into this a bit, and the ___bzero calls appear to be compiler-generated for zero-initialized stack variables, so either we have a compiler setting wrong somewhere, or the blacklist is incorrect. Have you emailed appreview@apple.com to verify that it's supposed to be blacklisted?

@pietbrauer

This comment has been minimized.

Contributor

pietbrauer commented Dec 1, 2014

Nope not yet, was when I tried to upload a beta build so there is no pressure on this for me. Would you consider this as the next step or do you want to check the compiler thingy first?

@tgoyne

This comment has been minimized.

Member

tgoyne commented Dec 1, 2014

I'll continue looking for issues on our end, but it would help if you emailed them.

@tonyarnold

This comment has been minimized.

Contributor

tonyarnold commented Dec 4, 2014

Guys, this is probably related: Carthage/Carthage#188

@pietbrauer

This comment has been minimized.

Contributor

pietbrauer commented Dec 4, 2014

Wow, thanks for finding it!

@alazier alazier added investigate and removed investigate labels Dec 5, 2014

@alanjrogers

This comment has been minimized.

alanjrogers commented Dec 6, 2014

@tonyarnold I don't think that's related. The carthage issue is that built artefacts in Carthage.build contain x86_64 and i386 architectures that are rejected by the app store :(

@jpsim

This comment has been minimized.

Contributor

jpsim commented Dec 6, 2014

@alanjrogers that's the same issue we're having here.

In a nutshell, we're currently including simulator and device symbols in a fat framework binary. In static libraries, Apple strips them out as part of the archive process, but they don't yet do this for dynamic libraries.

This is a bug that apple should fix. But in the meantime, we need to find a work-around. One way would be to have 2 frameworks (1 for simulator, 1 for devices). Another option could be to have an archive build phase to strip out the simulator symbols.

I'm curious to see what solution the Carthage people come up with.

@jpsim jpsim referenced this issue Dec 6, 2014

Merged

Support for Frameworks / Swift #2835

13 of 15 tasks complete

@alazier alazier removed the pending label Dec 8, 2014

@alazier alazier changed the title [iOS] non-public API usage Apps build with the dynamic framework can't be submitted to App store Dec 8, 2014

@alazier alazier added T:Bug P1 labels Dec 8, 2014

@alazier alazier changed the title Apps build with the dynamic framework can't be submitted to App store Apps built with the dynamic framework can't be submitted to App store Dec 8, 2014

@jspahrsummers

This comment has been minimized.

jspahrsummers commented Dec 10, 2014

I've filed a Radar about this: rdar://19209161

@jpsim

This comment has been minimized.

Contributor

jpsim commented Dec 10, 2014

Thanks for the high quality radar, @jspahrsummers! Duped.

@jpsim

This comment has been minimized.

Contributor

jpsim commented Dec 18, 2014

Apple just closed my radar as a duplicate of rdar://18326724, so it looks as if someone else filed this long before we got to it. Which (I hope) increases the odds of Apple fixing it 🙏.

@jspahrsummers

This comment has been minimized.

jspahrsummers commented Dec 19, 2014

Ha, mine is still open. 😕

@jpsim

This comment has been minimized.

Contributor

jpsim commented Dec 19, 2014

Actually, I was wrong. My radar was closed as a dupe of @jspahrsummers'. Apple's world-class bug report UI confused me.

@jpsim jpsim removed the P1 label Dec 19, 2014

@jpsim jpsim referenced this issue Jan 23, 2015

Closed

Update release process to zip repo #1404

0 of 4 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment