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

Auto detect bundle id with code #4

Open
ThatBean opened this issue Dec 10, 2019 · 12 comments
Open

Auto detect bundle id with code #4

ThatBean opened this issue Dec 10, 2019 · 12 comments
Assignees

Comments

@ThatBean
Copy link

Found 2 possible candidate:

The ideal scenario is:

  • report the terminal app bundle id when debugging from in terminal
  • report the packaged app bundle id when open a release app by Finder or start

This way the required extra --bundle-id=* param can be removed for --mode-2

@josephshen
Copy link
Contributor

第一个方案我之前试过了,是不行的。

@josephshen
Copy link
Contributor

josephshen commented Dec 10, 2019

因为取色器启动的时候是以子进程方式启动的,而它自己并不是一个所谓的Bundle。而且往上找父进程的方式呢,又是不稳定的,比方说,我从terminal里面启动electron里面的取色器,权限实际上是需要terminal的,而不是electron的;但是进程树里面找到的第一个父进程是electron的。

@josephshen
Copy link
Contributor

image

@josephshen
Copy link
Contributor

josephshen commented Dec 10, 2019

比如说这个我在terminal里面启动的例子,取色器最终会作为一个Electron Helper(就是图中蓝色高亮的那个)进程的子进程运行。而
1:)你给的那几种例子都是找进程自己的Bundle-id,所以没法正常工作;
2:)如果试图遍历父进程的话,一级父亲进程只能找到Electron,但是这个并不是权限的目标程序;
3:)如果指定找几级父进程的话,还是不能全部覆盖到可能的打包情况(究竟是在Teminal里调试还是最终打包了);
4:)所以还是指定Bundle-id最为方便。

@ThatBean
Copy link
Author

把规则改为 找到 launchd 的下一级父进程的 bundle id 应该比较符合?
考虑加这个的原因是 debug 的时候 bundle id 难以确定,不好提供 example

@josephshen
Copy link
Contributor

josephshen commented Dec 10, 2019

😂我感觉太复杂了,我们还是在REAME里面加上个提醒吧
我觉得我就是忘记告诉你这点了!!
所以估计你调试的时候坑定踩到坑了~~~😂我的错❌

@josephshen
Copy link
Contributor

josephshen commented Dec 10, 2019

确定id的时候用这条命令吧,cat XXXXXX.app/Contents/Info.plist | grep -A1 Identifie。

@josephshen
Copy link
Contributor

grep 的时候-A1指定打印出来下一行,然后匹配Identifie就行了。
辛苦你了~~~😂😂😂

@ThatBean
Copy link
Author

这个逻辑用 node 也是可以做的,提在这边是考虑到 objC 可能有 Apple 提供的接口会在整合度和效率上好一些

我在 electron-color-picker 先用 ps + defaults read 的方法 patch 一下看看,参考
https://stackoverflow.com/questions/8840149/how-to-obtain-an-applications-bundle-id-or-plist-path-from-only-the-pid

@josephshen
Copy link
Contributor

嗯,我当初也是觉得要是可以自动找就好了,然后各种方法都试了,结论就是还是在脚本语言里面处理以下就好了😂,objC有点小麻烦而且还不确定好使。
当时我考虑的是,可能只有开发调试的时候才不确定Identifie,打包好以后实际上就定下来了,所以就定了加一个参数的方案。

@josephshen
Copy link
Contributor

@ThatBean 优秀!!我参考一下!!

@josephshen josephshen reopened this Dec 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants