Ionic Cordova构建iOS --emulator不显示构建失败或成功

5

我刚把我的Xcode更新到了10.0版本(10A255),并且它也在我MacBook上运行。之后,我使用了以下命令:

sudo ionic cordova build ios --emulator --prod

然后它开始正常构建,但是构建似乎永远不会结束,因为这个过程从来没有返回“构建失败”或“构建成功”。它显然突然结束,这是终端的输出:

Running app-scripts build: --prod --platform ios --target cordova
[16:09:56]  build prod started ... 
[16:09:56]  clean started ... 
[16:09:56]  clean finished in 3 ms 
[16:09:56]  copy started ... 
[16:09:57]  deeplinks started ... 
[16:09:58]  deeplinks finished in 1.52 s 
[16:09:58]  ngc started ... 
[16:10:27]  ngc finished in 28.76 s 
[16:10:27]  preprocess started ... 
[16:10:27]  preprocess finished in less than 1 ms 
[16:10:27]  webpack started ... 
[16:10:27]  copy finished in 31.56 s 
[16:14:50]  webpack finished in 263.50 s 
[16:14:50]  uglify started ... 
[16:14:50]  sass started ... 
Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.
[16:14:53]  sass finished in 2.58 s 
[16:14:53]  cleancss started ... 
[16:14:57]  cleancss finished in 3.72 s 
[16:15:51]  uglify finished in 60.77 s 
[16:15:51]  postprocess started ... 
[16:15:51]  postprocess finished in 190 ms 
[16:15:51]  lint started ... 
[16:15:51]  build prod finished in 355.49 s 

> cordova build ios --emulator
Building for iPhone XS Max Simulator
Building project: /Users/usuariomac/WebServer/AppIonicOMT/platforms/ios/OpenMyTab.xcworkspace
Configuration: Debug
Platform: emulator
Build settings from command line:
    CONFIGURATION_BUILD_DIR = /Users/usuariomac/WebServer/AppIonicOMT/platforms/ios/build/emulator
    SDKROOT = iphonesimulator12.0
    SHARED_PRECOMPS_DIR = /Users/usuariomac/WebServer/AppIonicOMT/platforms/ios/build/sharedpch
Build settings from configuration file '/Users/usuariomac/WebServer/AppIonicOMT/platforms/ios/cordova/build-debug.xcconfig':
    CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
    CODE_SIGN_ENTITLEMENTS = $(PROJECT_DIR)/$(PROJECT_NAME)/Entitlements-$(CONFIGURATION).plist
    CODE_SIGN_IDENTITY = iPhone Developer
    ENABLE_BITCODE = NO
    GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
    HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
    OTHER_LDFLAGS = -ObjC
    SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h
[16:16:41]  lint finished in 49.36 s 

在此之前,我的项目正常构建。我尝试使用以下命令将目标更改为先前的iOS版本: ionic cordova build ios --emulator --target "iPhone-X, 11.0" --prod 但是它没有起作用。这个问题最奇怪的地方是,如果我从Xcode构建应用程序,它“显然”会接受我在应用程序中所做的更改。因此,这是我的ionic信息:
cli包:(/usr/local/lib/node_modules)
@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0

全局包:

cordova (Cordova CLI) : 8.0.0 

本地软件包:

@ionic/app-scripts : 3.1.11
Cordova Platforms  : android 6.3.0 ios 4.5.5
Ionic Framework    : ionic-angular 3.9.2

系统:

Android SDK Tools : 26.1.1
ios-deploy        : 1.9.2 
ios-sim           : 5.0.13 
Node              : v8.6.0
npm               : 6.4.1 
OS                : macOS High Sierra
Xcode             : Xcode 10.0 Build version 10A255 

环境变量:

ANDROID_HOME : /Users/usuariomac/Library/Android/sdk

杂项:

backend : pro

有任何想法发生了什么吗? 提前感谢!


3
可能相关 https://github.com/apache/cordova-ios/issues/407 - Eric
3
尝试运行以下命令来构建 iOS 应用程序:ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"。请注意,这个命令是为了使用旧版构建系统。 - Sudarshana Dayananda
@SudarshanaDayananda,它“显然”起作用了,至少显示构建成功了,但这个标志是做什么的? - Takatalvi
@Eric 是的,似乎是相关的,解决方案也是一样的。谢谢大家!:D - Takatalvi
2个回答

7

我尝试使用以下命令:

ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"

它可以工作,但是生成.ipa文件后...该文件无法安装在设备上,Xcode弹出以下提示:

the entitlements specified in your application’s code signing entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xe8008016).

所以我在这篇文章中找到了解决方法,并在XCode中进行了以下配置:

打开由Xcode生成的项目,然后导航至-> 文件 -> 工作区设置 -> 构建系统并选择“Legacy Build System”

然后我再次尝试了构建命令,没有使用构建标志,并像之前一样工作。

希望对您有所帮助!


-2

这里也有同样的问题

HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)" OTHER_LDFLAGS = -ObjC SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接