Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upXCode10 (new build system) - if incremental build, Embed script doesn't run #8073
Comments
This comment has been minimized.
This comment has been minimized.
Legoless
commented
Sep 3, 2018
I have the same issue. This causes me having to rebuild the entire project, which takes about 15 minutes. But I only changed a single line in code in one of the development pods. |
This comment has been minimized.
This comment has been minimized.
I have a possible temporary solution |
This comment has been minimized.
This comment has been minimized.
Even in the current build system the input/output files are used to speed up builds. If nothing has changed then there is no need to run these scripts. Please include a sample app demonstrating this issue as I cannot reproduce locally. |
dnkoutso
added
s6:need sample
s1:awaiting input
labels
Sep 3, 2018
This comment has been minimized.
This comment has been minimized.
Here is the sample project https://github.com/mkubista/CocoapodsTest
Project is in git with all necessary files. |
stale
bot
removed
the
s1:awaiting input
label
Sep 3, 2018
This comment has been minimized.
This comment has been minimized.
djbe
commented
Sep 4, 2018
I have the same issue in a large project with around 6 development pods. Whenever we modify anything in a development pod, we are forced to perform a full clean & build before the changes are propagated on device (or in simulator). |
dnkoutso
removed
the
s6:need sample
label
Sep 4, 2018
This comment has been minimized.
This comment has been minimized.
Thanks for sample will take a look when time permits. |
This comment has been minimized.
This comment has been minimized.
Confirmed. |
dnkoutso
added
t2:defect
s2:confirmed
d2:moderate
r:new build system
labels
Sep 4, 2018
dnkoutso
added this to the 1.6.0 milestone
Sep 4, 2018
This comment has been minimized.
This comment has been minimized.
Quick debugging shows its a new build system issue only and despite the file timestamp changing Xcode does not treat the resulting framework as "dirty" and therefore skips the script phase... Will try to see if I can work around it but unfortunately this might need to be a radar instead. |
This comment has been minimized.
This comment has been minimized.
This is an unfortunate regression in Xcode 10 new build system. Switching to legacy system makes it work just fine. I believe Apple is aware of this. Switching the input/output paths to point to the actual executable inside the framework makes the problem go away but we may not want to do that. This means that the script phases will re-run correctly as long as the sources of the framework change but it won't catch resource changes or other things inside the For now it seems that Xcode 10 build system will always require a clean build to ensure latest changes are present which sucks. We could maybe add an option to not use input/output paths which would "fix" this but it is ultimately a workaround. |
This comment has been minimized.
This comment has been minimized.
I will try to report it in Apple Bug reporter. Will see, what they will say... |
xaphod
referenced this issue
Sep 13, 2018
Closed
XCode 10 Caching Pod builds (New build system) #7966
This comment has been minimized.
This comment has been minimized.
maxkattner
commented
Sep 13, 2018
I created a radar (41126633) for that in June. They are aware, got a sample project and are working on fixing it. Unfortunately, I do not have any more information. |
This comment has been minimized.
This comment has been minimized.
Thank you!! |
dnkoutso
removed
the
t2:defect
label
Sep 13, 2018
dnkoutso
referenced this issue
Sep 18, 2018
Closed
Xcode 10 doesn't apply development pod changes while building #8102
dnkoutso
added
the
s7:workaround available
label
Sep 18, 2018
added a commit
to jverkoey/material-components-ios
that referenced
this issue
Sep 18, 2018
This comment has been minimized.
This comment has been minimized.
dmcgloin
commented
Sep 18, 2018
FYI: Tested on Xcode 10.1 beta (10O23u) and issue still occurs. |
This comment has been minimized.
This comment has been minimized.
I think the best thing for us to do is to provide an option not to use input/output paths. This will cause the script phase to run always but at least folks wont have to do clean builds. |
dnkoutso
referenced this issue
Sep 18, 2018
Merged
Provide an installation option to disable usage of input/output paths. #8105
This comment has been minimized.
This comment has been minimized.
I opened up this PR (#8105) to provide an option to disable usage of input/output paths. |
added a commit
to material-components/material-components-ios
that referenced
this issue
Sep 19, 2018
dnkoutso
referenced this issue
Sep 20, 2018
Closed
Development Pod Needs Derived Data Cleared - Xcode 7.3 Cocoapods 1.0.0 #5341
dnkoutso
removed
the
d2:moderate
label
Sep 21, 2018
chomin
referenced this issue
Sep 22, 2018
Closed
【急募】No such module 'youtube_ios_player_helper' #113
This comment has been minimized.
This comment has been minimized.
brunophilipe
commented
Sep 24, 2018
Expanding on what @mkubista said, another solution is to add this as a run script phase before the "Embed Pods Frameworks" phase to automatically touch all framework shell scripts: find "${SRCROOT}/Pods" -type f -name *frameworks.sh -exec bash -c "touch \"{}\"" \; |
dnkoutso
closed this
in
#8105
Sep 24, 2018
This comment has been minimized.
This comment has been minimized.
This issue has been closed since we now merged #8105 which will ship with beta.2. For anyone who is taking a look here, #8105 is not fixing the issue it just provides an option to disable input/output paths. If you do use this option please note that you will get a performance hit on incremental builds since the script phases will constantly re-run but at least your build output should be correct. There are a few workarounds present here but ultimately we hope Apple fixes the issue. |
dnkoutso
referenced this issue
Sep 25, 2018
Open
Xcode 10 new build system makes asset catalog invalid specified by podspec's`resource(s)` #8122
dnkoutso
referenced this issue
Oct 2, 2018
Closed
Embed Pods Frameworks build phase not reliably executed with Xcode 10 / New Build System #8151
This comment has been minimized.
This comment has been minimized.
@maxkattner do you have an open radar link to the issue you filed do you know the status of your issue if it has been updated or being worked on? |
This comment has been minimized.
This comment has been minimized.
brunophilipe
commented
Oct 8, 2018
As of now issue 41126633 is still open on bugreport.apple.com.
… On 8 Oct, 2018, at 21:50, D. Koutsogiorgas ***@***.***> wrote:
@maxkattner <https://github.com/maxkattner> do you have an open radar link to the issue you filed do you know the status of your issue if it has been updated or being worked on?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub <#8073 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/ACCaQuhMT4HDH-pWTyLlABvLqTDQgNaSks5ui6x4gaJpZM4WXbfw>.
|
This comment has been minimized.
This comment has been minimized.
ralfebert
commented
Oct 15, 2018
Still happening with Xcode 10.1 beta 2. Removed the in/output files in the 'Embed Pods Frameworks' manually as a workaround, this works for now. Any hints how to install a cocoapod with the installation option from #8105 included? Do I need to checkout the repo and do 'rake install' or is there a smarter way? Is there a way to enable this globally as a default until the Xcode bug is fixed? @maxkattner Do you have a link to the example project you attached? I'd like to create a dupe for the issue. |
This comment has been minimized.
This comment has been minimized.
@ralfebert I recommend using Bundler to pin CocoaPods to the commit SHA or version that you need for your project |
This comment has been minimized.
This comment has been minimized.
maxkattner
commented
Oct 16, 2018
Hey @ralfebert, nice seeing you here! :D |
This comment has been minimized.
This comment has been minimized.
ralfebert
commented
Oct 16, 2018
What strikes me as odd is that even with the in-/output files present for the "Embed Pods Frameworks" phase, I see the build phase being run in the build log and the files of the frameworks being rsynced to the app bundle (with the framework clearly not being up-to-date when running app the app). Any clues what in particular is causing this? |
This comment has been minimized.
This comment has been minimized.
@ralfebert I've found that very confusing, but it seems Xcode 'replays' the last output even in the incremental / no-op case. |
This comment has been minimized.
This comment has been minimized.
ralfebert
commented
Oct 16, 2018
Indeed, good to know! It helps to add a I had the suspicion that the issue might be that it doesn't pick up changes from files in a folder. I just did a quick experiment in a standalone project and if I use a folder as input file, the run script phase is not run when I change a file in that folder. But for this simple example, I get the same behaviour with the old build system (while in the Cocoapods project switching to the legacy build system clearly fixed the issue). Any ideas what might make this work in the Cocoapods context but not in a simple project for the old build system? I think it would help to get this fixed to show the regression in the most straightforward way. Unfortunately I could not find any documentation that specifies that this is supposed to work with a folder as input file. |
levibostian
referenced this issue
Oct 16, 2018
Merged
Empty cache state now includes last time fetched Date. #15
This comment has been minimized.
This comment has been minimized.
grigorye
commented
Oct 22, 2018
Do you mean xcodebuild or the build log at Xcode report tab? If the latter, there's "All" and "Recent" buttons at the top left of build log window - I believe that "Recent" shows just what actually happened in the last build, no? |
This comment has been minimized.
This comment has been minimized.
Correct. Xcode will output in "All" the full script even though it actually didn't run it. The "Recent" tab will actually not include the script phase if it didn't run. |
added a commit
to MarioIannotta/PullUpController
that referenced
this issue
Nov 1, 2018
added a commit
to Skyscanner/backpack-ios
that referenced
this issue
Jan 22, 2019
k0nserv
referenced this issue
Jan 22, 2019
Merged
[No JIRA] Fix build issue for framework changes #161
added a commit
to Skyscanner/backpack-ios
that referenced
this issue
Jan 22, 2019
This comment has been minimized.
This comment has been minimized.
ralfebert
commented
Feb 4, 2019
I documented the issue here: I wondered, has it been considered to disable the input/output folders in the build phase by default until the Xcode bug is fixed? |
mkubista commentedSep 3, 2018
•
edited
Report
What did you do?
ℹ I made changes in some code files in local development pod
What did you expect to happen?
ℹ After build and run in xCode, the changes are incorporated into the resulting package.
What happened instead?
ℹ The old binary is in package. The
[CP] Embed Pods Frameworks
script doesnt run. Its because of build optimalisation in new xCode - when it detects no change in input or output files specified for script, the script is not started.When we did enter the binary file from the content of the
.framework
folder into the input files list, everything is OK. Clean build is also OK.So the solution would be to have no input and out files at all, or during
pod install
add also content files of frameworks into the input files list.Strange thing - in the build log in Report navigator, the output of the
[CP] Embed Pods Frameworks
appeared even when it didn't actually run (I modified the script to echo current time, so I can see the same time stamps)CocoaPods Environment
ℹ
Project that demonstrates the issue
ℹ Unfortunately, project cannot be shown in public.