OS X Server 持续集成 ipa 发行版

2024-04-28

我们有一个配置了 SSL 证书并启用了 Xcode 的 osx 服务器。 在将 OSX Server 更新到 3.2.1 和 Xcode 6.0.1 之前,一切正常。

我们遇到的问题是,当集成完成后,我们单击设备上的安装按钮,它会尝试下载,但会默默失败。设备日志打印:

9 月 22 日 13:32:29 somePhone itunesstored[84]:无法加载 下载带有潜在错误的清单:Error Domain=NSURLErrorDomain 代码=-1001“无法连接到buildserver.com”UserInfo=0x14f74dfe0 {NSUnderlyingError=0x14f6e8330 "请求超时。", NSErrorFailingURLStringKey=https://buildserver.com:20343/api/integrations/fc9e3c6ed7d80506e9e8e37b0d06a905/87785234-f589-4230-9c0c-055f656b28a6/install_manifest.plist https://buildserver.com:20343/api/integrations/fc9e3c6ed7d80506e9e8e37b0d06a905/87785234-f589-4230-9c0c-055f656b28a6/install_manifest.plist, NSErrorFailingURLKey=https://buildserver.com:20343/api/integrations/fc9e3c6ed7d80506e9e8e37b0d06a905/87785234-f589-4230-9c0c-055f656b28a6/install_manifest.plist https://buildserver.com:20343/api/integrations/fc9e3c6ed7d80506e9e8e37b0d06a905/87785234-f589-4230-9c0c-055f656b28a6/install_manifest.plist, _kCFStreamErrorDomainKey=1、_kCFStreamErrorCodeKey=60、NSLocalizedDescription=无法连接到 buildserver.com}

当我检查端口 20343 时,来自 OSX Server 的有效 ssl 证书被切换为由 Xcode Server 根证书颁发机构签名的证书,它似乎是自签名的。

在旧版本的 osx 服务器中,端口 20343 不存在,因为 plist 文件与站点的其余部分在同一端口下提供服务。有关侦听端口 20343 的服务器的信息。

sudo lsof -i | grep "20343"
Password:
node         65          _xcsd   15u  IPv4 0x73c2c4b0fa77e271      0t0    TCP *:20343 (LISTEN)
node      29118          _xcsd   16u  IPv4 0x73c2c4b0fa77e271      0t0    TCP *:20343 (LISTEN)
node      29120          _xcsd   16u  IPv4 0x73c2c4b0fa77e271      0t0    TCP *:20343 (LISTEN)
node      29121          _xcsd   16u  IPv4 0x73c2c4b0fa77e271      0t0    TCP *:20343 (LISTEN)
node      29122          _xcsd   16u  IPv4 0x73c2c4b0fa77e271      0t0    TCP *:20343 (LISTEN)
node      29123          _xcsd   16u  IPv4 0x73c2c4b0fa77e271      0t0    TCP *:20343 (LISTEN)
node      29124          _xcsd   16u  IPv4 0x73c2c4b0fa77e271      0t0    TCP *:20343 (LISTEN)
node      29125          _xcsd   16u  IPv4 0x73c2c4b0fa77e271      0t0    TCP *:20343 (LISTEN)
node      32397          _xcsd   17u  IPv4 0x73c2c4b0fa77e271      0t0    TCP *:20343 (LISTEN)

这似乎是 osx 服务器和 xcode 机器人上的一个错误。有谁知道如何在我们的设备上下载 ipa 文件的解决方案吗?


同样的问题在这里。

最初,开箱即用的 Xcode Server 解决方案可以正常工作,任何设备都可以安装 Xcode 机器人生成的 .ipa。一两天后,它突然坏了,所有设备都无法再下载,只显示:

无法连接到www.example.com

在我的 iPhone 上跟踪日志,我还可以看到设备尝试连接https://www.example.com:20343/api/integrations https://www.example.com:20343/api/integrations。这个 Xcode Web 服务显然使用的是自签名Xcode 服务器根权限证书(而不是在 OS X Server 管理应用程序中选择的证书),并且由于任何客户端需要访问此 Web 服务请求都被错误签名。

A 在 Apple 开发者论坛上发帖 https://devforums.apple.com/thread/247165?tstart=75引导我到位于此处的 Xcode Server Apache 配置(谢谢保罗·维里蒂):

/Library/Developer/XcodeServer/CurrentXcodeSymlink/Contents/Developer/usr/share/httpd_xcs.conf

或在 OS X Server 4.1.5 中:

/Library/Developer/XcodeServer/CurrentXcodeSymlink/Contents/Developer/usr/share/xcs/httpd_xcs.conf

包含通过常规 Xcode Server 网站公开 Web 服务的部分:

<IfModule mod_proxy.c>
    ProxyPass /xcode/api https://127.0.0.1:20343/api retry=0 timeout=30
    ProxyPassReverse /xcode/api https://127.0.0.1:20343/api
    ProxyPass /xcode/socketio http://127.0.0.1:20300 retry=0 timeout=30
    ProxyPassReverse /xcode/socketio http://127.0.0.1:20300
</IfModule>

有趣的是 /xcode/api/ 请求是使用正确的证书进行签名的,因此可以被任何客户端接受。 (您可以通过在服务器 URL 后添加 /xcode/api/integrations 来访问 Xcode 服务器来测试它。这只是一个 JSON Web 服务。如果您的服务器的证书由有效机构签名,那么它将被接受,不会出现任何问题。)

这导致了我的两步解决方案(假设您的服务器位于路由器/防火墙后面):

1. 将公共 TCP 端口 20300、20343 重定向到防火墙/路由器中的专用 TCP 端口 443这样,Web 服务请求将转发到使用设备自动接受的正确证书的 Xcode 服务器。 Xcode 还使用端口 20344 和 20345,但将这些端口留给其他连接。注意:如果您有 OS X 服务器管理 Apple 路由器并在“公共服务”下重新切换 XCode,则这些更改可能会被覆盖。

2.代理/api和/socketio请求到本地webservice服务器不知道 /api,因此将以下行添加到 httpd_xcs.conf 中的 mod_proxy.c 部分:

ProxyPass /api https://127.0.0.1:20343/api retry=0 timeout=30
ProxyPassReverse /api https://127.0.0.1:20343/api
ProxyPass /socketio http://127.0.0.1:20300 retry=0 timeout=30
ProxyPassReverse /socketio http://127.0.0.1:20300

最后的想法/注释:

我不确定我们是否应该将使用自签名证书的网络服务视为一个错误。 Apple 提供的配置文件不正确也可能是一个问题。也许在 ProxyPass 行中删除 /xcode 部分而不是添加它们就足够了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OS X Server 持续集成 ipa 发行版 的相关文章

  • cocos2d 2.0-rc2:结束director并重新启动

    我有一款由 cocos2d 驱动的游戏 它使用 UIKit 菜单 所以我只使用一个视图控制器的框架 即游戏本身 而且 它只有一个场景 从cocos2d 2 0开始 director本身就是一个UIViewController子类 所以我只是
  • 使用 Swift 3 和 Realm 同步 Apple Watch 和 iPhone

    我需要从 Apple Watch 和 iPhone 显示和修改我的数据结构 数据库 我目前正在使用一个简单的领域结构 其中有一个对象 A 和一个可以容纳大量 A 的对象 B 因此 在 iPhone 上 用户可以创建 B 并添加 A 当然还可
  • 检查 UITableViewCell 是否完全可见

    如何检查 UITableViewCell 在屏幕上是否完全可见 不被选项卡或导航栏切断 我可以使用以下代码获取可见单元格 NSArray indexes tableView indexPathsForVisibleRows 但我想排除屏幕中
  • UITableViewCell 内的 UIPageViewController

    嘿我想问如何在 UITableViewCell 内实现 UIPageViewController 我一直在阅读周围的内容 但到目前为止似乎对任何尝试的人都不起作用 我希望得到一些提示 不需要完整的答案 谢谢 目前还不清楚你到底想做什么 但让
  • 图像像素数据如何“扫描”图像像素?

    目标 查找仅包含黑色和透明像素的图像左侧的第一个黑色像素 我拥有的 我知道如何获取像素数据并拥有黑色和透明像素的数组 在这里找到它 https stackoverflow com a 1262893 358480 https stackov
  • iOS 版 Sunrise 如何使用 iCloud 凭据访问我们的日历?

    iOS 上的 Sunrise 日历在版本 2 中添加了对 iCloud 日历的支持 从这一页 http blog sunrise im post 74146344289 about icloudSunrise 团队是这样说的 当您输入 iC
  • 如何截断 UITableView Cell TextLabel 中的文本,使其不隐藏 DetailTextLabel?

    我有一份电话费率清单 textLabel是国家 地区并且detailTextLabel是我必须显示的速率 对于某些字符串 textLabel太长并且detailTextLabel变得隐藏 是否有一个设置可以自动调整文本 如果太长了 这是一个
  • ARKit 演示在 iPhone 6/iPhone 6 Plus 上崩溃

    我正在与ARKit功能 https developer apple com videos play wwdc2017 602 最近发布了主要的 iOS 版本 但我遇到了错误崩溃failed assertion MTLRenderPassDe
  • 从 iPhone 设备查找当前国家/地区

    我必须在 iPhone 设置中获取当前国家 地区 谁能告诉我如何在 iPhone 应用程序中获取当前国家 地区 我必须使用当前国家 地区来解析需要传递当前国家 地区的 RSS 提要 请帮我找到那个国家 提前致谢 要查找用户选择的语言所在的国
  • Xcode“使用性能工具运行”被禁用?

    我正在尝试从我的 Xcode 项目中查找内存泄漏 我不知道发生了什么 我无法选择任何内容Run gt Run with performance tool 事物列表被禁用 请帮助我 我是初学者 问题是我已经删除了构建文件夹并尝试使用性能工具运
  • 在应用程序中全局关闭自动更正

    我想在 iPad 应用程序中禁用文本输入自动更正 无论设备上自动更正的全局设置是什么 有没有一种好的方法可以通过 API 执行此操作 或者我只需要浏览整个应用程序 找到所有文本输入字段 然后单独关闭每个字段的选项 抱歉 您必须检查所有文本字
  • 在启用滚动的情况下扩展堆栈视图内的 UITextView

    我正在尝试使用自动布局和 Stackview 来实现一些目标 我有一个垂直 Stackview 其中包含 UIView UITextView 和 UIView 如下所示 我已经在这里查看了以前的答案 但找不到一个干净的解决方案来实现此目的
  • 如何使用 Swift Package Manager 将 SwiftLint 与 iOS 应用程序集成?

    我正在使用 Xcode 11 beta 5 创建一个新的 iOS 应用程序 并且我想使用 Swift Package Manager 而不是 CocoaPods 来管理依赖项 使用 SwiftLint 和 CocoaPods 时的常见模式是
  • 使用 LLVM/Clang 忽略特定文件中的所有警告

    我的 iOS 项目中的一些文件有一些警告 我想忽略这些警告 我不想禁用整个项目中的警告 知道如何做到这一点 只是禁用一些特定文件 那么 有没有办法完全忽略特定文件中的所有警告呢 我在 Xcode 4 2 上使用 LLVM 3 0 和 Cla
  • 停止在 iOS Web 应用程序上滚动屏幕边缘?

    正在开发 iOS 网络应用程序 用户可以上下滚动页面内容 但是 有没有办法阻止屏幕被拖动得太远以致灰色背景变得可见 这可以通过在移动 Safari 中打开任何网页并将页面下拉来复制 您可以使用诸如 Pastrykit 或 iScroll 之
  • 使用 iOS swift AVPlayer 在横向模式下不全屏

    我将视频视图设置为全屏 然而 在模拟器中玩时 它并没有全屏运行 此问题仅适用于 iPad 不适用于 iPhone 这是我的代码 override func viewDidAppear animated Bool super viewDidA
  • prepareForSegue 和 PerformSegueWithIdentifier 发送方

    我想知道标题中的函数如何工作以及发送者参数 假设单击按钮调用了performSegue方法 那么这是否也调用了prepareSegue方法 是否在performSegue方法之前但在按下按钮之后调用prepareSegue方法 另外 这两个
  • 解包可选值时意外发现 nil - 使用 ALAMOFIRE

    我正在尝试使用 Alamofire 获取 JSON 格式的数据 当我使用一个 URL 时 它工作正常 当我使用另一个 URL 时 我在解包可选值时收到错误 我似乎无法追踪错误来自哪里 我已采取将代码放入 ViewDidLoad 来跟踪错误
  • 基于 ID 的 UiLocalNotifications

    是否有关于根据那里的 Id 存储 UIlocalNotifications 并根据那里的 Id 取消通知的教程 在本地通知中 您有此词典的用户词典 您可以取消通知 http www picksourcecode com ps ct 1612
  • 了解 React Native 中的默认字体大小

    在过去的几个月里 我一直在开发一个 React Native 应用程序 但有些事情总是让我困惑 而我现在正试图弄清楚它的真相 我正在尝试标准化应用程序中的字体大小 正文 标题等 并且正在努力了解 React Native 究竟从哪里获取默认

随机推荐

  • 与 F# List.nth 的参数顺序混淆

    List nth is T 列表 gt 整数 gt T 而不是标准int gt T 列表 gt T like Seq nth 这使得管道有些尴尬 难道幕后有什么事情吗 我不知道为什么 可能是为了ocaml兼容性 http www csc v
  • 使用 getPathMatcher 的全局模式

    从 OCP 考试的 Kathy Sierra Bert Bates 书中我找到了以下代码 public class FileTest public static void matches Path path String glob Path
  • 在响应式网格上设置多个“相同高度”行部分的 CSS 唯一解决方案

    Wanted 仅 CSS 的解决方案 可在每行基础上启用多个等高网格 部分 并且也是响应式的 注意 这是一个后续问题这个问题 https stackoverflow com questions 44115503 css only solut
  • 如何在Nuxt Js中使用Google Map API?

    下面是我在 Nuxt Js 中获取 API 的代码 我已经编写了用于调用 API 的代码 但没有得到结果 我也没有得到任何与此相关的资源 async created const config headers Accept applicati
  • Python 比 C++ 更快、更轻吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 可以将矩形设置为显示边框吗?

    以下应用 public class Temp extends Application Override public void start Stage primaryStage StackPane root new StackPane Re
  • 挂载卷时无法运行 mariadb

    使用以下 docker compose yml 文件 version 2 services wordpress image wordpress ports 8080 80 environment WORDPRESS DB NAME my d
  • 数据与线的日期和时间转换

    我使用 D3 V5 创建了此图表 另外 我已在小提琴上附加了示例数据 您可以点击此处查看 https plnkr co edit pINxcS9yt9AuJmSk02Fs p preview 我已经包括了tick函数代码块 它在向左滑动的路
  • 在 iPhone 6 和 6 plus 中设置背景图像和图标图像

    如何区分 iPhone 5 和 iPhone 6 和 6 Plus 不同分辨率下的背景图像和图标图像 您必须在图像目录中启用 iOS 8 尺寸 它们在现有项目中默认关闭
  • 按公司名称过滤用户

    我试图让 Azure Active Directory 中的所有用户按以下条件过滤companyName过滤 我使用的电话是 v1 0 users select id mail displayName department filter c
  • R - 小鼠 - 添加一列,对具有估算值的列进行求和

    我有一个缺少数据的数据库 我需要估算数据 我使用的是小鼠 然后根据原始列创建新列 使用估算数据 我需要用这些新列进行统计分析 具体来说 我的参与者使用 7 点李克特量表填写了几份调查问卷 有些人没有回答所有问题 然后我需要估算值 1 对列中
  • 如何获取eclipse中的工作空间路径? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在研究PDE Eclipse Plugin Project 我需要获取工作区路径 我的文本小部件 swt 应该设置为当前工作空间路径 如
  • 在可序列化 Java 类中使用记录器的正确方法是什么?

    我有以下 doctored 我正在开发的系统中的类以及Findbugs http findbugs sourceforge net 正在生成一个SE BAD FIELD http findbugs sourceforge net bugDe
  • 单击表格行后如何刷新部分视图

    我有与模型链接的表格 foreach var item in Model tr td Html DisplayFor x gt item Field1 td td Html DisplayFor x gt item Field2 td tr
  • 初始化组件不存在

    InitializeComponent 此代码行出现在我的所有 Xaml 页面的构造函数中的代码隐藏中 它抛出以下错误 初始化组件不存在 现在我无法调试项目中的任何页面 尽管我已经注释掉了这一行 我怎样才能解决这个问题 任何帮助将不胜感激
  • Android 布局 xml 文件中 TextView 的首字母大写

    我在布局 xml 文件中有一个 TextView 如下所示
  • JDBC多线程插入可以吗?

    我目前正在开发一个 Java 项目 我需要准备一个大的 对我来说 mysql 数据库 我必须使用 Jsoup 进行网页抓取并将结果存储到我的数据库中 据我估计 我将大约插入 1 500 000 到 2 000 000 条记录 在我的第一次试
  • 高级 SQLite 更新表查询

    我正在尝试更新数据库的表 B 如下所示 Table A id amount date b id 1 200 6 31 2012 1 2 300 6 31 2012 1 3 400 6 29 2012 2 4 200 6 31 2012 1
  • Spring MVC 中的多响应 http 状态

    有以下代码 RequestMapping value system login method RequestMethod GET public void login RequestBody Login login if login user
  • OS X Server 持续集成 ipa 发行版

    我们有一个配置了 SSL 证书并启用了 Xcode 的 osx 服务器 在将 OSX Server 更新到 3 2 1 和 Xcode 6 0 1 之前 一切正常 我们遇到的问题是 当集成完成后 我们单击设备上的安装按钮 它会尝试下载 但会