V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
wipbssldo
V2EX  ›  分享创造

写了一个 App 包托管服务

  •  
  •   wipbssldo · 2021-08-09 11:14:02 +08:00 · 1671 次点击
    这是一个创建于 1200 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先来地址: https://github.com/E13Lau/Dragon-Li

    主要是用于团队内部移动端 CD 的一部分。

    Vapor 和 Web 页面都是边学边做的,所以项目比较粗糙。
    目前自己团队里面部署到内网一台打包的 Mac 上,还算满足需求。
    5 条回复    2021-08-12 18:23:18 +08:00
    lework1234
        1
    lework1234  
       2021-08-11 11:08:27 +08:00
    晒出些 demo 图片更好了,已 star
    wipbssldo
        2
    wipbssldo  
    OP
       2021-08-11 12:05:12 +08:00
    @lework1234 感谢!好建议,周末准备部署个 demo 到 VPS 上。
    但是有个痛点我一直没解决,就是 Swift 服务端代码下我还不清楚怎么解压缩 IPA 包和 APK 包然后读取里面的信息,这样的话上传接口就不需要在 header 里面提交资料。
    NouveauNom
        3
    NouveauNom  
       2021-08-12 15:43:15 +08:00
    @wipbssldo ipa 比较简单,直接解压了读里面的 info.plist 就行,apk 也有现成的。
    参考 https://github.com/rock-app/fabu.love
    NouveauNom
        4
    NouveauNom  
       2021-08-12 15:45:36 +08:00
    @wipbssldo

    <input type="file" name="file" id="file" onchange="fileSelect()">
    <script src="/dist/app-info-parser.js"></script>
    <script>
    function fileSelect () {
    const files = document.getElementById('file').files
    const parser = new AppInfoParser(files[0])
    parser.parse().then(result => {
    console.log('app info ----> ', result)
    console.log('icon base64 ----> ', result.icon)
    }).catch(err => {
    console.log('err ----> ', err)
    })
    }
    </script>
    wipbssldo
        5
    wipbssldo  
    OP
       2021-08-12 18:23:18 +08:00
    @NouveauNom 这种方式确实也可以,但是不适用。
    因为我这里上传是通过 HTTP 接口以二进制的方式提交的。在 Jenkins 那一端也是通过 shell 脚本 cURL 上传,中间没有 JS 执行的空间。
    我本来想在服务器端解压读取信息,但是 Swift 环境下太难了,不太懂,也没找到相关的资料。你提供的资料确实给了我参考。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3110 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:45 · PVG 21:45 · LAX 05:45 · JFK 08:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.