-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Comments
Conversation
CLA assistant check
All committers have signed the CLA.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
enable macCatalyst? :)
3a4oT
commented
Oct 7, 2020
Still need to figure out how to test it
Source/Base/ASAvailability.h
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this intended? My project doesn't use IGListKit but does use ASPINRemoteImageDownloader which requires AS_PIN_REMOTE_IMAGE to be set.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, I can't seem to be able to reference ASPINRemoteImageDownloader for some reason. I had to comment out the #if AS_PIN_REMOTE_IMAGE conditionals entirely in order for my project to even see the class. Not sure if it's an SPM package configuration issue or something else.
freemansion
commented
Nov 16, 2020
any updates on this PR?
3a4oT
commented
Nov 17, 2020
last commits should repair Xcode's SPM integration!
freemansion
commented
Nov 18, 2020
Confirming, it compiles and works fine in my project. Let's get merge it.
NoliNik
commented
Nov 18, 2020
Great job guys! Working for me!
xezero
commented
Nov 21, 2020
For some reason I still can't access ASPINRemoteImageDownloader despite AS_PIN_REMOTE_IMAGE being defined in Package.swift. Is there something I'm missing?
Hi, @3a4oT I tried using AsyncDisplayKitIGListKit from your fork on Xcode 12.2.
Unfortunately I am getting the following errors
- on
IGListKitUpdatingDelegate.hfile: -
IGListUpdatingDelegate' has different definitions in different modules; first difference is definition in module 'IGListKit' found method 'performUpdateWithCollectionViewBlock:fromObjects:toObjectsBlock:animated:objectTransitionBlock:completion:' with 1st parameter of type 'IGListCollectionViewBlock _Nonnull __strong' (aka 'UICollectionView * _Nullable (^__strong)(void)')
Screen Shot 2020年11月23日 at 12 24 54 PM
- Also similar error on
IGListAdapter.hfile
Screen Shot 2020年11月23日 at 12 47 07 PM
based on the error messages it seems like there is a namespace conflicts (I searched related issues, where the work around is renaming one of the module classname/function etc.. and this issue happens in Xcode 12, even though things worked well on Xcode 11.
Are you also using Xcode 12.2 on your current working version?
3a4oT
commented
Dec 2, 2020
@MussaCharles thanks for the detailed feedback. Should be OK now. I've added the sample project (examples/ASIGListKitSPM/) which should verify that it won't break again. Would you mind giving it another shot?
@xezero PINRemoteImage should be available now :) so you can access ASPINRemoteImageDownloader.
xezero
commented
Dec 2, 2020
@3a4oT Wow, great work on figuring those headers out! Looks intense 😅
MussaCharles
commented
Dec 2, 2020
@MussaCharles thanks for the detailed feedback. Should be OK now. I've added the sample project (
examples/ASIGListKitSPM/) which should verify that it won't break again. Would you mind giving it another shot?@xezero
PINRemoteImageshould be available now :) so you can accessASPINRemoteImageDownloader.
@3a4oT Thanks for the updates, I will give it another shot later today or tomorrow and get back to you.
iosg1sw
commented
Dec 11, 2020
Hi everyone! Is there any updates? I noticed that only Carthage build is not successful. This may be caused by that issue. Please check it out!
3a4oT
commented
Dec 13, 2020
@MussaCharles Today I've integrated into another codebase which was using Carthage. I faced the same errors as you reported, to resolve issues make sure you delete any cached pods or Carthage artifacts (.framework) from your project. settings.
MussaCharles
commented
Dec 14, 2020
@MussaCharles Today I've integrated into another codebase which was using Carthage. I faced the same errors as you reported, to resolve issues make sure you delete any cached pods or Carthage artifacts (.framework) from your project. settings.
Hi, @3a4oT Okay, I will double check to see if it was caused by the same files.
Also Sorry for the late. I was a bit occupied with work so I didn't get some time to test your last changes. I will have a look again soon and get back to you.
Happy Coding!!
that-scalcucci-guy
commented
Feb 17, 2021
Just wondering what the status is on this currently. I've had to do quite a few of these integrations, would be more than happy to jump in.
garrettmoon
commented
Mar 11, 2021
Thank you for putting in all this work!
I would like to avoid using a fork if possible on IGListKit... And since SPM currently doesn’t support running scripts there’s probably no way to add the spm directory to .gitignore is there? I wonder if we could use https://github.com/apple/swift-evolution/blob/main/proposals/0303-swiftpm-extensible-build-tools.md ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PINRemoteImage needs to be updated to point to master (or atleast wait for next release), to include PINRemoteImage bugfixes related to SPM. And this should also transitively updated PINCache and PINOperation
Any update to this? 🙏
grangej
commented
Jun 16, 2021
Updates please?!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this disabled?
It seems to be enabled in ASAvailability.h does this not cause a mismatch between the Project version and the SPM version?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for mention that, I guess the main reason was - I need that to be a default since ASTextNode2 is a future I just enabled it by default :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This option leads undefined symbol: _OBJC_CLASS_$_ ASTEXTNODE2- error when using ASTextNode2. If you can check, or if someone else meets this error, try changing it from 0 to 1.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This option makes usage of ASTextNode2 a default. So in your code, you should reference it just like ASTextNode
3a4oT
commented
Sep 9, 2021
Just an small update:
-
So I was manage to upstream my SPM changes to Instagram. (SPM number10 Instagram/IGListKit#1487 ). This mean that technically we can drop my fork from the dependencies. However, this may be tricky since IGListKit on current
masterdoesn't work well with Texture. More investigation required. -
I'm waiting until SE-0303 will be available (probably Swift 5.6) to continue my work and implement code generation as a plugin.
annomusa
commented
Jan 31, 2022
I'm waiting until SE-0303 will be available (probably Swift 5.6) to continue my work and implement code generation as a plugin.
Hai @3a4oT it's available now in Xcode 13.3 beta, perhaps you can continue this MR if you're available, thanks in advance 🙏
dehrom
commented
Mar 11, 2022
Any updates please? 😥
3a4oT
commented
Mar 11, 2022
As you may know, my country (Ukraine) was attacked by russian invaders, I'm on military service now and don't have time at the moment to support this fork. Invaders Must Die!
Please, don't mess up P. and russians...
So, on my fork SPM is working, if you need that
Package.swift example:
https://github.com/nickaroot/TextureUI/blob/master/Package.swift
bejeri4
commented
Mar 16, 2022
Слава Украине! Героям слава! 🇺🇦
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't be commented, bug is still relevant, dataSource won't update properly using Texture+IGListKit when self.setAllowsBackgroundReloading == true, collectionView.window == nil
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems like no longer valid on the latest IGListKit
muukii
commented
Jun 30, 2022
What other tasks do we have to accomplish this PR? I might help
wweevv-johndpope
commented
Aug 29, 2022
please merge - need SPM integration urgently.
muukii
commented
Aug 31, 2022
and I found a situation that break-points are not working when installed as swift-package.
I filed it on FB11418698
Hey all. No commitments, but I did some work this morning to synchronize the latest IGListKit and Texture. For now, it will live under my fork branch - 3a4oT#1. In a time of my absence, Xcode 14.3 arrives, which add one more challenge to make it work. We need to land new versions of PINOperation, PINRemoteImage, PINCache to be compatible with Xcode 14.3. Also, we need to make Instagram finally tag a new release on GitHub. For PIN-related repositories I saw that community started to submit PRs, but it seems like there are no active maintainers. For Instagram related task, I started a conversation . If you want to contribute and don't know how, please leave a comment/issue on those repositories so you may be heard.
rcancro
commented
Sep 26, 2023
Apologies that this has sat for so long. I have a couple questions about this PR.
Why did you change all of the imports? Is this required for Package.swift to work? If it isn't required, splitting up these diffs would make it much easier for us to move forward with landing.
Is the "hack" for AsyncDisplayKitIGListKit still required? I see that IGListKit has a Package.swift file. Is it possible to use this instead?
brentleyjones
commented
May 31, 2024
The imports change is required for SPM to work, yes.
takasurazeem
commented
Sep 30, 2024
It this cannot be merged, can we please close this PR?
sarthak-mishra-swiggy
commented
Jul 6, 2025
Any update on this? Honestly, SPM support should be top priority in 2025.
3a4oT
commented
Oct 17, 2025
Apologies that this has sat for so long. I have a couple questions about this PR.
Why did you change all of the imports? Is this required for
Package.swiftto work? If it isn't required, splitting up these diffs would make it much easier for us to move forward with landing.Is the "hack" for AsyncDisplayKitIGListKit still required? I see that IGListKit has a Package.swift file. Is it possible to use this instead?
Hey, when I started this work, SPM was very limited, and all those tricks with local style imports "" vs framework style imports <> were necessary to build. The same thing with the hack for AsyncDisplayKitIGListKit. I will validate Swift 6.2 capabilities and package traits to see whether it will help us.
3a4oT
commented
Oct 19, 2025
My latest attempt is under a new PR #2128. Testers are welcome :)
Uh oh!
There was an error while loading. Please reload this page.
implemented SPM layout generator
swift scripts/generate_spm_sources_layout.swiftwhich use symlinks technics.introduced the
AsyncDisplayKitIGListKitlibrary which is an umbrella for IG+Texture. To deal with SPM restrictions I did some kind of hack:)) I've symlinked thespm/Sources/AsyncDisplayKit(generated by a script) and created theAsyncDisplayKitIGListKitfolder. It should be available ONLY forPackage.swift. (TODO: upstream changes to Instagram)refactored
#includeby droppingAsyncDisplayKit/added a small tweak to be able to assemble for macCatalyst via SPM
Xcode 12 required (SPM only)
added
sh build.sh build_listkit_xcode_spm_integrationto the build pipeline which can verify Xcode's SPM integration.added CI steps to check SPM based BUILDS for iOS, tvOS, macCatalyst.
depends on pinterest/PINRemoteImage#586