Search Unity

UCB no parent for object

Discussion in 'Unity Build Automation' started by JasonVSG, Dec 6, 2017.

  1. JasonVSG

    JasonVSG

    Joined:
    Jun 22, 2016
    Posts:
    29
    Hello, i'm having a problem with USB service. We moved form xcode 8.3 to 9 as we are requiring newer support. However, with xcode 9 we are now getting new errors.

    Here is a snippet of the error.
    40084: fastlane finished with errors
    40085: /BUILD_PATH/.rvm/gems/ruby-2.1.1/gems/xcodeproj-1.5.1/lib/xcodeproj/project/object/helpers/groupable_helper.rb:18:in `parent': [!] [Xcodeproj] Consistency issue: no parent for object `MessageUI.framework`: `FrameworksBuildPhase`, `FrameworksBuildPhase` (RuntimeError)

    I'm unsure exactly what the problem is. I've also included the full log.
     

    Attached Files:

  2. JasonVSG

    JasonVSG

    Joined:
    Jun 22, 2016
    Posts:
    29
    So doing a lot of tinkering in areas of not my expertise and I might be making some progress.

    Some months ago I added a post build script file that links libraries. So I added an additional snippet of code I found here. https://gist.github.com/suakig/ffb64f48c800e9dea545

    I added
    pbxProject.AddFrameworkToProject(target, "MessageUI.framework", false);
    This seem sto fix the missing MessageUI error, but introduced. the same error but with a missing "libsqlite3.dylib". so then I added
    pbxProject.AddFrameworkToProject(target, "libsqlite3.dylib", false);
    This seem to move onto yet another with missing "AdSupport.framework"

    So know I'm adding the below and pretty much hoping for the best. I'll update if there is something new or if it's working.
    pbxProject.AddFrameworkToProject(target, "MessageUI.framework", false);
    pbxProject.AddFrameworkToProject(target, "libsqlite3.dylib", false);
    pbxProject.AddFrameworkToProject(target, "AddressBook.framework", false);
    pbxProject.AddFrameworkToProject(target, "AssetsLibrary.framework", false);
    pbxProject.AddFrameworkToProject(target, "CoreData.framework", false);
    pbxProject.AddFrameworkToProject(target, "CoreTelephony.framework", false);
    pbxProject.AddFrameworkToProject(target, "CoreText.framework", false);
    pbxProject.AddFrameworkToProject(target, "Security.framework", false);
    pbxProject.AddFrameworkToProject(target, "WebKit.framework", false);
    pbxProject.AddFrameworkToProject(target, "ImageIO.framework", false);
    pbxProject.AddFrameworkToProject(target, "EventKit.framework", false);
    pbxProject.AddFrameworkToProject(target, "EventKitUI.framework", false);
    pbxProject.AddFrameworkToProject(target, "AdSupport.framework", false);
    pbxProject.AddFrameworkToProject(target, "AudioToolbox.framework", false);
    pbxProject.AddFrameworkToProject(target, "AVFoundation.framework", false);
    pbxProject.AddFrameworkToProject(target, "CoreGraphics.framework", false);
    pbxProject.AddFrameworkToProject(target, "EventKit.framework", false);
    pbxProject.AddFrameworkToProject(target, "EventKitUI.framework", false);
    pbxProject.AddFrameworkToProject(target, "StoreKit.framework", false);
    pbxProject.AddFrameworkToProject(target, "SystemConfiguration.framework", false);

    Update:
    Continue to add
    CoreFoundation.framework

    AddUsrLib(proj, target, "libc++.dylib");
    AddUsrLib(proj, target, "libz.dylib");

    private static void AddUsrLib(PBXProject proj, string targetGuid, string framework)
    {
    string fileGuid = proj.AddFile("usr/lib/"+framework, "Frameworks/"+framework, PBXSourceTree.Sdk);
    proj.AddFileToBuild(targetGuid, fileGuid);
    }

    Update:
    After adding the AddUsrLib, "libsqlite3.dylib" this one came back. Doing some ordering changes. If anyone has any idea's I'm listening.
     
    Last edited: Dec 7, 2017
  3. JasonVSG

    JasonVSG

    Joined:
    Jun 22, 2016
    Posts:
    29
    Description of issue:
    Unity Cloud build throws an error regarding no parent object for framework. However the framework reported seems to change.

    Unity version:
    2017.1.0p4

    XCode version:
    XCode 9 as we requires updated support from xCode 8. xcode 8.3 and below works

    Source control:
    Git

    Local build platform:
    Not available as this is on windows and we are using UCB and not a Mac for iOS. Local builds are done in Android.

    Build target:
    iOS

    Relevant plugins being used (i.e. Google Play Game Services, other plugins that may perform automatic post-build behaviors)
    * Tapjoy
    * Heyzap
    * Everyplay
    * OneSignal
    * Easy Movie Texture
    * CocoaPods

    Project name:
    On UCB it is "Ga"


    Build log (relevant chunk):
    40084: fastlane finished with errors
    40085: /BUILD_PATH/.rvm/gems/ruby-2.1.1/gems/xcodeproj-1.5.1/lib/xcodeproj/project/object/helpers/groupable_helper.rb:18:in `parent': [!] [Xcodeproj] Consistency issue: no parent for object `MessageUI.framework`: `FrameworksBuildPhase`, `FrameworksBuildPhase` (RuntimeError)
     
  4. JasonVSG

    JasonVSG

    Joined:
    Jun 22, 2016
    Posts:
    29
    Finally found the problem. It seems another SDK(Heyzap-Fyber) was rebuilding the xcode project libraries. I disabled all the PostBuildProcess that referenced xproj. Did another run on the cloud build and the application build successfully. Interestingly enough the old library linking was removed and stilled worked. I guessing XCode 9 has some library reference improvements.
     
  5. timdevil

    timdevil

    Joined:
    Dec 12, 2013
    Posts:
    16
    Hello! How did you actually disable PostBuildProcess? I'm having the same issue as you. I don't think that removing these frameworks would not harm the fyber plugins.
     
  6. BigRedGames

    BigRedGames

    Joined:
    Jun 25, 2016
    Posts:
    48
    Hi Jason, can you give more explanations about your solution? Anyone from Unity team maybe help us with this problem.