Xcode cannot compile for older Architecture - xcode

This happens after I updated my Xcode to support iOS 11, if I set 'Build Active Architecture' to 'YES' and build for a specific device, it runs fine but if I try to set 'Build Active Architecture' to 'NO' or build for generic iOS device it will create an error 'No Such Module...'.
This is okay for testing but the main problem is that the version to upload to app store needs to support armv7 and armv7s as well.
If it affects I am using Xcode 9.0.1(no absolute reason just the latest version when I perform the update). I am using the current latest version of 9.2.
I am using Cocoapods to install external frameworks. Those that appear in the 'No such Module' error includes Alamofire, XlPagerTabStrips and ActionsheetPicker(those that I noted, may be more) they are all updated to latest version when I updated Xcode.
There is also another situation where my project cannot use Automatic codes signing, that may or may not be related but I am just going to mention it, if it hints at anything.
Update:
I have converted my project to Swift4, confirmed my cocoapods is up to date, reinstalled all the modules for Swift4. Same situation, the error claiming 'No such module...' will appear if I try to compile including older architectures.
The error will not show if I attempt to compile only for arm64 and armv7s but somehow the ipa only supports arm64.

Assuming that you got the last version of Xcode 9.1 [December 4, 2017] then, you may also first start to update CocoaPods to the last version, then follow documentation to clean remove then reinstall the last version of each module:
https://github.com/Alamofire/Alamofire
https://github.com/xmartlabs/XLPagerTabStrip
https://github.com/skywinder/ActionSheetPicker-3.0
...
Remember also that some modules will required some specifics setup to be integrated into your Xcode project using CocoaPods.

Related

Xcode Workspace "Internal error: missingPackageDescriptionModule"

After updating Xcode to version 13.2 i can't build my project anymore. I have a strange error "Internal error: missingPackageDescriptionModule" related to my Workspace file.
It's definitely related to SPM because Xcode is not loading SPM packages also. I tried to "Reset package caches", "Resolve package caches" and also "Updating to latest package caches" but after all of these operating nothing happens. Deleting derived data, cleaning didn't help too...
I tried also to resolve packages from Terminal using xcodebuild -resolvePackageDependencies but I get error message:
--- xcodebuild: WARNING: The directory /Users/ptocicki/Developer/KFC/kfc-ios also contains the legacy project 'project.pbxproj' - ignoring it and using 'KFC.xcodeproj'.
xcodebuild: error: Could not resolve package dependencies:
Internal error: missingPackageDescriptionModule"
Apple is aware of the issue.
We're currently investigating this issue — thank you to those who have
filed bug reports so far. To workaround this issue, please re-download
Xcode 13.2 directly from the Downloads page.
https://developer.apple.com/forums/thread/696504?answerId=698142022#698142022
🎊 Fixed on v13.2.1 and you can download from here
Explaination
This bug is reported and the v13.2.1 AppStore version but As  Apple suggest here, you should download the Xcode manually from the developer center
Manual download of any Apple developer software
✅ The always working and preferred workaround!
Download directly from Apple:
Latest Release version or
Latest Beta version or
Any version you need and all other downloadable contents
Then extract and move it where you like. This has so many benefits compared to AppStore updates. (like the ability to resume download, not replacing the old one, not wasting hidden directories and etc.)
Note that you should use safari to download it.
⚠️ Important note for developers like me!
The page you’re looking for can’t be found.
If you The page you’re looking for can’t be found message, you may need to use a VPN if you are in a country that the US sanctioned like mine. Because Apple is blocking some IP address ranges.
If you’re using Swift packages either standalone or as dependencies in an Xcode project or workspace, the Mac App Store version of Xcode fails during package resolution with the error “Internal error: missingPackageDescriptionModule.” (86435800)
Workaround: Download Xcode 13.2 directly from the Apple Developer website.
I just got the issues late at night after Xcode updated on its own while I was working on my project, which was not a cool surprise. It appears to be affecting all dependencies. You are not alone in this it's affecting everyone. I did what they recommended and downloaded Xcode directly from the Apples developer site and it fixed all my issues super happy right now!!!!!!!
XCode was updated to 13.2.1 at 12/19 which fix the issue.
https://developer.apple.com/documentation/xcode-release-notes/xcode-13_2-release-notes
If you’re using Swift packages either standalone or as dependencies in an Xcode project or workspace, the Mac App Store version of Xcode fails during package resolution with the error “Internal error: missingPackageDescriptionModule.” (86435800)
Workaround: Download Xcode 13.2 directly from the Apple Developer website.
Seems local package still working. So there is a temporary solution: We can download the dependencies then add them to the project as local paclages.
Please update to Xcode 13.2.1.
If not, download Xcode 13.2 from the Apple Developer website.
Updating from Xcode 13.2 to 13.2.1 from App Store fixed the issue for me.

PODs Failing to compile after xcode update

I just updated my xcode to Version 10.1 (10B61). After doing so, my pods don't work. See below error messages. Aside from PKHUD, the error messages don't provide suggestions as to how to fix this issue. Per online sources, I've updated my OS to High Sierra 10.13.6. Any suggestions on how to get the app to compile? It was working before the update.
On Xcode, select the Pods project and on the left panel select the frameworks that are causing the issue. On Build Settings, browse for Swift and make sure you have correctly set the version you have installed of those frameworks.
You can check that framework is fine after you tweak that value by compiling the framework after selecting it.
Just run cmd+B to compile and check if it build successfully. If you don't see the framework on the list just go to manage schemes and add it.

How to require specific version of macOS?

For example: My Xcode project deployment target can be iOS 10.3 — Is there an equivalent to require macOS 10.12.4? (Latest SDK)
• iOS 10.3 is the latest update (can be targeted in Xcode).
• macOS 10.12.4 is the latest update
My goal/hope is to target the latest macOS update in the same way I can target the latest iOS update.
Verdict: It’s not (yet?) possible in Xcode. :(
While building you can define a deployment target. This is a specific API level for the minor versions of the operating system. This will run on all patch level versions for this particular minor version. So there is little point to set deployment targets on patch level.
You can check that you run your applications on certain operating system versions only though with a little code.
operatingSystemVersion and isOperatingSystemAtLeast(_:)seem to do what you want to achieve:
https://developer.apple.com/reference/foundation/processinfo/1414876-isoperatingsystematleast
You can then exit and deny using the application if the desired criteria is not met.
P.S. iOS deployment lets you chose iOS version 10.3 only too. There is no specific option for iOS 10.3.1 for example.
Can't you select such an option when you set your deployment target?
The page linked to also states:
Xcode sets the Minimum System Version key in the app’s information
property list to the deployment target you choose. When you publish
your app to the store, it uses this property value to indicate which
versions your app supports.
So you might change it by adapting the information property list as well I presume..
I was able to set a minor release version by editing my project's project.pbxproj file, located within your xcodeproj bundle.
Once you've located your project.pbxproj file, open it and
search for MACOSX_DEPLOYMENT_TARGET. You can set its value to any valid macOS version (no quotes needed).
The result is correctly displayed within Xcode's UI, and most importantly, is respected when compiling. I've confirmed this by using #available directives.

"/Applications/Xcode.app: a sealed resource is missing or invalid" error while validating Xcode installation

Today I got the memo from Apple as probably every other Apple developer about potentially infected Xcode installations. (https://developer.apple.com/news/?id=09222015a)
I followed the instructions and tried to validate my Xcode app using the command mentioned. (spctl --assess --verbose /Applications/Xcode.app) The program ran for a while and exited with a "/Applications/Xcode.app: a sealed resource is missing or invalid" message.
The article says "Any result other than ‘accepted’ or any source other than ‘Mac App Store’, ‘Apple System’ or ‘Apple’ indicates that the application signature is not valid for Xcode." However, I'm actually pretty sure my Xcode copy is legitimate (downloaded and updated via App Store with Gatekeeper enabled) so I thought maybe there could be another problem preventing it to validate as it should.
Do you have any ideas what this error message actually means? Do you think I need to reinstall Xcode just in case?
Thanks in advance for your help.
The false positive validation issue appears to be caused by containing previous iOS SDKs in order to be backwards compatible.
A clean install will completely wipe the SDK directories. When you run the validation test after a clean install it will pass. Once you copy previous iOS versions, which, for us, is iOS 8 for iPhone, the validation will fail.
This scenario was tested after updating to XCode 7.0.1 (7A1001) which was released earlier this afternoon.
In order to avoid a clean install, you can temporarily remove the previous SDK version from their respective location, and run the validation. Then, once the validation passes, copy the files back where they belong.
I was getting the same message "a sealed resource is missing or invalid". However i was able to rectify the issue by going into the App Store and downloading the latest version of Xcode - Version 7.0 (7A220), and this seems to have rectified the issue.
Although i did first try updating Xcode through the updates section on the App Store, but for some reason this didn't work. So i would recommend going into the App Store > Search for Xcode > Then install the latest version available to you.
Depending upon gatekeeper settings.please check gatekeeper settings to allow anywhere and revalidate Xcode.

Getting "Missing SDK in target picChoice: iphoneos4.0" error when building a test release of my app in Xcode 4, pvw 5

I have opened a functioning Xcode 3x project in Xcode 4.0 pvw 5 and am getting the following error whei I try to build a debug version of the app: "Missing SDK in target picChoice: iphoneos4.0"
I am trying to find where and how to remedy this, and I am coming up with bupkus.
I apologize if this is not very clear, but I am rather flummoxed by Xcode 4 so far....
Your problem was probably that Xcode 4 only came with SDK 4.2, and the project pointed to 4.0.
It's pretty common!
The solution is to go to the project info | Build settings | Base SDK and setting it to "Latest iOS" so that you don't have to touch it for future updates.
When you close the window, you'll have to switch config from debug to release or distribution and back so that it updates and Xcode removes the "Missing SDK" problem.
I just wanted to put the full answer up here to help others who have the same problem ;)
Ok...I resolved this, but I did not properly track HOW I resolved it....
I think my Target's Base SDK was not set, and I set it to: Latest iOS (iOS 4.2)....
I think that's how I did it....
But, now it builds with no errors and loads onto my iPhone as expected.
That is exactly what you needed to do. Xcode 4 introduced the Latest iOS. If you wish to test the app for older versions, select target > summary > deployment target and set that to an older iOS version and then in simulator you will see more version options available to you.

Resources