This is a migrated thread and some comments may be shown as answers.

iOS build failure after 3.7.5

5 Answers 88 Views
AppBuilder Windows client
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Gregory
Top achievements
Rank 1
Gregory asked on 03 Oct 2017, 07:27 PM

Following the 3.7.5 update, I receive the following series of error messages on iOS, leading to a build failure. I cannot find any reference to IOSurface in my code or any included cordova plugins.

This same app has built without issue for years, and continues to build fine for Android.  Any idea what might be causing this or how to overcome it?

-------------------------------------------------------------------------------------------------------------------------

Error: [xcode-build] ld: framework not found IOSurface for architecture arm64
[xcode-build] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[xcode-build] ld: framework not found IOSurface for architecture armv7
[xcode-build] clang: error: linker command failed with exit code 1 (use -v to see invocation)
Error: ** ARCHIVE FAILED **


The following build commands failed:
Ld DerivedData/Build/Intermediates/ArchiveIntermediates/Cordova640/IntermediateBuildFilesPath/Cordova640.build/Debug-iphoneos/Cordova640.build/Objects-normal/arm64/Cordova640 normal arm64
Ld DerivedData/Build/Intermediates/ArchiveIntermediates/Cordova640/IntermediateBuildFilesPath/Cordova640.build/Debug-iphoneos/Cordova640.build/Objects-normal/armv7/Cordova640 normal armv7
(2 failures)
Error: 'Build failed with error code 65'
Error: 'Build failed with error code 65'
Done building project "FireVantage.tmp.proj" -- FAILED.

5 Answers, 1 is accepted

Sort by
0
Garo
Telerik team
answered on 04 Oct 2017, 09:37 AM
Hello Gregory,

We are aware of this issue and it is caused by the cordova-background-geolocation plugin. The problem happens due to a bug on our side which installs the latest versions of each plugin dependencies regardless of any version constraints. The above-mentioned plugin has a dependency to cordova-plugin-background-fetch, however, its latest versions breaks the build.

Fortunately, we have found a workaround that you can use. You need to:
1) Locate the cordova-background-geolocation plugin in your custom plugins
2) Open its plugin.xml file for editing
3) Locate the following line
<dependency id="cordova-plugin-background-fetch" version="~5.0.0" />
the version attribute's value may differ for your particular version of cordova-geolocation

4) Modify the value of the id attribute so that it becomes something like this:
<dependency id="cordova-plugin-background-fetch@~5.0.0" version="~5.0.0" />

We will try to find a resolution to the issue on our side, however, in the meantime, you should use the suggested workaround.

Regards,
Garo
Progress Telerik
 

Visit the Telerik Verified Plugins Marketplace and get the custom Cordova plugin you need, already tweaked to work seamlessly with AppBuilder.

 
0
Gregory
Top achievements
Rank 1
answered on 04 Oct 2017, 08:35 PM

Thanks for the quick response.  Unfortunately, the proposed work--around does not seem to have any effect on the problem, and iOS will still not build with the same error messages.  The dependency in the current version is at 5.1.1, if that makes any difference, so I modified plugin.xml to:

<dependency id="cordova-plugin-background-fetch@~5.1.1" version="~5.1.1" />

0
Dimitar Kerezov
Telerik team
answered on 05 Oct 2017, 01:45 PM
Hi Gregory,

The issue you are experiencing happens due to the lack of IOSurface framework for iOS, which is included in iOS 11 SDK. This SDK comes with Xcode 9. On our build machines we use Xcode 8.1 for all recent Cordova versions, which only contains iOS 10 SDK.

The plugin's cordova-background-geolocation-lt latest versions 2.8.5 and 2.8.4 are built with Xcode 9 and make use of the IOSurface framework and hence require the iOS 11 SDK. This is also the case with the latest versions of cordova-plugin-background-fetch - versions 5.1.0 and 5.1.1 require iOS 11 SDK.

Having said that, in order to build successfully, you need to revert to version 2.8.3 of cordova-background-geolocation-lt, then apply the fix I have described below in order to change the cordova-plugin-background-fetch dependency in the plugin.xml to:

<dependency id="cordova-plugin-background-fetch@~5.0.0" version="~5.0.0" />

I hope this helps.

Regards,
Dimitar Kerezov
Progress Telerik
 

Visit the Telerik Verified Plugins Marketplace and get the custom Cordova plugin you need, already tweaked to work seamlessly with AppBuilder.

 
0
Gregory
Top achievements
Rank 1
answered on 05 Oct 2017, 05:45 PM

Thanks for the update, and that makes sense.  Unfortunately, the proposed workaround defeats the purpose of this build, which is to provide improved support for iOS 11 customers.

When do you plan to upgrade the build servers to XCode 9?

0
Dimitar Kerezov
Telerik team
answered on 10 Oct 2017, 12:04 PM
Hello Gregory,

We understand the impact this has on our users and we are actively working on providing Xcode 9.0 support. Currently, our plan is to introduce the upgrade with the next AppBuilder release.

Regards,
Dimitar Kerezov
Progress Telerik
 

Visit the Telerik Verified Plugins Marketplace and get the custom Cordova plugin you need, already tweaked to work seamlessly with AppBuilder.

 
Tags
AppBuilder Windows client
Asked by
Gregory
Top achievements
Rank 1
Answers by
Garo
Telerik team
Gregory
Top achievements
Rank 1
Dimitar Kerezov
Telerik team
Share this question
or