How to generate .ipa from .app file in Xcode 9 - build

I am using Xcode 9. I did archive the build and got in to archive window/organiser window. From there we usually export the build. But due to some reason I cant do that.
On the prior version of Xcode, we can get into package contents and generate .ipa from .app with the help of iTunes. But now they have removed that option. Can someone help me to generate .ipa from the .app file that we have generated?

The earlier way of dragging and dropping the app file to iTunes does not work anymore.
So we can use the organizer to create .ipa file in Xcode 9.
Create an archive of your project.
Then in organizer window select the archive and click on the export option.
Then select a method of distribution in next dialog box(I had
selected development distribution).
Then the archive is prepared and development distribution options are presented. You can select any App thinning option or leave it as none and select or deselect other options and then click Next.
Then you will be prompted to select the appropriate development certificate and mobile provisioning profiles. After selecting, click Next.
Then archive will be built for distribution and you will be asked to review your applications .ipa content.
If everything is alright, click on the Export option in the dialog box.
You will be presented with another dialog box for entering the export name and location.
Enter the export folder name and select a location and then click on Export. Your .ipa file will be exported to the location which you had selected.
For more information/help regarding this way of .ipa file generation, refer to https://wiki.genexus.com/commwiki/servlet/wiki?34616,HowTo%3A+Create+an+.ipa+file+from+XCode
Also this link should help -- How to create .ipa file using Xcode?

From the other answer I see you can generate the .ipa file fine and the issue seems to be that you can't drag and drop your file anywhere as Apple have removed the applications page from iTunes.
From doing a little of my own research I think the current best solution (although I have not tried this myself yet) is to download iTunes 12.6.3 where the applications option is still available.
Please see the following link for a guide on how to do this: https://www.macworld.com/article/3230135/software-entertainment/how-to-install-itunes-1263-and-replace-itunes-127.html
The only downside I can see is that it is no longer in support as Apple only provide support for the latest version of iTunes (12.7 at the time of writing). However I guess that's exactly what stack overflow is for!
Let me know how it goes!
EDIT:
Just to let you know I've now downloaded iTunes 12.6.3 myself and I have my apps option back! Hopefully that helps you and you can then just follow the process you used to carry out. I have also found another post similar to yours with alternative solutions too:
With Apps option removed from latest iTunes 12.7.... , how to install adhoc IPA?

Related

File wx/wx.h does not exist

I've been trying for a while now to compile and use wxwidgets for a c++ project, but every time I think I get close, the same error occurs. File wx/wx.h does not exist. I've tried building wxwidgets with cygwin and VS2019, just downloading the binaries, and finally(what I've most recently tried), downloading the library using the vcpkg package manager. I made an environment variable to the include folder within wxwidgets(C:\vcpkg\packages\wxwidgets_x86-windows\include), and I included wx.h by typing
#ifndef WX_PRECOMP
#include "wx\wx.h"
#endif
For clarification, I'm on windows 10 and I'm using clang++. Any help would be greatly appreciated, since I've had this problem for a while now and I couldn't find any answers.
You can build or get and use wxWidgets in many different ways, all of which work, but you can't mix different ways together and expect them to work.
If you want to use vcpkg, you should follow the instructions here and you can read this post for more details.
Building with MSVC is very straightforward.
Open MSVC environment.
Navigate to the wxWidgets\build\msw and open wx_vcN.sln (for 2019 version N should be 16).
Select "Build -> Batch Build...", Click "Select ALL", then "Build".
Go drink a cup of coffee. ;-)
Open the file wxWidgets\samples\minimal\minima_vcN.sln (use maximum N available, let MSVC convert the solution if needed).
Select "Build -> Build Solution".
Open the Windows Explorer, navigate to the folder wxWidgets\samples\minimal, find the miinimal.exe binary and double click on it.
In order to build your own code:
You can either copy the folder of the miinimal sample somewhere, open it back up from new location and adjust Include and Library paths as appropriate (old way) or use the properties file supplied with the newest release of wxWidgets (create an empty Win32 project and then copy this file as appropriate) - there is an instruction on either MS web site or in the wxWidgets documentation.
If you have any problems with any of the steps - let us know.
Thank you.

NSCameraUsageDescription needed for C++ projects in Xcode for MacOS Mojave

I am trying to run OpenCV projects in Xcode and it seems like there's a new need to provide an info.plist for C++ applications NSCameraUsageDescription.
2018-09-28 00:03:15.181948+0800 k_nearest_detector_v2[23505:710470] [access] This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
Program ended with exit code: 9
How do I go about creating a .plist file for a C++ project as it has never been needed before.
Found a solution. Put the file with the desired NSCameraUsageDescription, NSMicrophoneUsageDescription (or others) with the assembled file from XCode (See screen shots below). For the Release and Debug versions.
You can even automate the steps described by #Valery Gromov. Just copy the file in the Build Phases. Uncheck the Copy only when installing checkbox to be able to run it directly from Xcode.

Can I disable precompilation for a particular folder?

I have some .cshtml templates I'm using to render to PDFs.
When I deploy to production they get precompiled and contain the text "This is a marker file generated by the precompilation tool, and should not be deleted!" Is there a way to tell ASP.NET not to precompile a particular subfolder? I thought maybe I could do this in web.config, but I can't find it.
I know this is 2 years old but recently I stumbled on the same problem, but since I needed the view for both MVC and e-mail I couldn't simply change the extension of the file.
Searching for solutions I found this documentation on aspnet_compiler and the -u options, that stands for Updatable, which keeps the original file intact after compilation.
In order to achieve the desired behavior I configured my publish profile as follow:
On Settings tab of Publish dialog expand the File Publish Options and check Precompile during publishing.
Click the Configure link after the checkbox and check Allow precompiled site to be updatable
Caution
Before jumping in this solution you should read carefully about the implications of this option. In the link I provided there is a Precompilation Decision Matrix to help on your decision.
I couldn't stop the views from being compiled, even by setting the build action to 'none' and turning on copy to output directory.
I ended up changing the extensions of my files to .prod, setting the content type as 'content', and setting them to open with the HTML editor in Visual Studio to get everything working the way I wanted.

Is it possible to add a version number to a file that will be visible in Properties/Details in windows explorer

I have an unmanaged C++ project where I am writing data to a custom file format that I have defined.
What I would like to know is if there is a way to add a header that is compatible with Windows Explorer so that a version number will be displayed, as in the example below showing a Windows font.
The purpose of this is so that non-tech savvy users could simply right click and identify the version of the file, without having to open it in Notepad etc.
Any help would be appreciated.
Tom
You cannot achieve this for a file in general. But if your file format stores a version information, you can teach the Windows Explorer to display it.
You have to write a Shell Extension for the Explorer, that can extract arbitrary information out of your files. This extension must be installed on the target computer and registered in the registry.
An excellent guide on how to write and register Shell Extensions can be found here on CodeProject. (Part VIII should cover what you need)
The version information comes from VERSIONINFO resource, attached to a binary file, such as .EXE or .DLL. So it is easy to link such resource into your build target, this resource is also editable.
However, this is limited to the binary executable files, and you cannot attach this resource information to arbitrary files (as you wanted), including such as text files.
In VC just go to menu Project->AddResource and pick Version.

Building Archive in Xcode does not create archive

It seems all my searches to figure this out are fruitless. Knowing me it's one stupid checkbox or pulldown I'm missing. Is it maybe my install? Do I need to uninstall Xcode 4 and reinstall?
I've gone through all these steps and tricks and fixes all over the net and on SO, yet nothing gets me closer to getting an archive to pop up in my organizer. When I go to look at the archive that was built, it's just a zero k file. I get a build succeed, I change skip install to both yes and no ... I do all these things I find on the net, I'm going crazy. I'm pretty sure my certificates are all set up correctly, I have things checked where I'm told to be checked. It's driving me crazy. 99% of the solutions I see are:
"Anyway, in the "Skip Install", set the value for "Release" as "NO" (the help doc told you the opposite). Once you set it to "NO", archive again. You'll immediately see your app showing up in the archive organizer."
Well, it's not working or any further answers after aren't either.
Archive only seems to include those build products that are set to be "installed", so make sure that you deactivate Skip Install in your build settings:
Go to BuildSettings.
Find "Skip Install".
Select "NO" for Release.
Additionally, Xcode needs an Install Path. For Applications this is usually /Applications, but when e.g. building a plugin you might want to set this to just /, which will put the build product in the root of your archive. Note that you must use a "real" path, not a relative one like ~/Library.
Make sure you use Product > Archive, instead of Product > Build For > Archive.
I had this issue after I updated to High Sierra. I went to my library folder. /Users/your_user/Library/Developer/Xcode/Archives
In this folder was an empty folder named to the date I had created this archive. But the folder was empty. I removed the folder and archived again. That fixed the issue for me.
For me, I had to also change the following blank build setting, to something like...
"Installation Directory" --> /Applications
Finally, it started appearing in Organizer/Archives.
P.S. Interestingly, without this setting the old archive file was being created, but it was always empty.
I just had this issue and what resolved it for me was this:
Verify Code Signing on the release is set to your Distribution Profile. I did this and it actually reverted it at one point. Make sure that setting wasn't reverted and try again.
You mentioned the "Skip Install" value, I also had similar results. Setting to YES would not open the archive list, setting to NO would.
Hope this helps (more that #1 above helps).
Go through this checklist, and you should find an answer somewhere:
Create a new scheme labeled "[App name]-AppStore"
Create a build configuration labeled "Distribution" by duplicating release
Click the project and hit the + under build configurations in the "Info" tab.
Set the archive to build as "Distribution" under the new scheme
Verify all certificates
Verify all provisioning profiles
Verify your private key under your name in your keychain. (in the system keychain)
Make sure that in the Distribution code signing, you are setting the profile to your iPhone/iPad distribution profile in ALL signing instances.
Make sure that in your project info, the Distribution code signing is set to your iPhone/iPad distribution profile.
Make sure that you have the option, skip install, in build settings of your target set to "NO" for Distribution.
Make sure that your currently selected scheme is "[App Name]-AppStore > iOS Device"
If nothing else, clean all builds, delete all old archive attempts, build for archiving, and if there are no other errors, try archiving again. One problem that I ran into was when I let XCode always allow signing with my private key. Simply deleting that and redownloading the certificates forced XCode to re-ask me to allow code signing. I only click allow now and I haven't had that problem ever again.
If you are still having problems, you should delete all of your provisioning, revoke all of your certificates, reissue them all, and reinstall them all. Try resetting your code signing after that, and if it still doesn't work, use one of your two free TSIs given to you by Apple Dev Support. If nothing works, they can fix it for you I'm sure.
Hope this helps.
I did the following to make it work for me:
I replaced some subprojects/static libraries i had (ie three20) by using cocoapods to include the files within the main project.. it just got rid of all the trouble three20 was giving me (and they are lots..)
set skip install to yes under build settings for all other sub projects/static libraries and switched the copy headers from public to project under build phases
most importantly: under the sub libraries.. under build phases i ensured that copy files destination was changed from Absolute path to products directory.
and that was it!
hint: to get an idea of the offending files that's causing your archive to create an archive file rather than an ipa do this:
Select the archive and click the Distribute button.
Select the 'Save Built Products' option.
Hit Next and Save.
Browse the created directory in Finder.
The 'libraries' subdirectory will identify the libraries that you need to set the Skip Install to Yes.
in some cases usr/local/include will identify the culprit header files you need to move from Public to Project or the files that you have to change from absolute path to products directory. but that directory (ie usr/local/include) varies depending on your sublibrary directory structure