Giter VIP home page Giter VIP logo

Comments (16)

fastlanebot avatar fastlanebot commented on May 4, 2024
@KrauseFx commented

Hi @paweldudek,

Deliver waits for .ng-scope.managedWidth to be available: itunes_connect.rb:95

<li .... class="ng-scope managedWidth">
        ... 
</li>

Every 'app icon' on iTC has this class. Can you check if that's the case for you too? Maybe it's because you don't have access to all features of iTC with that developer account.

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@paweldudek commented

Hmmm, interesting, seems that I've rushed my conclusions about the root cause of this issue.

So we did a little bit of digging at our company and it seems that the organizational iTunes Connect account has a different HTML code for most of screens.

Here's an example for the home view:

<div ng-include="getGlobalFilePathMap('/itc/views/shared/main_nav_modules.html')" class="homepageWrapper ng-scope" itc-home-page=""><ul role="menu" id="main-nav" main-nav-size-fix="pageWrapperVars.mainNavigationCount" class="ng-scope ng-isolate-scope" style="width: 502px; max-width: 980px;">
    <!-- ngRepeat: nav in mainNavigation --><li ng-repeat="nav in mainNavigation" role="menuitem" ng-class="{current: currentclass === nav.section}" class="ng-scope" style="width: 25%;">
        <a href="/WebObjects/iTunesConnect.woa/ra/ng/app">
            <!-- ngIf: nav.ticketCount !== undefined && nav.ticketCount > 0 -->
            <img ng-src="/itc/img/ico_homepage/MyApps.png" src="/itc/img/ico_homepage/MyApps.png">
            <span ng-bind-html="nav.name" class="ng-binding">My Apps</span>
        </a>
    </li><!-- end ngRepeat: nav in mainNavigation --><li ng-repeat="nav in mainNavigation" role="menuitem" ng-class="{current: currentclass === nav.section}" class="ng-scope" style="width: 25%;">
        <a href="https://iadworkbench.apple.com/app/?page=routing#routing">
            <!-- ngIf: nav.ticketCount !== undefined && nav.ticketCount > 0 -->
            <img ng-src="/itc/img/ico_homepage/iAd.png" src="/itc/img/ico_homepage/iAd.png">
            <span ng-bind-html="nav.name" class="ng-binding">iAd</span>
        </a>
    </li><!-- end ngRepeat: nav in mainNavigation --><li ng-repeat="nav in mainNavigation" role="menuitem" ng-class="{current: currentclass === nav.section}" class="ng-scope" style="width: 25%;">
        <a href="/WebObjects/iTunesConnect.woa/ra/ng/users_roles">
            <!-- ngIf: nav.ticketCount !== undefined && nav.ticketCount > 0 -->
            <img ng-src="/itc/img/ico_homepage/UsersandRoles.png" src="/itc/img/ico_homepage/UsersandRoles.png">
            <span ng-bind-html="nav.name" class="ng-binding">Users and Roles</span>
        </a>
    </li><!-- end ngRepeat: nav in mainNavigation --><li ng-repeat="nav in mainNavigation" role="menuitem" ng-class="{current: currentclass === nav.section}" class="ng-scope" style="width: 25%;">
        <a href="/WebObjects/iTunesConnect.woa/ra/ng/resources_page">
            <!-- ngIf: nav.ticketCount !== undefined && nav.ticketCount > 0 -->
            <img ng-src="/itc/img/ico_homepage/resourcesAndhelp.png" src="/itc/img/ico_homepage/resourcesAndhelp.png">
            <span ng-bind-html="nav.name" class="ng-binding">Resources and Help</span>
        </a>
    </li><!-- end ngRepeat: nav in mainNavigation -->
</ul></div>

and here's for the apps view:

<li class="app reveal-animation ng-scope" bindonce="" ng-repeat="app in filteredData | startFrom:currentPage*pageSize | limitTo:pageSize">
      <div class="fake-border forgridview"></div>
        <div class="app-icon col1" bo-class="{bundle: isBundle(app.type)}">
        <a bo-href="appBundleLink(app.adamId, app.type)" href="(...)">
          <!-- ngIf: app.iconUrl --><div ng-if="app.iconUrl" class="app-icon-img ng-scope ios7-style-icon-large" ng-class="getIconClass(app)" style="background-image:url(...)"></div><!-- end ngIf: app.iconUrl -->
          <!-- ngIf: !app.iconUrl && appsViewMode == 'list' -->
          <!-- ngIf: !app.iconUrl && appsViewMode != 'list' -->
        </a>
      </div>

      <div class="name col2" bo-class="{bundle: isBundle(app.type)}" bo-title="app.name" title="Marquee by Taptera">
        <!-- boIf: appsViewMode != 'list' && !isBundle(app.type) --><a bo-if="appsViewMode != 'list' &amp;&amp; !isBundle(app.type)" bo-href="appBundleLink(app.adamId, app.type)" class="ng-scope" href="(...)"><div bo-bind="app.name">Marquee by Taptera</div></a>
        <!-- boIf: appsViewMode != 'list' && isBundle(app.type) -->
        <!-- boIf: appsViewMode == 'list' -->
      </div>

      <div class="app-type-badge forgridview" bo-bind="getProperType(app.type)">iOS</div>
      <div class="col3 forlistview"><div class="app-type-badge" bo-bind="getProperType(app.type)">iOS</div></div>

      <div class="versions forgridview">
        <!-- ngRepeat: version in app.versions --><div class="version ng-scope" bindonce="" ng-repeat="version in app.versions">
          <span class="status ready">
            <a bo-href="appBundleLink(app.adamId, app.type, version)" bo-title="l10n.interpolate(referenceData.statusLevels[version.stateKey].locKey)" class="ng-binding" title="Ready for Sale" href="(...)"><!-- ngIf: !isBundle(app.type) --><span ng-if="!isBundle(app.type)" class="ng-scope ng-binding">1.2</span><!-- end ngIf: !isBundle(app.type) --> Ready for Sale</a>
          </span>
        </div><!-- end ngRepeat: version in app.versions --><div class="version ng-scope" bindonce="" ng-repeat="version in app.versions">
          <span class="status waiting">
            <a bo-href="appBundleLink(app.adamId, app.type, version)" bo-title="l10n.interpolate(referenceData.statusLevels[version.stateKey].locKey)" class="ng-binding" title="Pending Developer Release" href="(...)"><!-- ngIf: !isBundle(app.type) --><span ng-if="!isBundle(app.type)" class="ng-scope ng-binding">1.4</span><!-- end ngIf: !isBundle(app.type) --> Pending Developer Release</a>
          </span>
        </div><!-- end ngRepeat: version in app.versions -->
      </div>

      <div class="versions col4 forlistview">
        <!-- ngRepeat: version in app.versions --><div class="version ng-scope" bindonce="" ng-repeat="version in app.versions" bo-hide="version.version == null">
          <a bo-href="appBundleLink(app.adamId, app.type, version)" bo-bind="version.version" href="(...)">1.2</a>
        </div><!-- end ngRepeat: version in app.versions --><div class="version ng-scope" bindonce="" ng-repeat="version in app.versions" bo-hide="version.version == null">
          <a bo-href="appBundleLink(app.adamId, app.type, version)" bo-bind="version.version" href="(...)">1.4</a>
        </div><!-- end ngRepeat: version in app.versions -->
      </div>

      <div class="statuses col5 forlistview">
        <!-- ngRepeat: version in app.versions --><div class="version ng-scope" bindonce="" ng-repeat="version in app.versions" bo-title="version.state" title="readyForSale">
          <span class="status ready" bo-title="l10n.interpolate(referenceData.statusLevels[version.stateKey].locKey)" bo-bind="l10n.interpolate(referenceData.statusLevels[version.stateKey].locKey)" title="Ready for Sale">Ready for Sale</span>
        </div><!-- end ngRepeat: version in app.versions --><div class="version ng-scope" bindonce="" ng-repeat="version in app.versions" bo-title="version.state" title="pendingDeveloperRelease">
          <span class="status waiting" bo-title="l10n.interpolate(referenceData.statusLevels[version.stateKey].locKey)" bo-bind="l10n.interpolate(referenceData.statusLevels[version.stateKey].locKey)" title="Pending Developer Release">Pending Developer Release</span>
        </div><!-- end ngRepeat: version in app.versions -->
      </div>

      <div class="last-modified col5 forlistview" bo-bind="app.lastModifiedDate | date:'longDate'">November 12, 2014</div>
      </li>

Now, with all this having said I do have access for the features necessary for uploading new builds to Apple. I'll see whether I can bake a PR for this one next week.

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@KrauseFx commented

Okay, thanks for your help. Can you let me know how to create an "Organizational iTunes Connect" to run into this issue? I can then easier debug the issue.

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@paweldudek commented

When you're enrolling for Apple Developer program you can either choose an individual account or a company/organization account. Deliver seems to be working with the first one, but the latter one seems to have a lot of issues.

Initially I've attempted to tie this into our build system using provided APIs, however it seems that I can't actually complete deliver init.

I've played a bit with Capybara but it looks like my Ruby foo was too weak today πŸ˜‰ Let me know whether I can help if any way!

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@KrauseFx commented

That's weird. What happens when you run deliver init? This command will only use the iTunes Transportert to download the latest app metadata from iTunes Connect, without using a headless web browser.

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@KrauseFx commented

About the apple account: I've tested it with both individual and company account, it's working fine. This has to be related to the missing icons, you only have 4 options on iTC. I'll try to create a new user with the same rights.

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@KrauseFx commented

Update: it looks like you have a "technical" iTC account.

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@paweldudek commented

Yup, you're totally right. We've only tested this against technical accounts and it seems that was our mistake. Sorry!

Nevertheless, it's a bit awkward that Apple has a different website just for technical users.

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@KrauseFx commented

No, that's not your mistake, don't worry, deliver has to support this too. I'm currently working on fixing this. I could reproduce the error.

Apple is using a complete different HTML code for technical users. It's okay, since it should only affect the "Landing Screen" and not the app management area itself.

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@paweldudek commented

Awesome, let me know whether I can help with anything!

And for the record (and people who might stumble upon this in future) here's the error I get when doing deliver init:

INFO [2014-11-14 17:16:49.12]: Going to download app metadata from iTunesConnect
INFO [2014-11-14 17:16:49.58]: Successfully downloaded the latest package from iTunesConnect.
error: No such file or directory - /tmp/627716885.itmsp//metadata.xml. Use --trace to view backtrace

This might actually be unrelated to issue with technical user. Here's the stack trace:

/Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/deliver-0.3.1/lib/deliver/app_metadata.rb:431:in `read': No such file or directory - /tmp/627716885.itmsp//metadata.xml (Errno::ENOENT)
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/deliver-0.3.1/lib/deliver/app_metadata.rb:431:in `parse_package'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/deliver-0.3.1/lib/deliver/app_metadata.rb:63:in `initialize'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/deliver-0.3.1/lib/deliver/app.rb:112:in `new'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/deliver-0.3.1/lib/deliver/app.rb:112:in `metadata'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/deliver-0.3.1/lib/deliver/deliverfile/deliverfile_creator.rb:56:in `create_based_on_identifier'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/deliver-0.3.1/lib/deliver/deliverfile/deliverfile_creator.rb:27:in `create'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/deliver-0.3.1/lib/deliver/commands/init.rb:10:in `block (2 levels) in <top (required)>'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/commander-4.2.1/lib/commander/command.rb:155:in `run'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/commander-4.2.1/lib/commander/runner.rb:421:in `run_active_command'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/commander-4.2.1/lib/commander/runner.rb:81:in `run!'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/commander-4.2.1/lib/commander/delegates.rb:8:in `run!'
    from /Users/eldudi/.rvm/gems/ruby-2.0.0-p576/gems/commander-4.2.1/lib/commander/import.rb:10:in `block in <top (required)>'

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@KrauseFx commented

That looks weird. Can you post the full stacktrace? Anything special about this app? (like only available in a few countries)

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@paweldudek commented

I move this to a different issue fastlane-old/deliver#21 (stack trace & some additional data there).

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@KrauseFx commented

Alright, I fixed the issue: fastlane-old/deliver@832b804

Could you download the latest zip file and run sudo rake install in unzipped folder?

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@paweldudek commented

Allright, installed :head via ruby gems and it's all working fine! Awesome, thanks! πŸŽ‰

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@KrauseFx commented

Cool, thanks for helping me debug this issue πŸ‘

from fastlane.

fastlanebot avatar fastlanebot commented on May 4, 2024
@paweldudek commented

No problem! Let's tackle the other one now πŸ˜‰

from fastlane.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.