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

Publish: Undocumented APIs is detected (allow list) #21

Closed
diegocesarmg opened this issue Jan 2, 2021 · 8 comments
Closed

Publish: Undocumented APIs is detected (allow list) #21

diegocesarmg opened this issue Jan 2, 2021 · 8 comments
Labels
bug Something isn't working

Comments

@diegocesarmg
Copy link

Hi guys! First of all, thank you very much for this BEAUTIFUL extension. I have no words to describe how it has helped me to develop my wearable app faster.

I'm trying to publish my app to the Galaxy Store and it's being rejected as follows:

[Defect]
An API, which is not officially documented in the Tizen SDK, has been used in the source code of the Application package.

[Expected Result]
APIs that are not officially documented in the Tizen SDK should not be used in the source code of Application packages.

[Reference]
Undocumented API is for internal platform developer only and such APIs are subjected to change without notice.
So if application uses undocumented API, it does not guarantee compatibility for future platform update.
See the attached file for further details on the use of undocumented APIs.

There is an attachment named "gear_core_allowlist" also with the following content:

tdm_client_vblank_destroy[libflutter.so]
eglBindAPI[libflutter.so]
tdm_client_handle_events[libflutter.so]
tdm_client_get_output[libflutter.so]
eglGetConfigs[libflutter.so]
ecore_wl2_window_show[libflutter.so]
ecore_device_name_get[libflutter.so]
eglCreateContext[libflutter.so]
tdm_client_create[libflutter.so]
ECORE_WL2_EVENT_WINDOW_VISIBILITY_CHANGE[libflutter.so]
ecore_wl2_window_geometry_set[libflutter.so]
ecore_wl2_window_new[libflutter.so]
tbm_surface_internal_unref[libflutter.so]
_ZTHN4dart8OSThread18current_vm_thread_E[libflutter.so]
ecore_wl2_sync[libflutter.so]
ecore_device_class_get[libflutter.so]
ecore_wl2_window_free[libflutter.so]
eglSwapBuffers[libflutter.so]
ecore_wl2_window_type_set[libflutter.so]
__dlog_print[libflutter.so]
ecore_wl2_display_destroy[libflutter.so]
eglMakeCurrent[libflutter.so]
tdm_client_vblank_set_enable_fake[libflutter.so]
ecore_wl2_window_id_get[libflutter.so]
eglCreateWindowSurface[libflutter.so]
tdm_client_vblank_wait[libflutter.so]
ecore_wl2_shutdown[libflutter.so]
ecore_device_subclass_get[libflutter.so]
ecore_wl2_display_connect[libflutter.so]
ecore_wl2_egl_window_native_get[libflutter.so]
ecore_wl2_egl_window_create[libflutter.so]
eglGetCurrentDisplay[libflutter.so]
tdm_client_destroy[libflutter.so]
tbm_surface_internal_ref[libflutter.so]
ecore_wl2_egl_window_destroy[libflutter.so]
ecore_wl2_window_position_set[libflutter.so]
ecore_wl2_init[libflutter.so]
ecore_wl2_display_get[libflutter.so]
ecore_wl2_window_alpha_set[libflutter.so]
eglGetProcAddress[libflutter.so]
tbm_surface_internal_is_valid[libflutter.so]
eglGetDisplay[libflutter.so]
eglChooseConfig[libflutter.so]
eglGetError[libflutter.so]
eglInitialize[libflutter.so]
tdm_client_output_create_vblank[libflutter.so]

How should I proceed?

Best regards,
Diêgo Silva

@diegocesarmg diegocesarmg changed the title Publish: Undocumented API is detected Publish: Undocumented APIs is detected (allow list) Jan 2, 2021
@swift-kim
Copy link
Member

Hi. Sorry for the inconvenience you've experienced.

As noted in README, the tool is not production ready yet. We have been trying to build the Flutter engine only using official Tizen APIs but without success. Unfortunately, there's no solution for this issue at the moment. I'll also contact administrators of Galaxy Store for whitelisting internal APIs used by the engine although there's little chance of success.

I'll inform you of any updates. Thanks.

@diegocesarmg
Copy link
Author

diegocesarmg commented Jan 5, 2021

Thank you very much, @swift-kim! Let me know if I can help with something. I don't know how to get started to do so but I'd be glad to help.

@swift-kim
Copy link
Member

The work is in progress and we expect the issue to be resolved by the end of April. Thank you for your patience.

@swift-kim
Copy link
Member

@bbrto21 @bwikbs Hi. How is the Evas GL migration work going on? Can the change be merged to the master branch before the due date?

@bbrto21
Copy link
Contributor

bbrto21 commented Apr 15, 2021

@bbrto21 @bwikbs Hi. How is the Evas GL migration work going on? Can the change be merged to the master branch before the due date?

We had made some progress for migrating Evas-GL and Evas-GL direct mode, but currently it was stopped by the decision of a chief. The last work history can be found here(flutter-tizen/engine#54)

@bbrto21
Copy link
Contributor

bbrto21 commented Apr 15, 2021

@swift-kim Also you can see the comparison results table of this PoC in the confluence

@swift-kim swift-kim added bug Something isn't working and removed bug Something isn't working labels Apr 21, 2021
@swift-kim
Copy link
Member

It's been quite a while and I don't know if you're still interested with developing Flutter apps for Galaxy Watch, but finally some pregress has been made. I submitted my test app to the seller portal and am waiting for approval (at least it passed the API test phase but it's being delayed by other things.)

We completely changed the rendering backend implementation of the Tizen embedder and it no longer uses undocumented APIs when targeting watch devices. The change will be available soon when these PRs are merged:

Thank you all!

@swift-kim
Copy link
Member

swift-kim commented May 3, 2021

There's no more blocking issue and Flutter wearable apps can be uploaded to the store. My app has been published successfully and it must be the first Flutter app on the watch app store.

Some tips:

  • Don't forget to specifiy --device-profile wearable if you're using the flutter-tizen build tpk command to build a tpk without installing onto a connected device: https://github.com/flutter-tizen/flutter-tizen/blob/master/doc/publish-app.md.
  • For better app performance and memory footprint, consider switching to the native app type (flutter-tizen create --tizen-language cpp) which is now officially supported on watch devices.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants