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

x/mobile: apps built with go 1.13, still rejected by Apple app store #34133

Closed
mmaxim opened this issue Sep 6, 2019 · 16 comments

Comments

@mmaxim
Copy link

commented Sep 6, 2019

What version of Go are you using (go version)?

$ go version
1.13

Does this issue reproduce with the latest release?

Yes.

What operating system and processor architecture are you using (go env)?

gomobile for iOS.

What did you do?

Build an app and try to submit to Apple App Store.

What did you expect to see?

Acceptance.

What did you see instead?

The fix provided here #31628 is not complete. ptrace is not the only symbol that is being rejected by the store. Go >= 1.12 (including the latest release with a fix for the aforementioned ptrace problem) still triggers a rejection on the sysctl symbol. Some sample text from Apple:

ITMS-90338: Non-public API usage - The app references non-public symbols in Keybase: ___sysctl

The only way we can submit our app to the app store is to run the now unsupported Go 1.10.8, which works.

@gopherbot gopherbot added this to the Unreleased milestone Sep 6, 2019

@gopherbot gopherbot added the mobile label Sep 6, 2019

@hyangah

This comment has been minimized.

Copy link
Contributor

commented Sep 6, 2019

@khr @eliasnaur

Can we disable the use of sysctl as well in the syscall package?

@eliasnaur

This comment has been minimized.

Copy link
Contributor

commented Sep 6, 2019

Sure, should we backport the fix as well?

@eliasnaur

This comment has been minimized.

Copy link
Contributor

commented Sep 6, 2019

@mmaxim, can you provide exact reproduction steps? I ask because my scatter.im app went into the App Store (testflight) just fine.

@mmaxim

This comment has been minimized.

Copy link
Author

commented Sep 6, 2019

Unfortunately, I do not have a small repro for this (although I haven't really tried to get one). Right now this just affects when we submit the Keybase (https://github.com/keybase/client) app (which is substantial). We are likely doing something in there that is causing this symbol to get included, but I don't know what it would be. Like I said, it works for us with 1.10.8, but we have been stuck there because of this problem.

Note that before 1.13 we saw ptrace in the error from Apple as well, but that is now gone, so that previous fix seemed effective for us on that symbol.

@mmaxim

This comment has been minimized.

Copy link
Author

commented Sep 6, 2019

Also, if you get a patch together at some point, I'd be happy to test it out on Keybase if that would help.

@eliasnaur

This comment has been minimized.

Copy link
Contributor

commented Sep 6, 2019

What I would like with a reproducer is to avoid the whack-a-mole game of disabling one symbol at a time. Perhaps I can include all syscalls in a synthetic reproducer.

@mmaxim

This comment has been minimized.

Copy link
Author

commented Sep 6, 2019

Yeah that totally makes sense. For what it's worth the error from Apple lists all the offending symbols in our submission. Before 1.13, that list was ptrace and sysctl. On 1.13, that list is now down to sysctl.

@eliasnaur

This comment has been minimized.

Copy link
Contributor

commented Sep 7, 2019

@gopherbot

This comment has been minimized.

Copy link

commented Sep 7, 2019

Change https://golang.org/cl/193843 mentions this issue: syscall: disable sysctl on iOS

@gopherbot

This comment has been minimized.

Copy link

commented Sep 7, 2019

Change https://golang.org/cl/194097 mentions this issue: unix: disable sysctl on iOS

@eliasnaur

This comment has been minimized.

Copy link
Contributor

commented Sep 7, 2019

@gopherbot please consider this for backport to 1.13 to allow Go apps through the App Store checks.

@gopherbot

This comment has been minimized.

Copy link

commented Sep 7, 2019

Backport issue(s) opened: #34170 (for 1.13).

Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://golang.org/wiki/MinorReleases.

gopherbot pushed a commit to golang/sys that referenced this issue Sep 7, 2019
unix: disable sysctl on iOS
Running the regenerating scripts also brought in ClockGettime.

Updates golang/go#34133

Change-Id: I0eb9ed6dbbc2bdd7e3d2a7f5d88492e9dfed0ada
Reviewed-on: https://go-review.googlesource.com/c/sys/+/194097
Run-TryBot: Elias Naur <mail@eliasnaur.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>

@gopherbot gopherbot closed this in 78d9949 Sep 7, 2019

@gopherbot

This comment has been minimized.

Copy link

commented Sep 7, 2019

Change https://golang.org/cl/193844 mentions this issue: log/syscall: skip unsupported tests on iOS

gopherbot pushed a commit that referenced this issue Sep 7, 2019
log/syslog: skip unsupported tests on iOS
CL 193843 disabled sysctl on iOS. This change disables two tests that
rely on sysctl.

Updates #34133

Change-Id: I7c569a1992a50ad6027a294c1fd535cccddcfc4e
Reviewed-on: https://go-review.googlesource.com/c/go/+/193844
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
@gopherbot

This comment has been minimized.

Copy link

commented Sep 7, 2019

Change https://golang.org/cl/193845 mentions this issue: net,os: disable more sysctl tests on iOS

gopherbot pushed a commit that referenced this issue Sep 7, 2019
net,os: disable more sysctl tests on iOS
Updates #34133

Change-Id: I27c75993176cf876f2d80f70982528258c509b68
Reviewed-on: https://go-review.googlesource.com/c/go/+/193845
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
@gopherbot

This comment has been minimized.

Copy link

commented Sep 7, 2019

Change https://golang.org/cl/193846 mentions this issue: syscall: re-generate zsyscall_darwin_arm*.so

gopherbot pushed a commit that referenced this issue Sep 8, 2019
syscall: re-generate zsyscall_darwin_arm*.s
I missed that in CL 193843.

Updates #34133

Change-Id: I70b420f022cc7f8289f07375bfc2ade20cf3ffe7
Reviewed-on: https://go-review.googlesource.com/c/go/+/193846
Run-TryBot: Elias Naur <mail@eliasnaur.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
@mmaxim

This comment has been minimized.

Copy link
Author

commented Sep 10, 2019

@eliasnaur sorry for the delay, just got to this today. It worked! Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.