shaka-project / shaka-player-embedded

Shaka Player in a C++ Framework
Apache License 2.0
239 stars 62 forks source link

Application unpublishable #139

Closed okycelt closed 4 years ago

okycelt commented 4 years ago

We've noticed that since aecde41956bd469bf9ab8f1e38dc8c202b68d001 widevine_cdm_secured_ios.framework ends up nested inside ShakaPlayerEmbedded.framework. This is not allowed by Apple, so we're getting the following error when trying to upload the app to App Store Connect, similarly to #63.

ERROR ITMS-90205: "Invalid Bundle. The bundle at 'xxx.app/Frameworks/ShakaPlayerEmbedded.framework' contains disallowed nested bundles."

We're using the following configuration command:

../configure --ios --cpu arm64 --release --eme-impl ../prebuilt_cdm/shaka_plugin/release_cdm.json

Is there anything we should do differently since this commit or this is a bug?

franciscocarodiaz commented 3 years ago

I'm having the same issue and Apple has been rejected my app: ITMS-90338: Non-public API usage - The app references non-public symbols in Tivify: _pb_decode, _pb_decode_varint, _pb_encode, _pb_encode_string, _pb_encode_submessage, _pb_encode_tag_for_field, _pb_encode_varint, _pb_istream_from_buffer, _pb_ostream_from_buffer, _pb_read. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Any solution?

joeyparrish commented 3 years ago

Just a guess, but those look like protobuf-related functions. @TheModMaker, are we using protobufs internally? Any idea why protobuf would be considered a private API to Apple?

TheModMaker commented 3 years ago

Since that error isn't related to this issue, we'll continue in #196. But we use protobuf in offline storage and the Widevine CDM uses it extensively.