V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
abelyao
V2EX  ›  iDev

既然 iOS 中“屏幕录像”是私有接口,那可不可以…

  •  1
     
  •   abelyao ·
    abelyao · 2016-01-08 17:39:52 +08:00 · 10805 次点击
    这是一个创建于 3271 天前的主题,其中的信息可能已经有所发展或是发生改变。
    依稀记得 2013 年的时候出现的 xRec 说是调用了私有接口,上架 App Store 当天就被下架了… 而且升级到下一个 iOS 之后又不能用了…

    这两天又出来一个屏幕录像的 APP 收费 30 元,虽说并没有特别贵,但使用频率低,加上又不知道什么时候就挂了…

    既然这样,那可不可以自己写一个 iOS APP 只给自己使用呢?就像 /t/249175 的 瓦工助手 一样呢?
    对 iOS 开发不了解,不知道可否实现?也不知道现在 iOS 9 是否还有接口?

    熟悉 iOS 的朋友可否来说一说?
    第 1 条附言  ·  2016-01-08 18:12:17 +08:00
    36 条回复    2016-06-13 14:42:21 +08:00
    abelyao
        1
    abelyao  
    OP
       2016-01-08 17:40:48 +08:00
    顺便 @xiqingongzi 一下瓦工助手的作者… 因为我也不知道 V2 上还有谁做 iOS 开发的…
    MerenguesGeek
        2
    MerenguesGeek  
       2016-01-08 17:45:38 +08:00
    可以用私有 API 给自己的 App 用,只是不能通过审核而已。
    abelyao
        3
    abelyao  
    OP
       2016-01-08 17:49:32 +08:00
    @MerenguesGeek
    就像 瓦工助手 一样不上架,直接以开发者安装到手机上,或者通过 fir.im 传播,可行吗?
    LMkillme
        4
    LMkillme  
       2016-01-08 17:52:19 +08:00
    如果你半年前问这个问题,答案都还是「 NO 」,因为之前你要用真机调试必须注册开发者账号,每年 99 刀,比起 30 元的 App 贵多了,不过 Xcode7 出来后可以免证书真机调试,而自己用又不需要通过苹果审核,所以答案是「 YES 」, ps ,有时间想给自己写个拦截所有 App 内广告的应用,就像之前被苹果下架的那个 App 一样。
    dorentus
        5
    dorentus  
       2016-01-08 17:52:23 +08:00
    这两天的那个是自己实现了一个 AirPlay server (这个协议本身是非公开的,网上有些旧版的资料和参考实现,新版的我还没见过)

    通过这种方式,把屏幕镜像到自己的 app 里面,然后 app 才能实现录制。
    LMkillme
        6
    LMkillme  
       2016-01-08 17:52:50 +08:00
    @abelyao fir.im 传播需要企业账号,每年 299 美元。
    abelyao
        7
    abelyao  
    OP
       2016-01-08 17:56:02 +08:00
    @LMkillme 对,那个下架的 APP 出来的时候, Xcode 7 已经发布了,当时就在想… 这类工具以后是不是会越来越多呢… 或许有人就直接发布源码,需要的人自己真机调试安装…

    @dorentus 那天的帖子有看到评论,也是神思维,这种方法都想到了…


    @LMkillme 看来只要能实现就只有走真机调试的渠道来安装了,什么 fir.im 一类的也行不通咯
    v1024
        8
    v1024  
       2016-01-08 19:27:02 +08:00
    现在有个 app 可以录像,叫 Vidyo 。
    利用 AirPlay ,自己起了一个 Airplay 服务,手机连接之,然后录像,还支持后期裁剪和 gif
    abelyao
        9
    abelyao  
    OP
       2016-01-08 19:41:15 +08:00 via iPhone
    @v1024 這就是我在主帖中說到的收費 30 元的 APP 啊
    goodbest
        10
    goodbest  
       2016-01-08 19:54:37 +08:00
    道理来讲是可以,但问题是根本没有源码...

    你看 XBMC 就可以用这种方式用 xcode 装到自己机器上了。
    GKLuke
        11
    GKLuke  
       2016-01-08 20:00:56 +08:00
    @v1024 不是已经下架了
    loveuqian
        12
    loveuqian  
       2016-01-08 20:03:20 +08:00 via iPhone
    可以啊
    有 mac 有源码就可以了
    abelyao
        13
    abelyao  
    OP
       2016-01-08 20:08:58 +08:00 via iPhone
    @goodbest @loveuqian
    對 iOS 開發不了解,我 APPEND 的兩份 GitHub 不知道是否有幫助?
    goodbest
        14
    goodbest  
       2016-01-08 20:58:08 +08:00
    @abelyao 你说的两个,应该都是录制该 app 运行时自己的视频,而不是录制别人的 app 运行时的视频。
    mornlight
        15
    mornlight  
       2016-01-08 21:13:57 +08:00
    iOS 里有很多私有 api 是可以调用的, Object-C 的 runtime 机制又很神奇,自己写个应用实现特殊效果完全没问题,用企业证书签发出去给其他人安装也没问题。
    abelyao
        16
    abelyao  
    OP
       2016-01-08 21:38:58 +08:00
    @goodbest 原来这样…

    @mornlight 企业证书签发 是指自有域名 + SSL 进行 IPA 直装吗?
    skx926
        17
    skx926  
       2016-01-08 22:53:57 +08:00
    @abelyao right,放 fir 上也可以
    skx926
        18
    skx926  
       2016-01-08 22:54:51 +08:00
    right, 企业证书打包好放 fir 上就行了
    abelyao
        19
    abelyao  
    OP
       2016-01-08 22:55:32 +08:00
    @skx926 那就是像 #6 @LMkillme 说的一样需要企业帐号 $ 299 咯…
    wanganjun
        20
    wanganjun  
       2016-01-08 23:30:14 +08:00
    如果只是单纯的录制显示的内容, quick time 就可以做到
    http://www.jianshu.com/p/fe887add14e5
    mornlight
        21
    mornlight  
       2016-01-08 23:54:44 +08:00
    @abelyao 必须的,没企业证书肯定不行,不然谁都能到处乱分发 App 了。
    参考 https://www.zhihu.com/question/23257754
    abelyao
        22
    abelyao  
    OP
       2016-01-09 00:30:52 +08:00 via iPhone
    @wanganjun 当然说的是在 iOS 设备上直接录制…

    @mornlight 谢谢!
    vincentxue
        23
    vincentxue  
       2016-01-09 02:13:57 +08:00   ❤️ 3
    iOS 9 已经有 ReplayKit 了,直接录就行了,不需要用私有 API 。我测试过。

    这里有测试代码,你可以试一试,需要在真机运行。

    https://gist.github.com/stollcri/732def91d09525deb49c

    另外有很多第三方游戏录屏的,我粗略看过 demo ,依赖当前的 OpenGL 环境,可能不符合你的需求。

    如果是系统级别的屏幕录像,那就要用私有 API 了。前两年我也研究过这个,给你一个链接参考。

    主要是通过 IOSurface 私有框架。

    https://github.com/coolstar/RecordMyScreen/blob/master/RecordMyScreen/CSScreenRecorder.m#L258

    open /System/Library/Frameworks/IOSurface.framework/Headers
    abelyao
        24
    abelyao  
    OP
       2016-01-09 02:23:19 +08:00
    @vincentxue 我想给你来 10 个感谢,可惜只能点一次!
    是的,就是想实现系统级别的屏幕录像(录像开始之后可以切换到其它 APP 去,并持续录像),非常感谢你直接给出了技术 keyword ,今天在网上搜了一圈都找不到一些合适的参考,让我这个完全没接触过 iOS 开发的一直是一头雾水…
    vincentxue
        25
    vincentxue  
       2016-01-09 02:49:28 +08:00
    @abelyao 不用客气。

    我刚才也在 Github 上运行了几个开源的,但是可惜在 iOS 9 上录出来的都是黑屏,但是声音是可以录的。不知道在低版本上会不会黑屏。估计这个方法已经被苹果屏蔽了吧。

    需要持续研究。
    ynyounuo
        26
    ynyounuo  
       2016-01-09 03:03:42 +08:00
    vincentxue
        27
    vincentxue  
       2016-01-09 03:16:22 +08:00
    @ynyounuo 你确定这个不是坑? 用这个证书打包的应用我见过好几个了,都是坑爹的 app 。

    我之前是想在 iPad 上干什么来着,去国外搜索应用也搜到到这个证书打包的应用,下载下来和宣传的功能完全不同。

    你这个应用我用测试机在飞行模式下载测试了了一下,进去就一个按钮,让去 App Store 下载别的应用。
    ynyounuo
        28
    ynyounuo  
       2016-01-09 03:31:01 +08:00
    @vincentxue
    坑的是哪些?这个倒不完全坑,的确可以录屏,但是除了录屏之外有没有什么下作的后台行为我倒是不知道,要求下载的是 Shou.tv ,原先可以在 iOS 8 上录屏,并不怎么好用。
    andyL
        29
    andyL  
       2016-01-09 14:04:42 +08:00   ❤️ 1
    我对于你提问的理解是,你有两个期望:
    1.开发出一个录屏 app
    2.能够分发出去
    ------
    针对第一点,虽然我是做 iOS 开发的,但是还只是写一般的企业级商业应用,对私有接口的使用也没有什么经验和研究,不能解决你的问题。

    针对第二点,我所知道的是苹果有一个企业级开发者账号,这种账号不能提供上架到 appstore 的签名证书,但是能够将 app 签名安装到 iOS 设备上。
    ( 1 )费用: 299 美元一年
    ( 2 ) App Store 上架:否 即该账号开发应用不能发布到 App Store ,只能企业内部应用。
    ( 3 )最大 uuid 支持数:不限制 安装到任意多台的设备上
    ( 4 )协作人数:多人
    然后这种账号申请需要严格一些的审核,但是淘宝上是有商家提供快速申请服务的。
    abelyao
        30
    abelyao  
    OP
       2016-01-09 14:11:26 +08:00
    @andyL 谢谢,关于企业分发,已经知道需要 299 刀,那干脆就不分发了,能通过 xcode 安装到手机上就行,如果真的做出来,就直接提供源代码,有需要的朋友自己通过 xcode 安装。现在是这样的思路。
    rebuilder
        31
    rebuilder  
       2016-01-09 14:50:31 +08:00
    问一句。通过第三方商店分发需要企业证书吗? 比如到 pp 助手上架
    erinsnow
        32
    erinsnow  
       2016-01-09 18:30:40 +08:00
    👍思路。其实这样也可以接受捐助。就跟 Mac 上不上架 mas 自己在网站卖产品或者接受捐助一样。
    abelyao
        33
    abelyao  
    OP
       2016-01-09 23:01:03 +08:00 via iPhone
    @erinsnow 但沒接觸過 iOS 開發,不知從何入手 😂
    AAAAAvine
        34
    AAAAAvine  
       2016-02-18 17:26:13 +08:00
    我也是小白一只,
    只说下我知道的几种方法,
    第一种原生的支持,就是一台 ios ,一台 mac ,然后,用苹果自家技术就能够实现了。
    第二种 appstore 里面的,最近出了一款叫 vidyo 的 app , 5 刀,利用 AirPlay 镜像技术实现录制屏幕,目前国区没有,要换到米国,(如果感兴趣的可以赶紧下手,目测应该很快被下架吧)
    第三种借助电脑第三方软件咯,像 iTools 之类的,但 iTools 用过几次,支持不快,朋友推荐了一款叫作苹果录屏王的软件,倒是挺好用,也是利用 AirPlay 技术,这是这个是纯免费,能够同屏演示,还能录制画面,你可以试试看: http://www.apowersoft.hk/iphone-ipad-recorder
    Tyler1989
        35
    Tyler1989  
       2016-04-02 20:02:37 +08:00 via iPad
    我也想要一个直接在 iPad 上录制屏幕的 app
    linKnowEasy
        36
    linKnowEasy  
       2016-06-13 14:42:21 +08:00   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5554 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:20 · PVG 16:20 · LAX 00:20 · JFK 03:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.