iOS build failure after 3.7.5

6 posts, 0 answers
  1. Gregory
    Gregory avatar
    7 posts
    Member since:
    Jan 2014

    Posted 03 Oct Link to this post

    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.

  2. Garo
    Admin
    Garo avatar
    136 posts

    Posted 04 Oct Link to this post

    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.

     
  3. Gregory
    Gregory avatar
    7 posts
    Member since:
    Jan 2014

    Posted 04 Oct in reply to Garo Link to this post

    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" />

  4. Dimitar Kerezov
    Admin
    Dimitar Kerezov avatar
    12 posts

    Posted 05 Oct Link to this post

    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.

     
  5. Gregory
    Gregory avatar
    7 posts
    Member since:
    Jan 2014

    Posted 05 Oct in reply to Dimitar Kerezov Link to this post

    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?

  6. Dimitar Kerezov
    Admin
    Dimitar Kerezov avatar
    12 posts

    Posted 10 Oct Link to this post

    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.

     
Back to Top