Comments (16)
@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.
@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' && !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.
@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.
@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.
@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.
@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.
@KrauseFx commented |
Update: it looks like you have a "technical" iTC account.
from fastlane.
@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.
@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.
@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.
@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.
@paweldudek commented |
I move this to a different issue fastlane-old/deliver#21 (stack trace & some additional data there).
from fastlane.
@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.
@paweldudek commented |
Allright, installed :head
via ruby gems and it's all working fine! Awesome, thanks! π
from fastlane.
@KrauseFx commented |
Cool, thanks for helping me debug this issue π
from fastlane.
@paweldudek commented |
No problem! Let's tackle the other one now π
from fastlane.
Related Issues (20)
- Fastlane is not reading macros from Package.Swift (SPM)
- fastlane sigh download_all and "Error parsing provisioning profile at path..."
- fastlane match HOT 4
- bundler: command not found: fastlane
- Individual API Key not supported HOT 3
- fastlane deliver init is not working in CLI
- JEG2/highline should be updated to avoid warning of abbrev missing in standard lib for ruby 3.3.0
- How to get raw exit code from Fastlane HOT 3
- Match import to s3 Crash on encrypting. HOT 2
- Provisioning profile expiration comparison compares Time and DateTime
- AvailableTerritories is deprecated and fastlane is not upgraded to new api endpoints HOT 5
- Match managing provisioning profiles for DriverKit HOT 1
- curb-1.0.0/lib/curl/easy.rb - Failed to read/open file HOT 1
- `match` behaves differently in v2.220.0: `wrong final block length` HOT 14
- Can't upload build to Test Flight; [!] undefined method `refresh!' HOT 2
- A parameter has an invalid value - 'prices' is not a valid relationship name HOT 12
- I run the command 'fastlane match development'. and i got the following error: Looking for related GitHub issues on fastlane/fastlane... Found no similar issues. To create a new issue, please visit: https://github.com/fastlane/fastlane/issues/new Run fastlane env to append the fastlane environment to your issue [!] The request could not be completed because: This request is forbidden for security reasons - You currently don't have access to this membership resource. Contact your team's Account Holder, or an Admin.
- Build_for_testing fails sporadically with error 'Could not find or use auto-linked framework' HOT 2
- Can fastlane support filling in Chinaβs ICP registration number?
- [match] provisioning profile generated via match blocks release installation on TestFlight (or on device) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fastlane.