|
|
|
|
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>
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.
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