You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何通过atomac.launchAppByBundlePath启动FileMaker 13 Advanced?

解决Atomac启动FileMaker 13 Advanced的问题

针对你遇到的bundle ID冲突、启动报错等问题,我整理了可行的解决思路和方案:

一、最稳妥的临时方案:通过PID获取App引用

你提到的atomac.getAppRefByPid方法是目前最可靠的 workaround,这里给你完善一下具体实现:

import subprocess
import atomac
import time
import psutil

# 1. 用系统命令启动FileMaker 13 Advanced
subprocess.run(["open", "/Applications/FileMaker Pro 13 Advanced/FileMaker Pro Advanced 13.app"])
# 等待App完全加载(根据实际情况调整等待时间)
time.sleep(3)

# 2. 查找App的PID
target_pid = None
for proc in psutil.process_iter(["name", "exe"]):
    try:
        if "FileMaker Pro Advanced 13" in proc.name():
            target_pid = proc.pid
            break
    except (psutil.NoSuchProcess, psutil.AccessDenied):
        continue

# 3. 通过PID获取Atomac的App引用
if target_pid:
    fm_app = atomac.getAppRefByPid(target_pid)
    print(f"成功连接到FileMaker 13 Advanced(PID: {target_pid})")
    # 接下来就可以用fm_app开展自动化测试了
else:
    print("未找到FileMaker 13 Advanced的进程")

这种方式绕开了bundle ID冲突和路径启动的bug,让系统先处理App启动,再挂钩到运行中的进程,稳定性拉满。

二、为什么之前的尝试都失败了

给你拆解下每个方法失效的原因:

  • Bundle ID冲突问题:FileMaker 13和16 Advanced共用同一个bundle ID com.filemaker.client.advanced12,用launchAppByBundleId时,macOS默认会启动该ID关联的最新版本App,所以才会打开16而非13。
  • 修改Info.plist后启动失败:修改App的Info.plist里的bundle ID会破坏macOS的代码签名,Atomac依赖合法签名的App才能通过bundle ID启动,所以修改后的App会被系统阻止。
  • 路径启动报错:ValueError: NSInvalidArgumentException是Atomac对老版本Cocoa/Carbon App(比如FileMaker 13)的已知兼容性问题,库内部的OC对象交互在直接通过路径启动时,会触发缺失的count方法调用错误。

三、可选进阶方案:修复Bundle ID启动(适合有开发基础的用户)

如果你执意想用bundle ID启动,可以尝试修复代码签名问题:

  1. 复制FileMaker 13 Advanced App到新路径,比如/Applications/FileMaker Pro 13 Advanced-Copy.app
  2. 修改副本的Info.plist,将CFBundleIdentifier设为唯一值(比如com.filemaker.client.advanced13)
  3. 用codesign命令重新签名副本(没有开发者证书的话,可以用临时签名):
    codesign --force --deep --sign - /Applications/FileMaker Pro 13 Advanced-Copy.app
    
  4. 现在就可以用新的bundle ID启动了:
    atomac.launchAppByBundleId('com.filemaker.client.advanced13')
    

不过这个步骤比较繁琐,还需要终端操作,所以大部分测试场景下,PID方法会更省心。

内容的提问来源于stack exchange,提问作者Keith John Hutchison

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:17:42