繁体   English   中英

Cordova网络插件无法在iOS上构建

[英]Cordova Network Plugin does not build on iOS

像这样安装cordova-network-plugin

cordova plugin add cordova-network-plugin

到一个有效的Cordova项目( 以前在iOS上成功构建 ),该项目莫名其妙地无法为iOS cordova build ioscordova build ios )。

它在Android上运行良好,但在iOS上会产生以下错误消息:

Undefined symbols for architecture i386:
"_SCNetworkReachabilityCreateWithAddress", referenced from:
  +[CDVReachability reachabilityWithAddress:] in CDVReachability.o
"_SCNetworkReachabilityCreateWithName", referenced from:
  +[CDVReachability reachabilityWithHostName:] in CDVReachability.o
"_SCNetworkReachabilityGetFlags", referenced from:
  -[CDVReachability connectionRequired] in CDVReachability.o
  -[CDVReachability currentReachabilityStatus] in CDVReachability.o
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
  -[CDVReachability startNotifier] in CDVReachability.o
"_SCNetworkReachabilitySetCallback", referenced from:
  -[CDVReachability startNotifier] in CDVReachability.o
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
  -[CDVReachability stopNotifier] in CDVReachability.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **

The following build commands failed:
Ld build/emulator/WowSuchApp.app/WowSuchApp normal i386
(1 failure)
Error code 65 for command: xcodebuild with args: -xcconfig,/Users/Doge/Desktop/WowSuchApp/cordova/platforms/ios/cordova/build-debug.xcconfig,-project,WowSuchApp.xcodeproj,ARCHS=i386,-target,WowSuchApp,-configuration,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/Users/Doge/Desktop/WowSuchApp/cordova/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Users/Doge/Desktop/WowSuchApp/cordova/platforms/ios/build/sharedpch
ERROR building one of the platforms: Error: /Users/Doge/Desktop/WowSuchApp/cordova/platforms/ios/cordova/build: Command failed with exit code 2
You may not have the required environment or OS to build this project
Error: /Users/Doge/Desktop/WowSuchApp/cordova/platforms/ios/cordova/build: Command failed with exit code 2
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:134:23)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)

在我看来,该插件似乎与i386不兼容,尽管我很难相信。 因此,我尝试使用armv7对其进行编译

cordova build ios --device

该错误消息与上面的错误消息相似,只不过暗示了armv7而不是i386

问题似乎是当您添加插件时,Cordova并不总是将所需的框架添加到您的iOS项目中。

大多数项目将需要AudioToolbox.framework (调试)。

cordova-plugin-network-information将需要SystemConfiguration.framework

cordova-plugin-contacts将需要AddressBook.frameworkAddressBookUI.frameworkCoreGraphics.framework

要添加框架:

  1. 在Xcode中选择您的项目
  2. 选择你的目标
  3. 选择构建阶段选项卡
  4. 使用库扩展器打开链接二进制文件
  5. 点击+
  6. 选择所需的框架并将其添加到项目中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM