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
tmdbug
V2EX  ›  iDev

iOS 自动化打包 ipa 后上传到自己服务器下载

  •  
  •   tmdbug · 2018-05-22 16:51:38 +08:00 · 9310 次点击
    这是一个创建于 2137 天前的主题,其中的信息可能已经有所发展或是发生改变。

    要搞的是这么一件事情,就是通过命令行去实现自动打包,然后上传到测试分发平台。
    但是公司的 app 又不让上传到第三方的平台上,所以就又搞了一个测试分发平台。

    大致思路:

    A、先进行自动化打包导出 ipa
       clean
       build
       archive
       exportArchive
    
    B、分析下载原理
       1.创建 Manifest.plist 文件
       2.通过 itms-services://协议让 Safari 进行下载
       3.ipa 下载链接必须为 https 的
    
    C、最终整体实现思路
       1.自动导出 ipa
       2.导出后自动上传到服务器网站的下载目录
       3.服务器进行对 ipa 解包提取 plist、同时把 icon 图标复制到下载目录
       4.将提取的 plist 相关信息和图标下载路径写入 Manifest.plist
       5.将下载地址生成二维码
       6.刷新网站下载页面
       7.js 判断页面打开的浏览器,提示其用手机的 Safari 打开
    

    详细信息在这里: https://www.tmdbug.com/webdev/python/709.html

    第 1 条附言  ·  2018-05-23 14:52:40 +08:00
    自动打包导出
    https://github.com/TMDBug/auto_packing

    服务器解包读取 ipa 中的 plist 数据
    https://github.com/TMDBug/read_ipa_plist

    网站服务可自己去找相关框架做个
    比如 web.py 、bottle、flask 等
    第 2 条附言  ·  2018-05-23 15:13:02 +08:00
    三楼说的 nodejs 的 ipapk-server 可以做 https 的 web 端
    https://github.com/zhao0/ipapk-server

    及五楼说的 Jenkins 也很不错,把软件开发过程形成工作流,Jenkins 自动运行你的脚本
    https://www.jianshu.com/p/b524b151d35f
    13 条回复    2019-07-03 16:50:20 +08:00
    xuecan
        1
    xuecan  
       2018-05-22 17:55:46 +08:00
    可以可以 那么做好准备开源吗
    xuchaochao
        2
    xuchaochao  
       2018-05-22 19:36:31 +08:00
    之前我也实现了个 ,但是文中说的 ipa 的下载链接必须是 https 其实不对,只要配置文件在的路径是 https 的就好了(所以说的就是放在一些有 hpps 的公共的网页就好了,当然自己搞个 https 也行)
    lanceli
        3
    lanceli  
       2018-05-22 19:42:32 +08:00
    ETiV
        4
    ETiV  
       2018-05-22 20:44:13 +08:00
    可能对我来说唯一的难点就是 ipa 签名了…

    我有一个服务,直接把安装链接( itms-services://)推送到企业微信上,iOS 企业微信里即点即装
    lnim
        5
    lnim  
       2018-05-23 00:53:31 +08:00
    Jenkins ? 我司用这个实现了一套打包 发布(企业证书) 下载~
    tmdbug
        6
    tmdbug  
    OP
       2018-05-23 14:54:26 +08:00
    @xuecan 相关代码已经在附言了,如有需要可以看下,代码可能有些乱。
    tmdbug
        7
    tmdbug  
    OP
       2018-05-23 14:55:15 +08:00
    @xuchaochao 多谢提醒。😆
    tmdbug
        8
    tmdbug  
    OP
       2018-05-23 15:00:10 +08:00
    @lanceli 不错,无需 https 的域名,也不需要自己开发网站,直接把相关文件复制到路径下就 OK,很👍。
    tmdbug
        9
    tmdbug  
    OP
       2018-05-23 15:03:29 +08:00
    @ETiV 可以找找有企业证书的同事🤠
    tmdbug
        10
    tmdbug  
    OP
       2018-05-23 15:05:55 +08:00
    @lnim 刚百度了下,好东西,我要研究下。
    Obelly
        11
    Obelly  
       2018-05-23 16:10:12 +08:00
    fastlane gym
    upload bin
    niuxinghua
        12
    niuxinghua  
       2019-03-15 21:56:08 +08:00
    打包的时候会要求授权签名输入密码 这个楼主怎么处理的
    yalin
        13
    yalin  
       2019-07-03 16:50:20 +08:00
    plist 文件中 ipa 链接必须是无状态的吧,不会自动带 session 信息吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3230 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:11 · PVG 20:11 · LAX 05:11 · JFK 08:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.