Skip to content

iOS: Xcode project template update#67

Merged
pozirk merged 4 commits into
HaxeExtension:masterfrom
IriySoft:swift-settings
Apr 22, 2026
Merged

iOS: Xcode project template update#67
pozirk merged 4 commits into
HaxeExtension:masterfrom
IriySoft:swift-settings

Conversation

@IriySoft
Copy link
Copy Markdown
Contributor

I noticed that the current Xcode project template is configured so that it doesn't allow adding new frameworks (in my case it was unityAds and unityAds adapter for AdMob and Firebase core and analytics frameworks). The app just won't link properly like this:

image

It took some time for me to figure out that the reason is in Library Search Paths settings that were made to let the AdMob frameworks link properly:

image

So I removed these settings and added a dummy Swift file that created the Bridging Header - this allowed to build the project with all the frameworks that I added. The update also includes "Update to recommended settings" changes and the default values for the Identity settings:

image

Probably a better solution would be to remove the Xcode project template from the extension and let the dev take care of the Swift frameworks linking, or even make these changes to the project template in Lime, but it's already there :)

The pull request also includes .gitignore, without it my commits were flooded with .DS_Store files...

@pozirk
Copy link
Copy Markdown
Member

pozirk commented Apr 15, 2026

Ok.
project.pbxproj is taken from Lime, from here: https://github.com/openfl/lime/blob/develop/templates/ios/template/%7B%7Bapp.file%7D%7D.xcodeproj/project.pbxproj

I think extension's version should be a copy of Lime's version, plus the modifications required for extension to work.
Everything that is common for every app, should be added to Lime first.

For example, things like this should be in Lime's project.pbxproj file:

CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
..
CURRENT_PROJECT_VERSION = "::APP_BUILD_NUMBER::";
INFOPLIST_KEY_CFBundleDisplayName = "::APP_TITLE::";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
MARKETING_VERSION = "::APP_VERSION::";

Otherwise, the difference will be too big between two versions.
Thank you.

@IriySoft
Copy link
Copy Markdown
Contributor Author

OK, this has sense, yes. Let me prepare a pr that includes only Swift-related things then :)

@IriySoft
Copy link
Copy Markdown
Contributor Author

The latest commit removes the extra unrelated settings 😎

@pozirk
Copy link
Copy Markdown
Member

pozirk commented Apr 16, 2026

I think those were good changes actually, I was hoping you would just submit them to Lime.
They would review, confirm, and we can move to update extension as well.
Sorry for confusion.

@IriySoft
Copy link
Copy Markdown
Contributor Author

IriySoft commented Apr 17, 2026

No prob, I submitted a pr to Lime at the same time as I updated this pr :))))
openfl/lime#2053

...but Lime prs may take really looong to be reviewed and merged...

@pozirk pozirk merged commit c2585a5 into HaxeExtension:master Apr 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants