最新的 Xcode 调试时可以不用开发者证书直接 build 进手机
今天用到的源代码链接
仿知呼客户端,在这感谢作者
1.下载好源代码后打开,修改下 bundle id 否则可能 bulid 不了,试下能不能 bulid 进模拟器或真机,可以就继续下一步

2.配置 appium

app path 可以在 Xcode 里查看 直接复制 full path 里面的内容就行了 真机的 udid 可以在 iTunes 里查看


如果没显示 udid 再点击下序列号就可以了
Advanced 的配置

代码

desired_caps = {}
# desired_caps['udid'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '9.1'
# desired_caps['deviceName'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
desired_caps['app'] = ('/Users/huan/Library/Developer/Xcode/DerivedData/zhihuDaily_2.0-cbhanrpleubilrhcyizjbfwzgufw/Build/Products/Debug-iphoneos/知乎日报.app')
# desired_caps['app'] = ('/Users/huan/Library/Developer/Xcode/DerivedData/hello_iOS-djcahojbilvnkkechgkdkfdyxabn/Build/Products/Debug-iphoneos/hello_iOS.app')
# desired_caps['app'] = '.app'
desired_caps['deviceName'] = 'iPhone Simulator'

desired_caps['bundleId'] = 'com.zhihu.zj'
print("连接中...")
dr = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
print("连接完成")
# 滑动("上",5)
# print("滑动...")
dr.find_element_by_name("矿石家族中的「玫瑰花」,最终被精炼为核电站的燃料").click()
sleep(5)

dr.quit()


以上就是在模拟器跑的大概流程
注意:启动脚本前先把退出模拟器,如果是真机,就先把要测试的 app 进程杀掉,否则的话会出现问题,真机千万记得在手机设置 -- 开发者--Enable UI Automation 设为开启
真机的步骤也差不多;如果 遇到打开 inspector 时提示:could not lauch appium inspector(could not get list of sessions from appium server) 试试关代理工具如 ***
appium 端的设置

代码

desired_caps = {}
desired_caps['udid'] = '3481aa07c06812c83860a67e4e70b1890e72d4e2'
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '9.1'
desired_caps['deviceName'] = '3481aa07c06812c83860a67e4e70b1890e72d4e2'
desired_caps['app'] = ('/Users/huan/Library/Developer/Xcode/DerivedData/zhihuDaily_2.0-cbhanrpleubilrhcyizjbfwzgufw/Build/Products/Debug-iphoneos/知乎日报.app')
# desired_caps['app'] = ('/Users/huan/Library/Developer/Xcode/DerivedData/hello_iOS-djcahojbilvnkkechgkdkfdyxabn/Build/Products/Debug-iphoneos/hello_iOS.app')
# desired_caps['app'] = '.app'
# desired_caps['deviceName'] = 'iPhone Simulator'

desired_caps['bundleId'] = 'com.zhihu.zj'
print("连接中...")
dr = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
print("连接完成")
# 滑动("上",5)
# print("滑动...")
dr.find_element_by_name("矿石家族中的「玫瑰花」,最终被精炼为核电站的燃料").click()
sleep(5)

dr.quit()

谢谢@neyo 的指导


↙↙↙阅读原文可查看相关链接,并与作者交流