如何为 Watch OS 2 模拟器构建 openssl 库?

Posted

技术标签:

【中文标题】如何为 Watch OS 2 模拟器构建 openssl 库?【英文标题】:How to build openssl library for Watch OS 2 simulator? 【发布时间】:2015-10-12 16:14:33 【问题描述】:

我想从这个 github 为 watch OS 2 构建 openssl 库: https://github.com/nachocove/ios-openssl

它在 Xcode 7 beta 的第一个版本中工作,但现在我得到了:

ld:在 /../testWatchOS WatchKit Extension/ios-openssl/lib/libcrypto.a(bn_lib.o) 中,为 watchOS 模拟器构建,但在为 iOS 构建的目标文件中链接,适用于体系结构 i386

Google 2 小时,尝试不同的 SDK 路径无济于事。

【问题讨论】:

【参考方案1】:

你可以试试这个:https://github.com/mkhon/Python-iOS-Support 它包含用于 tvOS 和 watchOS 的 OpenSSL.framework Makefile 胶水,包括模拟器(查看自述文件)。

【讨论】:

您好 Max,感谢您的回答。 make 时出现此错误:$ make make: *** No rule to make target dist/iOS/Python.framework', needed by Python-3.4.2-iOS-support.b3.tar.gz'。停止。 BillChan,如果你想从这个 repo 为 watchOS 构建 OpenSSL,你需要运行“make OpenSSL.framework-watchOS”。检查自述文件。 你好 Max,我也阅读了自述文件,但运行“make OpenSSL.framework-watchOS”时出现错误 # 修补应用程序/speed.c 以不使用 fork(),因为它在tvOS sed -ie 's/define HAVE_FORK 1/define HAVE_FORK 0/' build/watchOS/openssl-1.0.2d-watchsimulator.i386/apps/speed.c # 补丁配置为构建 tvOS 或 watchOS,而不是 iOS LANG=C sed -ie 's/-D_REENTRANT:iOS/-D_REENTRANT:watchOS/' build/watchOS/openssl-1.0.2d-watchsimulator.i386/配置 sed: RE 错误: 非法字节序列 make: *** [build/watchOS/ openssl-1.0.2d-watchsimulator.i386/Makefile] 错误 1 BillChan,你的 sed 有问题。 'which sed' 是什么意思? 看起来像默认路径:/usr/bin/sed【参考方案2】:

受@Max Khon 作品的启发。我还分叉了 ios-openssl github,使其适用于 Watch OS 和模拟器:

https://github.com/billchan/ios-openssl/tree/WatchOS

以及适用于 iOS 和 WatchOS 的通用库

https://github.com/billchan/ios-openssl

【讨论】:

以上是关于如何为 Watch OS 2 模拟器构建 openssl 库?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Mac OS X 构建 Audacity 应用程序源代码

如何为模拟器构建 react-native 缩小的“产品”应用程序?

如何为 android 构建 mupdf

如何从 Apple Watch 检索 os_log 条目?

如何为通用 ios 设备构建 Webrtc ios?

如何为 VoiceOver AccessibilityLabel 设置 Apple Watch 标题