Posts

Post not yet marked as solved
1 Replies
Hello @bwalpoleuk, Thanks so much for posting on the developer forums! In order for the community to help you, would it be possible for you to share some of the below information? What permissions do the API Keys in question have that appear to have stopped working? What scope are you using when creating the JWT for each permission type? Can you share links to the App Store Connect APIs that you are using the API Keys with? If you are using filters, it would be good to know what filters you are using, not their values so that we can do accurate testing. Can you provide example error response body information (removing sensitive information) so that we can parse the error information? Apple does have a method for "Revoking API Keys" which is documented at the below URL. https://developer.apple.com/documentation/appstoreconnectapi/revoking_api_keys Hopefully this is helpful and looking forward to seeing more information so that the community can help!
Post not yet marked as solved
1 Replies
Hello @MateusFonseca , You indicate that you are an "Admin" and that the Organization Account has accepted the Terms of Service, but your "Account Holder" (same person who accepts Terms of Service) will also need to request access to the App Store Connect API. Has your Account Holder already requested access and gained approval? References: https://developer.apple.com/forums/thread/110531 https://developer.apple.com/help/app-store-connect/get-started/app-store-connect-api/ Hopefully this helps and happy coding!
Post not yet marked as solved
1 Replies
Hey @Alberto_C_Solo, Thanks so much for positing this question on the forums! After reviewing the code that you have shared (thank you for doing so!), I am not sure if it could be this simple, but it looks like the URL that you are using when interacting with the App Store Connect API could be wrong. Below is what you have listed in your code example above: https://appstoreconnect.apple.com/analytics/api/v1/salesReports Below is the URL that I am using when interacting with the App Store Connect API and I am not running into issues while retrieving sales data. https://api.appstoreconnect.apple.com/v1/salesReports I did test this on my side and when I hit the API with the URL that you are using I am encountering the same error. Would it be possible to test using the different base URL and determining if this resolves your issue? Hopefully this helps and happy coding!
Post not yet marked as solved
4 Replies
Hello @UtkarshDevAcc, This is a great question and I wish I would have seen it sooner! When I read your question, I actually see two questions. How many downloads have their been of my application since it has been launched on the App Store? How many installs exist of my application? The first question we can easily answer with the App Store Connect API. The second question we are unable to answer with the App Store Connect API or any other Apple provided technologies that I am personally aware of. I believe this is due to "install" and "usage" information being opt-in information. I have tried to do a statistical analysis of the opt-in data available and have talked to Apple during WWDC about this, but a third party solution would be a better tool to answer this question. In regards to how many downloads your application has, you can capture this information using the below App Store Connect API. https://developer.apple.com/documentation/appstoreconnectapi/download_sales_and_trends_reports Specifically, there are two loops that you may want to introduce based off the information you are looking to achieve. Apple currently provides this data in daily, weekly, monthly and annual cadences. Apple will only provide daily, weekly, and monthly data for the previous year (rolling), which after that only annual reports are available. The simplest two loops to implement would be a loop over the previous 366 days (accounting for leap year) and the last X number of years. I personally use 366 intentionally because I have noticed a few times where App Store Sales data for a specific date, or date range is unavailable and I want to capture the previous years worth of data. I would also suggest setting a max on the annual loop you would have running to go back in years and hardcode the first year you published an application so that you can take advantage of the same logic in the daily loop. One thing to note is that this approach will download ALL application data for an Apple Developer Account, and then you can use a data analysis tool or additional coding to break it apart for each application. Hopefully this helps and happy coding!
Post not yet marked as solved
1 Replies
Hello @blackvision, Thanks for posting on the Apple Developer Forums! When you say "command line tools", is there a specific command line tool that you are referring to? Maybe something included in the Xcode Command Line tools? From what I have been able to find in the Apple documentation, I have not found a way to create an API Key outside of the web interface. If I understand your question, what you are essentially asking for is an API Key that can generate additional API Keys. While Apple can introduce a new service at any time, I cant think of another existing Apple service with this model as it does not fall within their current authentication model. However, it might be worth looking into something like what this other poster on the forums is doing. https://developer.apple.com/forums/thread/707271 In this post they are dynamically creating JWTs with an expiration that can be provided to other teams and have specific scopes set for the applications they may be responsible for or the resources they would like for the end user to have access to. This certainly would not solve ALL of the challenges of being able to hand out an API Key itself, but building a proxy service for authentication internally would be more secure and provide better flexibility in the long run if you are needing to have managed access. One thing that I try to remind myself of when providing authentication information to users for Apple resources is that there are no logs of who did what or when which is the biggest driver for building a proxy service to control access instead of providing authentication information directly. Just some ideas even though I know this does not directly answer your question. Hopefully this helps and happy coding!
Post marked as solved
1 Replies
Hello @Lamyae, Thank you for positing on the Apple Developer Forums! While this is not possible today with the App Store Connect API, Apple did announce at WWDC 2022 that this will be a supported feature in the near future. They talk about this in the below WWDC session. https://developer.apple.com/videos/play/wwdc2022/10043/?time=424 I have not been able to find any specific details about the API or what interactions will be enabled, but we know it will eventually find its way into our hands. Version 2.0 of the App Store Connect API will be available "Later this summer." based off of the information from Apple. Hopefully this helps and happy coding!
Post not yet marked as solved
11 Replies
Hey @huanling820713, Would it be possible for you to share the steps you are taking for signing and notarization? This will help us break down what is happening after the build (assuming the application works at this point) that could be modifying the application contents and then we can look at whether or not the steps you are taking to sign are being trusted by the OS. While I sign mostly DMG files, I think you should be able to run the below command on your signed file to determine if it is trusted, but this is only checking your high level signing and not whether or not Gatekeeper trusts you at this point. codesign -dv --deep --verbose=4 /Path/To/File @eskimo also has a great post that I skimmed over at the below URL and certainly looks like a good read to help you troubleshoot! https://developer.apple.com/forums/thread/128166 Hopefully this helps and happy coding!
Post not yet marked as solved
1 Replies
Hey @Efun, Thanks for posting your question on the Apple Developer Forums! After watching the announcement, I am not 100% sure that I know what this is so hopefully you will get some other responses from the community! Without the App Store Connect API, the only way that I knew to get content uploaded to Apple was through the Transporter tool. Below is the first of many links to Transporter. https://help.apple.com/itc/transporteruserguide/en.lproj/static.html Transporter was not an application at first but a CLI agent that you installed on your machine to assist in the delivery of content. Over time, Apple is constantly attempting to make it easier for developers to get work done so they eventually released the Transporter application. https://apps.apple.com/app/transporter/id1450874784 Transporter is mostly used from my experience by teams who would like a GUI instead of using the Terminal and altool for uploading IPA files to Apple. Anyways, Transporter also enables the uploading of any large number of content to Apple and the services they host. Nested inside of the Transporter documentation under the Apps section, you will find a link to the App Metadata Specification. https://help.apple.com/asc/appsspec/ I will let you go through and read the full specification if you would like, but transporter leverages an XML style communication pattern when delivering content to Apple. An example of this can be found in the documentation at the below URL. https://help.apple.com/asc/appsspec/#/itc39ebbd83d While I am not 100% sure this is what they are talking about in the App Store Connect video, this is the most prominent location that I can think of where XML data is used to upload content to App Store Connect outside of the REST API. Hopefully this helps and happy coding!
Post marked as solved
15 Replies
Hey @sesingh, What version of the Command Line Tools are you using with Xcode? Are you modifying your IPA file after archiving in any capacity? What are you export options set as? The Xcode verbose logs contain tons of errors that have not been resolved over the years so the Bitcode errors could be legit or misleading. What is the exit code of altool when you get the error? You can get it by running the below command. echo $? Hopefully we can find a clue to correct the issue. Happy coding!
Post not yet marked as solved
9 Replies
Hey @rextremotabaresDT, Thanks for posting on the forums! I am running the iOS 16 Beta on my iPhone 13 and I have been able to successfully install Enterprise signed applications. Are you running into an error that you would be able to share on the forums? Do you have any device console logs that help pinpoint where the error is happening during the installation process? When attempting to install an Enterprise application, does the device already have an approved Enterprise certificate or is this the first Enterprise application you are attempting to install and the certificate is not approved? Hopefully this helps and happy coding!
Post not yet marked as solved
5 Replies
Hey @trebla4603, Thanks for posting on the developer forums! I personally have never heard of Apple waiving annual the Apple Developer Account fee since the account is fundamental to providing you with the services and support you will need to deploy your potential application, but if you are unable to raise these funds internally, it might be worth using one of the crowd funding platforms and seeing if others will rally behind your new idea and could be an encouraging experience! Best of luck and happy coding!
Post marked as solved
1 Replies
Hey @Ashcheulov, Would it be possible for you to share additional information on where you are getting this error or how it is being reported? The error above that you have posted is a very small subset of information that the App Store Connect API returns when you get a 401 from the server so having the additional details would be especially helpful. However, without having this information, I would look in the below places. Most of the time, the response headers from Apple will have a clue as to why your request was rejected. You could have exceeded the number of requests for the API key, you could be passing malformed data, etc. I would make sure to look through these as a starting place just to see what exists to help you in your efforts. Is it possible that you are making a request that the API Key does not have permission for? Without knowing what API you are hitting and the exact response it is hard to tell, but if you are hitting the same API endpoint over and over and you get this randomly, it is possible the token expired prior to the remote server getting the request and reading the response error body should give you a clue on next steps. It could be possible that the authorization header is missing all together. It is not likely if you are running a sequence of API requests and all of a sudden this stops working, but if you can run the commands verbose and view the API trace data this would be an area you could at least rule out. Hopefully this helps you get started looking. My initial thought is that the token is expiring during the series of transactions possibly due to the overall number of screenshots you are uploading, but that is a guess without much factual information. Happy coding!
Post not yet marked as solved
4 Replies
Hey @taktem, No problem at all! We are all here to learn! So I tried to validate what you have posted above using all of the documented implementation information that Apple provides, and I am not able to replicate your findings. Specifically, if I include /v1/apps as the scope of my JWT, I am not able to successfully interact with the API. However, when I remove the '/v1' portion from the request, I am capable of hitting the API successfully. When trying to replicate your environment, would it be possible for you to share your full JWT composure code so that we can see what it looks like? Would be interesting to see if you are seeing something that Apple is not expecting so that the paths do not align. One other thing that might be of interest that I could help validate is the different API Key permissions. What API Key type are you using? Specifically for wildcards, I would strongly recommend opening up a Feedback with Apple for this so that they can evaluate it and determine whether or not this fits within their current authentication model. I know that they are moving away from wildcards in many other places within the Apple ecosystem so it would be great to file a Feedback and get information from Apple directly on the direction they are going since wildcards can act as a very broad attack vector if the token were to fall into the wrong hands. Hopefully this helps some and happy coding!
Post not yet marked as solved
1 Replies
Hey @rethgil2, Thanks for posting on the Apple Developer Forums! Without additional information, it is going to be hard for the forum to help you diagnose the issue that you are currently facing. While you may not have crash logs, are you able to connect your iOS device to a macOS device, open the Console application and then replicate the issue after starting the log capture? You should be able to search for Errors and Faults at a minimum to give us a clue of what is going on as to why the application is failing. If you have not used the Console before, I would suggest finding the process(s) associated with your application and then doing a right click and "Show Process" to limit the number of logs you need to look through. This may also help give you context as to what your application is doing prior to crashing. Hopefully this helps and happy coding!
Post not yet marked as solved
2 Replies
Hello @Zivi0, Thanks for posting your question on the Apple Developer Forums! Would it be possible for you to share your applications App Store URL? This will help other forum users attempt to load your application page and verify if it is still available for sale. You can find this in App Store Connect -> Apps -> Select App -> App Information -> Additional Information -> View on App Store. One thing to note about the App Store is that the SEO process is always changing and at least for the applications that I have deployed, for the first few days, the fastest way to find an application is by searching for the developer and looking at the latest release or by using the link to the App Store directly. My assumption is that this is because it takes a while for the SEO algorithm to update but I am not sure what the real cause is. Hopefully this helps and happy coding!