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 · Jan 8, 2016 · 12086 views
    This topic created in 3958 days ago, the information mentioned may be changed or developed.
    依稀记得 2013 年的时候出现的 xRec 说是调用了私有接口,上架 App Store 当天就被下架了… 而且升级到下一个 iOS 之后又不能用了…

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

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

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

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

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


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

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

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

    @mornlight 谢谢!
    vincentxue
    vincentxue
    Jan 9, 2016❤️3
    23
    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
    abelyao
    OP
    Jan 9, 2016
    24
    @vincentxue 我想给你来 10 个感谢,可惜只能点一次!
    是的,就是想实现系统级别的屏幕录像(录像开始之后可以切换到其它 APP 去,并持续录像),非常感谢你直接给出了技术 keyword ,今天在网上搜了一圈都找不到一些合适的参考,让我这个完全没接触过 iOS 开发的一直是一头雾水…
    vincentxue
    vincentxue
    Jan 9, 2016
    25
    @abelyao 不用客气。

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

    需要持续研究。
    vincentxue
    vincentxue
    Jan 9, 2016
    27
    @ynyounuo 你确定这个不是坑? 用这个证书打包的应用我见过好几个了,都是坑爹的 app 。

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

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

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