三星电视安装Jellyfin出现个中问题的总结
- tizen安装过程错误:app_id[AprZAARz4r.Jellyfin] install failed[118, -12], reason: Check certificate error : :Invalid certificate chain with certificate in signature.:<-3>
- tizen构建过程错误:Build Web Application: 80% ( 8/10)Exception in thread “main” java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Plugin ……
情况介绍,
- 几个GitHub的仓库
- Jellyfin官方的tizen平台的仓库:https://github.com/jellyfin/jellyfin-tizen
- jeppevinkel/jellyfin-tizen-builds仓库有很多最新编译好的wgt包
- Georift/install-jellyfin-tizen仓库,使用docker进行远程安装可以引入第三方证书(我测试失败)
- vitalets/docker-tizen-webos-sdk仓库, docker 了一个准备好的sdk系统,可以在docker里进行相关的tizen操作
我的设备情况
- LS32BM702UUXEN 32寸显示器,可以看电视带遥控器,欧洲版
- TQ55Q67DAUXXC 55寸电视,欧洲版
首先基于官方的操作流程在实体机器上(Mac Pro M1),各种操作实验,不是构建失败就是docker安装证书问题,询问过各种AI(Grok、ChatGPT、Googe AIStudio)问题依然得不到解决,中途还使用过3种虚拟机(Ubuntu,Windows10,Debian Server)依然不能构建和安装。
经过三天折腾后发现vitalets/docker-tizen-webos-sdk仓库的docker可以构建打包,但是没有项目目录,于是打开脑洞总结了一下流程:
- 按照官方要求Prerequisites准备。
- 安装Tizen Studio后主要是使用Certificate Manager来建立自己的证书,过程参照三星官方Docs 操作
- 按照jellyfin/jellyfin-tizen说明中从Getting Started步到Build WGT之前,准备好jellyfin-web和jellyfin-tizen目录
- ⚠️关键步骤,拷贝之前建立的证书到jellyfin-tizen目录下(方便后续映射到docker中进行构建),然后按照vitalets/docker-tizen-webos-sdk里
docker run -it --rm -v tvdata:/home/developer vitalets/tizen-webos-sdk bash
测试结果
~# tizen version
Tizen CLI 2.5.21
~# sdb version
Smart Development Bridge version 4.2.12
~# ares-setup-device –version
Version: 1.10.4-j1703-k - ⚠️关键步骤,然后按照vitalets/docker-tizen-webos-sdk准备打包Pack app
docker run -it –rm -v ./src:/app -v tvdata:/home/developer vitalets/tizen-webos-sdk bash
其中./src是本地机器准备好的jellyfin-tizen目录 - ⚠️关键步骤,将之前准备好的证书拷贝到docker的~/目录下,然后按照三星官方Tizen Docs中Managing a Security Profile的步骤添加准备好的证书到profiles中
$ tizen security-profiles add -n MyProfile -a ~/tizen-sdk-data/keystore/author/mycert.p12 -p 1234
其中MyProfile为Profile名称任意
结果如下:
No exist the default path of security profiles. author path: ~/tizen-sdk-data/keystore/author/mycert.p12 author password: **** distributor1 path: ~/tizen-sdk/tools/certificate-generator/certificates/distributor/tizen-distributor-signer.p12 distributor1 password: ************************* distributor1 CA path: ~/tizen-sdk/tools/certificate-generator/certificates/distributor/tizen-distributor-ca.cer In Configuration, Set a default profile path to ‘~/tizen-sdk-data/ide/keystore/profiles.xml’. Wrote to ‘~/tizen-sdk-data/ide/keystore/profiles.xml’. Succeed to add ‘MyProfile’ profile. If want to sign by this, add the file of security profiles in CLI configuration like ‘tizen cli-config “default.profiles.path=~/tizen-sdk-data/ide/keystore/profiles.xml”‘.
添加后
$ tizen security-profiles list
我的Profile Name为tv
然后需要删除docker自带的Profile
$ tizen security-profiles remove -n dev - 接下来即可构建web app了
出现BUILD SUCCESSFUL即表示构建成功 - 在本地机(Mac Pro)执行打包
$ tizen package -t wgt -o . — .buildResult –sign tv
显示如上结果,标识打包成功 - Tizen安装
$ tizen install -n Jellyfin.wgt -t TQ55Q67DAUXXC
安装完成!!
⚠️注意上面步骤,6-8步为docker完成!