If you are an indie developer working on your own, it's easy to get stuck in the mindset that you have one main role "Software Developer". While this may take up a large portion of what you do and you may be a professional in your field, it does not mean you will be successful. To be a successful indie developer you need to recognize all roles you are responsible for.
Marketing and Sales
It's not enough these days to throw a product down there and see who comes. You need to be "always closing" as it is called in the world of sales. Not all developers are good salesmen, you either need to become one or get one. When someone wants to talk to you about your apps you need the best way to sell your idea, to make the audience believe your product is worth buying. This is fundamental and important and should not be taken lightly.
Marketing should not be an after thought that you pursue within the week Apple take to approve your product. It should begin at concept, you need to plan from day one how you will promote this product and even get people in the industry involved with the key functionality design of the product.
I cannot stress how important it is to build your marketing while your build your product.
It is inevitable at some point you will need to pay taxes for the products you sell, having done a lot of work with financial data before I tried to do this myself. What you should be aware of though is this puts a lot of risk on yourself, you are a developer not a registered tax accountant. You don't watch for changes in Tax Law, you don't look for every single deduction, you have no idea how to handle your financial records and that is perfectly normal.
I highly recommend outsourcing to a Tax Professional and just getting them to show you the basics of what you need to do, how to register your business and keep records and let them worry about the rest.
On your first project it isn't unusual to get an idea, sit down and start coding. Doing this will almost always set you up to fail.
You need it to be clear in your head what this project is, what your minimum viable product is and how long it will take to reach that stage. There are many ways to plan each project, find one that works for you.
Understand that your time is not free. The time you spend on your products could be time spent doing contract work at an hourly rate. You need to apply those same rates to your time to make sure the project will be viable in the long run.
and the rest...
The point is, you need to be prepared to step outside of your comfort zone, to do things outside of the scope of just programming. If you can't do that, find someone who can and employ them. Good luck starting your indie software business.