forkingdog / forkingdog/FDStackView

Crash on iOS 7.1

Open
#28 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Objective-C
Stars
2.5k
Forks
310
PR merge metrics
No merged PRs in 30d

Description

在Storyboard的一个Controller里添加了FDStackView,用代码dismiss该controller时崩溃在FDStackViewDistributionLayoutArrangement.m第226行:[self.canvas removeConstraints:self.relatedDimensionConstraints.fd_allObjects];
控制台输出:
Objective: {objective 0x178839a40: <999:-18.4039, 998:-342.146, 997:25.7032, 996:-0.509864, 750:826, 251:789, 25:1248> + <750:1, 251:1>_0x1708ad740.negError{id: 1554} + <750:1, 251:1>_0x1708ad7a0.negError{id: 1558} + <750:1, 251:1>_0x1708ad800.negError{id: 1560} + <750:1, 251:1>_0x1708ad8c0.posErrorMarker{id: 1561} + <750:1, 251:1>_0x1708ad920.posErrorMarker{id: 1563} + 750:1_0x1708ad980.negError{id: 1574} + <750:-6.44498e-07, 251:1>_0x1708ad980.posErrorMarker{id: 1573} + <750:1, 25:-2>_0x1708ad9e0.negError{id: 1576} + <251:1, 25:2>_0x1708ad9e0.posErrorMarker{id: 1575} + <750:1, 251:1>_0x1708adb60.negError{id: 1632} + <750:1, 251:1>_0x1708adbc0.negError{id: 1634} + <750:1, 251:1>_0x1708adc20.negError{id: 1636} + <750:1, 251:1>_0x1708adc80.negError{id: 1638} + <750:-2, 251:4>_0x171280320.marker{id: 1262} + <750:-2, 251:4>_0x171280780.marker{id: 1274} + 251:1_0x17128c990.marker{id: 1470} + 51:2_0x17128d3e0:FDSV-spanning-fit.negError{id: 1387} + 999.5:2_0x17128d430:FDSV-spanning-boundary.posErrorMarker{id: 1389} + 999.5:1_0x17128d480:FDSV-spanning-boundary.error{id: 1394} + 999.5:1_0x17128d4d0:FDSV-spanning-boundary.negError{id: 1397} + 999.5:1_0x17128d4d0:FDSV-spanning-boundary.posErrorMarker{id: 1396} + 999.5:1_0x17128d520:FDSV-spanning-boundary.error{id: 1400} + 999.5:2_0x17128d570:FDSV-spanning-boundary.negError{id: 1402} + 999.5:1_0x17128d5c0:FDSV-spanning-boundary.error{id: 1405} + 251:1_0x17128d610.marker{id: 1316} + 999.5:2_0x17128d660:FDSV-spanning-boundary.posErrorMarker{id: 1406} + 251:1_0x17128d930.marker{id: 1318} + 750:-1_0x17128db60.marker{id: 1320} + 251:-1_0x17128dc50.marker{id: 1428} + 251:-1_0x17128dcf0.marker{id: 1434} + 251:-1_0x17128dd90.marker{id: 1439} + 251:-1_0x17128dde0.marker{id: 1441} + 750:0_0x17128de80.marker{id: 1445} + 750:0_0x17128ded0.marker{id: 1447} + 750:1_0x17128df20.marker{id: 1450} + 750:1_0x17128dfc0.marker{id: 1455} + 251:1_0x17128e1f0.marker{id: 1474} + 251:1_0x17128e240.marker{id: 1476} + <750:1, 251:-2>_0x17128e2e0.marker{id: 1478} + <750:1, 251:-2>_0x17128e330.marker{id: 1481} + 750:0_0x1712940a0:FDSV-fill-proportionally.negError{id: 1606} + 750:0_0x171294280:FDSV-fill-proportionally.negError{id: 1610} + 25:2_0x1712946e0:FDSV-ambiguity-suppression.negError{id: 1620} + 25:2_0x1712948c0:FDSV-ambiguity-suppression.negError{id: 1623} + 999.5:1_0x1712949b0:FDSV-alignment.marker{id: 1624} + 25:2_0x171294aa0:FDSV-ambiguity-suppression.negError{id: 1626} + 999.5:-1_0x171294b90:FDSV-alignment.marker{id: 1627} + 25:2_0x171294c80:FDSV-ambiguity-suppression.negError{id: 1629} + 999.5:1_0x171294d70:FDSV-alignment.marker{id: 1630} + <750:-1, 251:2>_0x178a86f90.marker{id: 112} + 999:2_0x178aab760.negError{id: 1507} + 999:2_0x178aab7c0.negError{id: 1510} + <750:1, 251:1>_0x178aac6c0.negError{id: 1556} + 750:1_0x178aac720.negError{id: 1566} + 250:1_0x178aac720.posErrorMarker{id: 1565} + 750:1_0x178aac780.negError{id: 1568} + 250:1_0x178aac780.posErrorMarker{id: 1567} + 750:1_0x178aac8a0.negError{id: 1578} + 250:1_0x178aac8a0.posErrorMarker{id: 1577} + 750:1_0x178aac900.negError{id: 1580} + 250:1_0x178aac900.posErrorMarker{id: 1579} + 750:1_0x178aac960.negError{id: 1582} + 251:1_0x178aac960.posErrorMarker{id: 1581} + <750:1, 25:-2>_0x178aac9c0.negError{id: 1584} + <251:1, 25:2>_0x178aac9c0.posErrorMarker{id: 1583} + 750:1_0x178aaca20.negError{id: 1586} + <750:0, 251:1>_0x178aaca20.posErrorMarker{id: 1585} + <750:1, 25:-2>_0x178aaca80.negError{id: 1588} + <251:1, 25:2>_0x178aaca80.posErrorMarker{id: 1587} + 750:1_0x178aacae0.negError{id: 1590} + 250:1_0x178aacae0.posErrorMarker{id: 1589} + 750:1_0x178aacb40.negError{id: 1592} + 250:1_0x178aacb40.posErrorMarker{id: 1591} + 750:1_0x178aacba0.negError{id: 1594} + <750:0, 251:1>_0x178aacba0.posErrorMarker{id: 1593} + <750:1, 25:-2>_0x178aacc00.negError{id: 1596} + <251:1, 25:2>_0x178aacc00.posErrorMarker{id: 1595} + <750:-2, 251:4>_0x179283020.marker{id: 1305} + 251:1_0x179289650.marker{id: 1473} + 999.5:1_0x179289dd0:FDSV-spanning-boundary.error{id: 1410} + 999.5:2_0x179289e20:FDSV-spanning-boundary.negError{id: 1412} + 999.5:1_0x179289e70:FDSV-spanning-boundary.error{id: 1415} + 25:2_0x179289fb0:FDSV-ambiguity-suppression.negError{id: 1337} + 25:2_0x17928a050:FDSV-ambiguity-suppression.negError{id: 1340} + 25:2_0x17928a0f0:FDSV-ambiguity-suppression.negError{id: 1350} + 25:2_0x17928a190:FDSV-ambiguity-suppression.negError{id: 1353} + <750:-1, 251:2>_0x17928a5a0.marker{id: 1519} + 750:0_0x179290680:FDSV-canvas-connection.marker{id: 1597} + 750:0_0x1792906d0.marker{id: 1598} + <750:-2, 251:4>_0x1792920c0.marker{id: 1688} + 750:0_{id: 148} + 750:0_{id: 179} + 750:0_{id: 186} + 750:6.37025e-07_{id: 187} + 750:0_{id: 420} + 750:0_{id: 424} + 51:1_FDLayoutSpacer:0x178588470.Width{id: 1388} + 750:0_UIImageView:0x1703eb600.Width{id: 1334} + 750:0_UIImageView:0x1703eba00.minX{id: 1370} + 750:0_UIImageView:0x1783ecc00.minX{id: 1372} + 750:0_UIImageView:0x1783ecf00.minX{id: 1375} + 999:1__UILayoutGuide:0x178588540.Width{id: 1508} + 999:1*_UILayoutGuide:0x178588610.Width{id: 1511}}

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with FDStackViewDistributionLayoutArrangement.m at line 226 and reproduce the reported case: an FDStackView added in a storyboard controller that is dismissed in code on iOS 7.1. Inspect the constraint-removal path and use the supplied console output to identify why the crash occurs. Done means dismissing the controller no longer crashes on the reported configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, objective-c
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.