cordova-plugin-mfp-push导致“意想不到的Mach-O报头”错误

我有一个IBM MobileFirst 8 cordova项目,我最近添加了插件“cordova-plugin-mfp-push”。

当我存档项目,并尝试导出构build(ipa文件),我得到以下错误

Found an unexpected Mach-O header code: 0x72613c21 

当我点击显示日志button时,我可以看到以下三个日志文件

IDEDistribution.critical.log

 2017-05-29 20:30:43 +0000 [MT] Failed to generate distribution items with error: Error Domain=DVTMachOErrorDomain Code=0 "Found an unexpected Mach-O header code: 0x72613c21" UserInfo={NSLocalizedDescription=Found an unexpected Mach-O header code: 0x72613c21, NSLocalizedRecoverySuggestion=} 2017-05-29 20:30:43 +0000 [MT] Presenting: Error Domain=DVTMachOErrorDomain Code=0 "Found an unexpected Mach-O header code: 0x72613c21" UserInfo={NSLocalizedDescription=Found an unexpected Mach-O header code: 0x72613c21, NSLocalizedRecoverySuggestion=} 

IDEDistribution.standard.log

 2017-05-29 20:30:39 +0000 [MT] Beginning distribution assistant for archive: my_custom_app, task: Export 2017-05-29 20:30:41 +0000 [MT] Proceeding to distribution step IDEDistributionSigningAssetsStepViewController, context: <IDEDistributionContext: 0x7fafaadba400; archive(resolved)='<IDEArchive: 0x7fafa97005d0>', distributionTask(resolved)='2', distributionMethod(resolved)='<IDEDistributionMethodAdHoc: 0x7fafc584f070>', teamID(resolved)='(null)'> Chain (2, self inclusive): <IDEDistributionContext: 0x7fafaadba400; archive = '(null)', distributionMethod='(null)', teamID='(null)'> <IDEDistributionContext: 0x7fafa96425c0; archive = '<IDEArchive: 0x7fafa97005d0>', distributionMethod='<IDEDistributionMethodAdHoc: 0x7fafc584f070>', teamID='(null)'> </IDEDistributionContext: 0x7fafaadba400> 2017-05-29 20:30:43 +0000 [MT] [OPTIONAL] Didn't find archived user entitlements for <DVTFilePath:0x7fafaab22d80:'/Users/user1/Library/Developer/Xcode/Archives/2017-05-29/my_custom_app 5-29-17, 21.29.xcarchive/Products/Applications/my_custom_app.app/Frameworks/IBMMobileFirstPlatformFoundationPush.framework'>: Error Domain=NSCocoaErrorDomain Code=4 "Item at "/Users/user1/Library/Developer/Xcode/Archives/2017-05-29/my_custom_app 5-29-17, 21.29.xcarchive/Products/Applications/my_custom_app.app/Frameworks/IBMMobileFirstPlatformFoundationPush.framework" did not contain a "archived-expanded-entitlements.xcent" resource." UserInfo={NSLocalizedDescription=Item at "/Users/user1/Library/Developer/Xcode/Archives/2017-05-29/my_custom_app 5-29-17, 21.29.xcarchive/Products/Applications/my_custom_app.app/Frameworks/IBMMobileFirstPlatformFoundationPush.framework" did not contain a "archived-expanded-entitlements.xcent" resource.} 2017-05-29 20:36:45 +0000 [MT] Canceled distribution assistant 

IDEDistribution.verbose.log

 2017-05-29 20:30:39 +0000 [MT] Available distribution methods: ( "<IDEDistributionMethodiOSAppStoreExport: 0x7fafc5839310>", "<IDEDistributionMethodAdHoc: 0x7fafc584f070>", "<IDEDistributionMethodEnterprise: 0x7fafc582a930>", "<IDEDistributionMethodDevelopmentSigned: 0x7fafc39cdee0>" ) 2017-05-29 20:30:43 +0000 [MT] IDEDistributionItem init <DVTFilePath:0x7fafaab22d80:'/Users/user1/Library/Developer/Xcode/Archives/2017-05-29/my_custom_app 5-29-17, 21.29.xcarchive/Products/Applications/my_custom_app.app/Frameworks/IBMMobileFirstPlatformFoundationPush.framework'> 

我尝试了我find的build议在Xcode 7中发现了一个意想不到的Mach-O头文件代码:0x72613c21 ,并尝试添加https://mobilefirstplatform.ibmcloud.com/blog/2016/10/17/prepare- ios-apps-for-app-store-submission /但它没有帮助解决这个问题。

我注意到,当我删除插件cordova-plugin-mfp-push时,ipa导出工作,并且当我再次添加它将再次失败,同样的错误。

这是我使用的插件列表

 $ cordova plugin ls cordova-plugin-android-permissions 0.10.0 "Permissions" cordova-plugin-compat 1.1.0 "Compat" cordova-plugin-custom-calendar 0.0.1 "Calendar" cordova-plugin-custom-uuid-creator 0.0.1 "UUID Creator" cordova-plugin-device 1.1.5 "Device" cordova-plugin-dialogs 1.3.2 "Notification" cordova-plugin-file 4.3.2 "File" cordova-plugin-file-transfer 1.6.2 "File Transfer" cordova-plugin-geolocation 2.4.2 "Geolocation" cordova-plugin-globalization 1.0.6 "Globalization" cordova-plugin-mfp 8.0.2017033009 "IBM MobileFirst Platform Foundation" cordova-plugin-mfp-push 8.0.2017012410 "IBM MobileFirst Platform Foundation - Push Notifications" cordova-plugin-okhttp 2.0.0 "OkHttp" cordova-plugin-splashscreen 4.0.2 "Splashscreen" cordova-plugin-whitelist 1.3.3-dev "Whitelist" 

任何帮助?

在你的XCode中试试这个:

  1. select你的项目,并转到目标 – >构build阶段
  2. 展开embedded框架
  3. 删除IBMMobileFirstPlatformFoundationPush.framework
  4. 然后去一般
  5. 展开embedded式二进制文件
  6. 删除IBMMobileFirstPlatformFoundationPush.framework
  7. 展开链接的框架和库
  8. 添加IBMMobileFirstPlatformFoundationPush.framework

我认为这样做可以解决你的问题。 是的,不要忘了做这个链接中提到的东西。