Export template for iOS can't be opened in latest Xcode 9.2

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By nsobject

Unable to parse .project file. Where is the latest export template for iOS?

Edit: Nevermind. I found what I do wrong.

What were you doing wrong? I’m having the same problem.

mikearras | 2018-02-08 19:29

I’m having this problem as well using the latest export template. I have also tried extracting the templates and manually inserting the data.pck from my project into the Xcode folder but the project can still not be opened / parsed.

ViktorEvil | 2018-02-19 17:10

Anyone figured out what to do?

detted | 2018-02-26 22:11

I managed to get it working Reddit - Dive into anything

ViktorEvil | 2018-02-27 12:28

:bust_in_silhouette: Reply From: pip

Can someone please make a step-by-step guide on how to successfully use a Godot 3 project with Xcode 9.2? I can’t get it to work and it is getting really frustrating.

The internal project export does not compile:

  • “Your development team, […], does not support the In-App Purchase
    and Push Notifications capabilities.” even tough In-App purchase and
    Push Notifications are not used. This error only comes up in the Godot Xcode project. Other projects work fine.
  • “…missing required architecture i386 in file” referring to the [projectname].a file

The export template does not even open in Xcode

  • “… godot_ios.xcodeproj cannot be opened because the project file
    cannot be parsed.”

I get the same issues as described by others. Someone please help with this! I have been struggling for weeks trying to solve these issues. I am even considering of rewriting my whole game in a different language, just because of this!

Perhaps one needs to register (and pay) to be an Apple developer for this to work?

dimkadimon | 2018-06-11 15:51

After a lot of trial and error I was able to compile it without an (active) developer account.
It requires quite a few steps:

  • Manually add all (!) the images and icons in the Godot export window (you
    can use blank images but they have to be the right size).
  • If you are not using a paid developer account you have to remove all “game center” and “inAppPurchase” entries from the generated .xcodeproj file
  • You may also have to disable the above inside Xcode (under Capabilities)
  • I was getting a lot of “…missing required architecture…” errors so I removed all of those except the latest arm64.

After all that it compiles and runs fine on my iPad Pro and my iPhone 6. It does not run on the simulator.

You might also want to manually disable the true tone display in the info.plist or your game colors will look strange

<key>UIWhitePointAdaptivityStyle</key>
<string>UIWhitePointAdaptivityStyleGame</string>

pip | 2018-06-11 17:01

Thank you pip. You are the only one trying to help with this.

I didn’t understand this sentence:
“If you are not using a paid developer account you have to remove all “game center” and “inAppPurchase” entries from the generated .xcodeproj file”

How can edit the .xcodeproj file? If I look at it in through the command line, it is actually a directory that contains project.pbxproj, project.xcworkspace, xcshareddata. I had a look at project.pbxproj and found that under the PBXProject section it has

                          SystemCapabilities = {
                              com.apple.GameCenter = {
                                             enabled = 0;
                              };
                              com.apple.InAppPurchase = {
                                             enabled = 0;
                              };
                              com.apple.Push = {
                                             enabled = 0;
                              };
                          };

I am guessing that these are the lines I want? It looks like they are disabled already.

Then you say:
“You may also have to disable the above inside Xcode (under Capabilities)”

I don’t have those under Capabilities. Perhaps I have a different version of Xcode (mine is 9.2).

I removed the missing architectures and that seems to have helped. Now I am trying to compile it to my iPhone 6s and I get the following 3 errors:

  • Code Signing Error: Failed to create provisioning profile. The app ID “org.godotengine.iosgame” cannot be registered to your development team. Change your bundle identifier to a unique string to try again.
  • Code Signing Error: No profiles for ‘org.godotengine.iosgame’ were found: Xcode couldn’t find any iOS App Development provisioning profiles matching ‘org.godotengine.iosgame’.
  • Code Signing Error: Code signing is required for product type ‘Application’ in SDK ‘iOS 11.2’

Any help with these would be greatly appreciated!

dimkadimon | 2018-06-15 13:08

I managed to fix those errors, by changing the bundle identifier in General tab to my developer team email. For some reason the @ sign in the email got replaced by “-”.

But now I have new errors…

dimkadimon | 2018-06-15 13:32

IAP and Game Center require a paid account.
If you uncheck “automatic signing” or set your team to “none” you can disable the “game center” and “inAppPurchase” entries under the “capabilities” tab. After that you can reactivate automatic signing and it should work.

pip | 2018-06-15 14:28

Thank you! Those errors seem to have disappeared. I am now facing a new set of errors to do with arm64 linking:

Undefined symbols for architecture arm64:
"OBJC_CLASS$SKProduct", referenced from:
l_OBJC
$CATEGORY_SKProduct$_LocalizedPrice in mygame.a(in_app_store.iphone.opt.debug.arm64.o)
OBJC_CLASS$_SKPayment”, referenced from:
objc-class-ref in mygame.a(in_app_store.iphone.opt.debug.arm64.o)
OBJC_CLASS$_SKPaymentQueue”, referenced from:
objc-class-ref in mygame.a(in_app_store.iphone.opt.debug.arm64.o)
OBJC_CLASS$_SKProductsRequest”, referenced from:
objc-class-ref in mygame.a(in_app_store.iphone.opt.debug.arm64.o)
OBJC_CLASS$_GKAchievementDescription”, referenced from:
objc-class-ref in mygame.a(game_center.iphone.opt.debug.arm64.o)
OBJC_CLASS$_GKScore”, referenced from:
objc-class-ref in mygame.a(game_center.iphone.opt.debug.arm64.o)
OBJC_CLASS$_GKGameCenterViewController”, referenced from:
objc-class-ref in mygame.a(game_center.iphone.opt.debug.arm64.o)
OBJC_CLASS$_GKAchievement”, referenced from:
objc-class-ref in mygame.a(game_center.iphone.opt.debug.arm64.o)
OBJC_CLASS$_GKLocalPlayer”, referenced from:
objc-class-ref in mygame.a(game_center.iphone.opt.debug.arm64.o)
ld: symbol(s) not found for architecture arm64

dimkadimon | 2018-06-16 13:12

:bust_in_silhouette: Reply From: cz_nikita

Godot 3.0 has a different export process. Documentation is not updated yet.
You have to export iOS such as other exports.

  1. Download export templates, *.tpz
  2. Install export templates *.tpz
  3. Go to Export window
  4. Select iOS
  5. Fill the ‘App Store Team ID’ - you can find your Team ID to log in at developer.apple.com
  6. Click ‘Export Project’ button
  7. Select a folder where you want export your project
  8. Click Save button (don’t matter about ‘iOS Export *.ipa’)

You’ll receive the errors during exporting process. Look at the Output window for errors description and solve them.

Thanks for the answer. I have already done that. In order to get Godot to actually export something you have to manually add all the icons and splash images (which is a bit inconvenient if you just want to test an early prototype).

The exported files do not compile in Xcode (see above). The main error is the “…missing required architecture i386 in file…”.
Am I supposed to manually add a library?

pip | 2018-02-10 13:22

I’ve compiled a few demo projects in Xcode. I didn’t have any errors.
Try to check Build Settings in Xcode: Valid Architecture: “arms7 army7s arm64 i386 x86_64”

cz_nikita | 2018-02-10 19:45

Does not work for me.

I have installed the export templates and tried to export an empty Godot project…
→ target iOS(Runnable)
→ enter Team ID (this should be obsolete since Xcode automatically handles the signing now. The team ID can no longer be found at the apple dev website)
→ I tried adding i386 and x86_64 manually
→ export project *ipa (even tough Godot only exports the Xcode files and not an ipa file)

When I hit compile in Xcode I still get the same error.

Xcode Error

pip | 2018-02-11 20:41